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] is an instance of CSSSupportsRule
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] is an instance of CSSSupportsRule
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}"

Missing argument exceptions.
PASS rules[0].insertRule() threw exception TypeError: Failed to execute 'insertRule' on 'CSSGroupingRule': 2 arguments required, but only 0 present..
PASS rules[0].insertRule('@media all {}') threw exception TypeError: Failed to execute 'insertRule' on 'CSSGroupingRule': 2 arguments required, but only 1 present..
PASS rules[0].deleteRule() threw exception TypeError: Failed to execute 'deleteRule' on 'CSSGroupingRule': 1 argument required, but only 0 present..

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] is an instance of CSSSupportsRule
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: Failed to execute 'insertRule' on 'CSSGroupingRule': the rule '@charset "UTF-8"' is invalid and cannot be parsed..
PASS rules[0].insertRule('@namespace ""', 2) threw exception HierarchyRequestError: Failed to execute 'insertRule' on 'CSSGroupingRule': '@namespace' rules cannot be inserted inside a group rule..
PASS rules[0].insertRule('@import url("../fast/cssom/resources/import.css")', 2) threw exception HierarchyRequestError: Failed to execute 'insertRule' on 'CSSGroupingRule': '@import' rules cannot be inserted inside a group rule..

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] is an instance of CSSSupportsRule
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

