<!DOCTYPE html>
<html>
  <head>
    <title>CSS Backgrounds and Borders Test: background-clip - initial and supported values</title>
    <link rel="author" title="Intel" href="http://www.intel.com" />
    <link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-clip" />
    <meta name="flags" content="dom" />
    <meta name="assert" content="Check if background-clip initial value is border-box and supports values border-box, padding-box and content-box" />
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <div id="test"></div>
    <script>
        test(function() {
            assert_equals(getComputedStyle(document.getElementById("test"), null).getPropertyValue("background-clip"),
                "border-box", "background-clip initial value");
        }, "background-clip_initial");

        document.getElementById("test").style.backgroundClip = "border-box";
        test(function() {
            assert_equals(getComputedStyle(document.getElementById("test"), null).getPropertyValue("background-clip"),
                "border-box", "background-clip supporting value");
        }, "background-clip_border-box");

        document.getElementById("test").style.backgroundClip = "padding-box";
        test(function() {
            assert_equals(getComputedStyle(document.getElementById("test"), null).getPropertyValue("background-clip"),
                "padding-box", "background-clip supporting value");
        }, "background-clip_padding-box");

        document.getElementById("test").style.backgroundClip = "content-box";
        test(function() {
            assert_equals(getComputedStyle(document.getElementById("test"), null).getPropertyValue("background-clip"),
                "content-box", "background-clip supporting value");
        }, "background-clip_content-box");
    </script>
  </body>
</html>
