| <!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> |