| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <script src="../../resources/js-test-pre.js"></script> | |
| <style> | |
| #test { color: blue; } | |
| @media all { | |
| #test { color: blue; } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div id=test> | |
| </div> | |
| <script> | |
| description("Test that CSSStyleRules returned by getMatchedCSSRules can't be mutated"); | |
| var testDiv = document.getElementById('test'); | |
| var rules = getMatchedCSSRules(testDiv); | |
| function tryMutateSelector(index) { | |
| originalText = rules[index].selectorText; | |
| rules[index].selectorText = "#mutated"; | |
| shouldBe("rules["+index+"].selectorText", "originalText"); | |
| } | |
| function tryMutateCSSText(index) { | |
| originalText = rules[index].style.cssText; | |
| rules[index].style.cssText = "color: red"; | |
| shouldBe("rules["+index+"].style.cssText", "originalText"); | |
| } | |
| function tryMutateProperty(index) { | |
| originalText = rules[index].style.color; | |
| rules[index].style.color = "green"; | |
| shouldBe("rules["+index+"].style.color", "originalText"); | |
| } | |
| function tryMutateProperty2(index) { | |
| originalText = rules[index].style.getPropertyValue("color"); | |
| rules[index].style.setProperty("color", "white"); | |
| shouldBe("rules["+index+"].style.getPropertyValue('color')", "originalText"); | |
| } | |
| function tryRemoveProperty(index) { | |
| originalText = rules[index].style.color; | |
| rules[index].style.removeProperty("color"); | |
| shouldBe("rules["+index+"].style.color", "originalText"); | |
| } | |
| shouldBe("rules.length", "2"); | |
| tryMutateSelector(0); | |
| tryMutateSelector(1); | |
| tryMutateCSSText(0); | |
| tryMutateCSSText(1); | |
| tryMutateProperty(0); | |
| tryMutateProperty(1); | |
| tryMutateProperty2(0); | |
| tryMutateProperty2(1); | |
| tryRemoveProperty(0); | |
| tryRemoveProperty(1); | |
| </script> | |
| <script src="../../resources/js-test-post.js"></script> | |
| </body> | |
| </html> |