| Test CSSSupportRule. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| PASS CSSRule.SUPPORTS_RULE is defined. |
| rules = document.styleSheets[1].cssRules |
| PASS rules.length is 4 |
| PASS rules[0].type is CSSRule.SUPPORTS_RULE |
| PASS rules[0].cssRules.length is 2 |
| PASS rules[0].cssRules[0].type is CSSRule.STYLE_RULE |
| PASS rules[0].cssRules[1].type is CSSRule.SUPPORTS_RULE |
| PASS rules[0].cssRules[1].cssRules.length is 1 |
| PASS rules[0].cssRules[1].cssRules[0].type is CSSRule.STYLE_RULE |
| PASS rules[0].conditionText is "(width: 0)" |
| PASS rules[0].cssText is "@supports (width: 0) {\n s { width: 0px; }\n @supports (width: 1) {\n s { color: rgb(0, 0, 0); }\n}\n}" |
| |
| Inserting and deleting rules. |
| rules[0].insertRule('@media all { #s { width: 0px; } }', 2) |
| PASS rules[0].cssRules.length is 3 |
| PASS rules[0].cssRules[2].type is CSSRule.MEDIA_RULE |
| rules[0].deleteRule(2) |
| PASS rules[0].cssRules.length is 2 |
| rules[0].cssRules[1].insertRule('@supports (display: rainbow) {}', 1) |
| PASS rules[0].cssRules[1].cssRules.length is 2 |
| PASS rules[0].cssRules[1].cssRules[1].type is CSSRule.SUPPORTS_RULE |
| rules[0].cssRules[1].deleteRule(1) |
| PASS rules[0].cssRules.length is 2 |
| |
| @charset, @namespace, @import rules are not allowed inside @supports. |
| PASS rules[0].insertRule('@charset "UTF-8"', 2) threw exception SyntaxError: The string did not match the expected pattern.. |
| PASS rules[0].insertRule('@namespace ""', 2) threw exception HierarchyRequestError: The operation would yield an incorrect node tree.. |
| PASS rules[0].insertRule('@import url("../fast/cssom/resources/import.css")', 2) threw exception HierarchyRequestError: The operation would yield an incorrect node tree.. |
| |
| Whitespace and formatting should be preserved within the condition, whitespace outside the condition should be trimmed. |
| PASS rules[1].conditionText is "(( ( padding: 0) and (display: none)) or (display: rainbow))" |
| |
| @supports rule nested inside a media rule. |
| PASS rules[2].type is CSSRule.MEDIA_RULE |
| PASS rules[2].cssRules.length is 1 |
| PASS rules[2].cssRules[0].type is CSSRule.SUPPORTS_RULE |
| PASS rules[2].cssRules[0].conditionText is "( padding: 0)" |
| PASS rules[0].cssRules[1].cssRules.length is 1 |
| PASS rules[2].cssRules[0].cssRules[0].type is CSSRule.PAGE_RULE |
| PASS rules[2].cssText is "@media all { \n @supports ( padding: 0) {\n @page :left { top: 0px; }\n}\n}" |
| |
| No extra parens should be added to the conditionText. |
| PASS rules[3].conditionText is "(border: black) and (padding: 0) and (width: 0)" |
| |
| Deleting a top-level rule should work correctly. |
| document.styleSheets[1].deleteRule(3) |
| PASS rules.length is 3 |
| PASS rules[0].type is CSSRule.SUPPORTS_RULE |
| PASS rules[0].cssRules.length is 2 |
| PASS rules[0].cssRules[0].type is CSSRule.STYLE_RULE |
| PASS rules[0].cssRules[1].type is CSSRule.SUPPORTS_RULE |
| PASS rules[0].cssRules[1].cssRules.length is 1 |
| PASS rules[0].cssRules[1].cssRules[0].type is CSSRule.STYLE_RULE |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |