diff options
Diffstat (limited to 'testing/web-platform/tests/css/cssom/inline-style-001.html')
-rw-r--r-- | testing/web-platform/tests/css/cssom/inline-style-001.html | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/cssom/inline-style-001.html b/testing/web-platform/tests/css/cssom/inline-style-001.html new file mode 100644 index 0000000000..d4bf3b92ab --- /dev/null +++ b/testing/web-platform/tests/css/cssom/inline-style-001.html @@ -0,0 +1,78 @@ +<!DOCTYPE html> +<html> + <head> + <title>CSS Test: Inline CSSStyleDeclaration</title> + <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> + <link rel="help" href="http://www.w3.org/TR/cssom-1/#elementcssinlinestyle"> + <meta name="flags" content="dom"> + <meta name="assert" content="Inline CSSStyleDeclaration is properly initialized and can be modified through its interface"> + <script src="/resources/testharness.js" type="text/javascript"></script> + <script src="/resources/testharnessreport.js" type="text/javascript"></script> + </head> + <body> + <noscript>Test not run - javascript required.</noscript> + <div id="log"></div> + <div id="test" style="margin-left: 5px;"></div> + <script type="text/javascript"> + // Can access CSSStyleDeclaration through style property + test(function() { + var test = document.getElementById("test"); + assert_idl_attribute(test, "style"); + declaration = test.style; + }, "CSSStyleDeclaration_accessible"); + + // initial property values are correct + test(function() { + assert_equals(declaration.cssText, "margin-left: 5px;"); + assert_equals(declaration.getPropertyValue("margin-left"), "5px"); + }, "read"); + + // setting cssText adds new properties + // setting cssText removes existing properties + // properties set through cssText are reflected in the computed style + test(function() { + declaration.cssText = "margin-left: 10px; padding-left: 10px;"; + assert_equals(declaration.cssText, "margin-left: 10px; padding-left: 10px;"); + assert_equals(declaration.length, 2); + assert_equals(declaration.item(0), "margin-left"); + assert_equals(declaration.item(1), "padding-left"); + assert_equals(declaration.getPropertyValue("margin-left"), "10px"); + assert_equals(declaration.getPropertyValue("padding-left"), "10px"); + + var computedStyle = window.getComputedStyle(document.getElementById("test")); + assert_equals(computedStyle.getPropertyValue("margin-left"), "10px"); + assert_equals(computedStyle.getPropertyValue("padding-left"), "10px"); + }, "csstext_write"); + + // setProperty adds new properties + // properties set through setProperty are reflected in the computed style + test(function() { + while(declaration.length > 0) + declaration.removeProperty(declaration.item(0)); + declaration.setProperty("margin-left", "15px"); + declaration.setProperty("padding-left", "15px"); + + assert_equals(declaration.length, 2); + assert_equals(declaration.item(0), "margin-left"); + assert_equals(declaration.item(1), "padding-left"); + assert_equals(declaration.getPropertyValue("margin-left"), "15px"); + assert_equals(declaration.getPropertyValue("padding-left"), "15px"); + + var computedStyle = window.getComputedStyle(document.getElementById("test")); + assert_equals(computedStyle.getPropertyValue("margin-left"), "15px"); + assert_equals(computedStyle.getPropertyValue("padding-left"), "15px"); + }, "property_write"); + + // shorthand property is expanded + test(function() { + while(declaration.length > 0) + declaration.removeProperty(declaration.item(0)); + declaration.cssText = "margin: 20px"; + assert_equals(declaration.getPropertyValue("margin-top"), "20px"); + assert_equals(declaration.getPropertyValue("margin-right"), "20px"); + assert_equals(declaration.getPropertyValue("margin-bottom"), "20px"); + assert_equals(declaration.getPropertyValue("margin-left"), "20px"); + }, "shorthand_properties"); + </script> + </body> +</html> |