<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("Test the setting of the image-set function.");

var style;

function testComputedStyle(property, fullRule)
{
    var div = document.createElement("div");
    document.body.appendChild(div);
    div.setAttribute("style", property + ": " + fullRule);
    var computedValue = div.style;
    document.body.removeChild(div);
    return computedValue;
}

function testImageSetRule(description, property, rule)
{
    debug("");
    debug(description + " : " + rule);

    var fullRule = "image-set(" + rule + ")";
    style = testComputedStyle(property, fullRule);
    shouldBeEqualToString('style.backgroundImage', fullRule);
}

testImageSetRule("Single value for background-image",
                "background-image",
                "url(\"http://www.webkit.org/a\") 1x");

testImageSetRule("Multiple values for background-image",
                "background-image",
                "url(\"http://www.webkit.org/a\") 1x, url(\"http://www.webkit.org/b\") 2x");

testImageSetRule("Multiple values for background-image, out of order",
                "background-image",
                "url(\"http://www.webkit.org/c\") 3x, url(\"http://www.webkit.org/b\") 2x, url(\"http://www.webkit.org/a\") 1x");

testImageSetRule("Duplicate values for background-image",
                "background-image",
                "url(\"http://www.webkit.org/c\") 1x, url(\"http://www.webkit.org/b\") 2x, url(\"http://www.webkit.org/a\") 1x");

testImageSetRule("Fractional values for background-image",
                "background-image",
                "url(\"http://www.webkit.org/c\") 0.2x, url(\"http://www.webkit.org/b\") 2.3x, url(\"http://www.webkit.org/a\") 12.3456x");

// FIXME: We should also be testing the behavior of negative values somewhere, but it's currently
// broken.  http://wkb.ug/100132

successfullyParsed = true;
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
