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: An invalid or illegal string was specified..
PASS rules[0].insertRule('@namespace ""', 2) threw exception SyntaxError: An invalid or illegal string was specified..
PASS rules[0].insertRule('@import url("../fast/cssom/resources/import.css")', 2) threw exception HierarchyRequestError: A Node was inserted somewhere it doesn't belong..

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

