| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>CSSOM: CSSStyleDeclaration is mutable and immutable in various settings</title> |
| <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> |
| <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> |
| <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> |
| |
| <meta name="flags" content="dom"> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| |
| <body> |
| <div id="log"></div> |
| <div id="box"></box> |
| <div id="box2"></box> |
| <style id="teststyles"> |
| #box2 { width: 15px; } |
| </style> |
| <script> |
| |
| test(function(){ |
| var elem = document.getElementById('box'); |
| |
| elem.style.width = '10px'; |
| assert_equals(elem.style.width, '10px', 'setting via style property'); |
| elem.style.width = ''; |
| |
| elem.style.cssText = 'width: 10px'; |
| assert_equals(elem.style.width, '10px', 'setting via cssText'); |
| elem.style.width = ''; |
| |
| }, 'HTMLElement\'s CSSStyleDeclaration is mutable') |
| |
| |
| test(function(){ |
| var elem = document.getElementById('box'); |
| var style = getComputedStyle(elem, 'width'); |
| |
| assert_throws('NO_MODIFICATION_ALLOWED_ERR', function(){ |
| style.width = '10px'; |
| }); |
| |
| }, 'getComputedStyle\'s CSSStyleDeclaration is not mutable') |
| |
| |
| test(function(){ |
| |
| var style = document.getElementById('teststyles').sheet.cssRules[0].style; |
| |
| assert_equals(style.width, '15px', 'width value is correct'); |
| |
| style.width = '25px'; |
| |
| assert_equals(style.width, '25px', 'width value is mutable'); |
| |
| var gCSstyle = getComputedStyle(document.getElementById('box2')); |
| |
| assert_equals(gCSstyle.width, '25px', 'styleSheet change is live and accesible via getComputedStyle'); |
| |
| }, 'StyleSheet\'s CSSStyleDeclaration is mutable'); |
| |
| |
| </script> |
| |
| </body> |
| </html> |