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

