| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <style> |
| .test { |
| content: "UNTOUCHED"; |
| } |
| |
| @media all { |
| @media all { |
| @font-face { |
| src: local('Courier'); |
| font-family: Courier; |
| } |
| |
| @page :left { top: 0 } |
| |
| #t0 { content: "APPLIED" } |
| |
| @import url("../../cssom/resources/import.css"); |
| @charset "UTF-8"; |
| @namespace ""; |
| } |
| @media all { |
| @media none { |
| #t1 { content: "APPLIED" } |
| } |
| } |
| } |
| </style> |
| <body> |
| <span id=t0 class=test></span> |
| <span id=t1 class=test></span> |
| <script> |
| description("Test nested at-rules."); |
| |
| evalAndLog("rules = document.styleSheets[1].cssRules"); |
| shouldEvaluateTo("rules.length", 2); |
| |
| shouldBe("rules[0].type", "CSSRule.STYLE_RULE"); |
| shouldBe("rules[1].type", "CSSRule.MEDIA_RULE"); |
| shouldEvaluateTo("rules[1].cssRules.length", 2); |
| shouldBe("rules[1].cssRules[0].type", "CSSRule.MEDIA_RULE"); |
| shouldEvaluateTo("rules[1].cssRules[0].cssRules.length", 3); |
| shouldBe("rules[1].cssRules[0].cssRules[0].type", "CSSRule.FONT_FACE_RULE"); |
| shouldBe("rules[1].cssRules[0].cssRules[1].type", "CSSRule.PAGE_RULE"); |
| shouldBe("rules[1].cssRules[0].cssRules[2].type", "CSSRule.STYLE_RULE"); |
| shouldBe("rules[1].cssRules[0].cssRules[0].parentStyleSheet", "document.styleSheets[1]"); |
| shouldBe("rules[1].cssRules[0].cssRules[1].parentStyleSheet", "document.styleSheets[1]"); |
| shouldBe("rules[1].cssRules[0].cssRules[2].parentStyleSheet", "document.styleSheets[1]"); |
| |
| shouldBe("rules[1].cssRules[1].type", "CSSRule.MEDIA_RULE"); |
| shouldEvaluateTo("rules[1].cssRules[1].cssRules.length", 1); |
| shouldBe("rules[1].cssRules[1].cssRules[0].type", "CSSRule.MEDIA_RULE"); |
| evalAndLog("rules[1].cssRules[1].insertRule('@media all { @page :left { top: 0; } }', 1)"); |
| shouldEvaluateTo("rules[1].cssRules[1].cssRules.length", 2); |
| shouldBe("rules[1].cssRules[1].cssRules[1].type", "CSSRule.MEDIA_RULE"); |
| shouldBe("rules[1].cssRules[1].cssRules[1].cssRules[0].type", "CSSRule.PAGE_RULE"); |
| |
| shouldBeEqualToString("getComputedStyle(document.getElementById('t0')).content", '"APPLIED"'); |
| shouldBeEqualToString("getComputedStyle(document.getElementById('t1')).content", '"UNTOUCHED"'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |