diff options
Diffstat (limited to 'testing/web-platform/tests/css/cssom/css-style-reparse.html')
-rw-r--r-- | testing/web-platform/tests/css/cssom/css-style-reparse.html | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/cssom/css-style-reparse.html b/testing/web-platform/tests/css/cssom/css-style-reparse.html new file mode 100644 index 0000000000..d5153cf267 --- /dev/null +++ b/testing/web-platform/tests/css/cssom/css-style-reparse.html @@ -0,0 +1,59 @@ +<!doctype html> +<html> +<head> + <meta charset=utf-8> + <title>CSS Test: DOM modification re-parsing test</title> + <link rel="help" href="https://drafts.csswg.org/cssom/"> + <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <style>div { min-width: 0px; }</style> + <style id="style-element"></style> +</head> +<body> +<div id="test-div"></div> +<script type="text/javascript"> + var style = document.getElementById("style-element"); + var div = document.getElementById("test-div"); + + function testProperty(prop) { + // Assigning an empty string to textContent or innerHTML should trigger a + // reparse only if the element is not empty. + style.sheet.insertRule("#test-div { min-width: 42px; }"); + assert_equals(getComputedStyle(div).minWidth, "42px"); + + style[prop] = ""; + assert_equals(getComputedStyle(div).minWidth, "42px"); + + style[prop] = " "; + assert_equals(getComputedStyle(div).minWidth, "0px"); + + style.sheet.insertRule("#test-div { min-width: 42px; }"); + assert_equals(getComputedStyle(div).minWidth, "42px"); + + style[prop] = ""; + assert_equals(getComputedStyle(div).minWidth, "0px"); + + style.sheet.insertRule("#test-div { min-width: 42px; }"); + assert_equals(getComputedStyle(div).minWidth, "42px"); + + style.appendChild(document.createTextNode("")); + assert_equals(getComputedStyle(div).minWidth, "0px"); + + style.sheet.insertRule("#test-div { min-width: 42px; }"); + assert_equals(getComputedStyle(div).minWidth, "42px"); + + style[prop] = ""; + assert_equals(getComputedStyle(div).minWidth, "0px"); + } + + test(function() { + testProperty("textContent"); + }, "style.textContent modification"); + + test(function() { + testProperty("innerHTML"); + }, "style.innerHTML modification"); +</script> +</body> +</html> |