| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <style id='style'> |
| @namespace tns url(test-namespace); |
| @media all {} |
| </style> |
| <body></body> |
| <script> |
| function assertColorGreen(id) { |
| var element = document.createElementNS('test-namespace', 'tns:div'); |
| element.id = id; |
| element.setAttributeNS('test-namespace', 'tns:green', true); |
| document.body.appendChild(element); |
| assert_equals(getComputedStyle(element).color, 'rgb(0, 128, 0)'); |
| } |
| |
| test(function() { |
| style.sheet.insertRule('tns|#testInsertRule[tns|green] { color: green; }', style.sheet.cssRules.length); |
| assertColorGreen('testInsertRule'); |
| }, 'Selectors added to CSSStyleSheets via insertRule() should use the @namespace mapping'); |
| |
| test(function() { |
| var mediaRule = style.sheet.rules[1]; |
| console.assert(mediaRule instanceof CSSMediaRule); // CSSMediaRule inherits from the CSSGroupingRule interface. |
| mediaRule.insertRule('tns|#testMediaInsertRule[tns|green] { color: green; }', style.sheet.length); |
| assertColorGreen('testMediaInsertRule'); |
| }, 'Selectors added to CSSGroupingRules via insertRule() should use the @namespace mapping'); |
| </script> |