Test the parsing of :is(selectorList) for querySelector and style.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


1 valid selectors
PASS document.querySelector(":is(*)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(*)"
PASS document.querySelector(":is(*    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(*)"
PASS document.querySelector(":is(foobar)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(foobar)"
PASS document.querySelector(":is(foobar    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(foobar)"
PASS document.querySelector(":is(#id)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(#id)"
PASS document.querySelector(":is(#id    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(#id)"
PASS document.querySelector(":is(.class)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(.class)"
PASS document.querySelector(":is(.class    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(.class)"
PASS document.querySelector(":is(:first-child)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:first-child)"
PASS document.querySelector(":is(:first-child    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:first-child)"
PASS document.querySelector(":is(:last-child)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:last-child)"
PASS document.querySelector(":is(:last-child    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:last-child)"
PASS document.querySelector(":is(:visited)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:visited)"
PASS document.querySelector(":is(:visited    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:visited)"
PASS document.querySelector(":is(foobar#id.class)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(foobar#id.class)"
PASS document.querySelector(":is(foobar#id.class    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(foobar#id.class)"
PASS document.querySelector(":is(.class:not(.notclass))") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(.class:not(.notclass))"
PASS document.querySelector(":is(.class:not(.notclass)    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(.class:not(.notclass))"
PASS document.querySelector(":is(#id:empty)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(#id:empty)"
PASS document.querySelector(":is(#id:empty    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(#id:empty)"
PASS document.querySelector(":is(a > b)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a > b)"
PASS document.querySelector(":is(a > b    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a > b)"
PASS document.querySelector(":is(a b)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a b)"
PASS document.querySelector(":is(a b    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a b)"
PASS document.querySelector(":is(a + b)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a + b)"
PASS document.querySelector(":is(a + b    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a + b)"
PASS document.querySelector(":is(a ~ b)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a ~ b)"
PASS document.querySelector(":is(a ~ b    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a ~ b)"
PASS document.querySelector(":is(a + b > c ~ d e + g)") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a + b > c ~ d e + g)"
PASS document.querySelector(":is(a + b > c ~ d e + g    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(a + b > c ~ d e + g)"
PASS document.querySelector(":is(:-webkit-any(.selector, #tama, #hanayo, #midoriko))") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS document.querySelector(":is(:-webkit-any(.selector, #tama, #hanayo, #midoriko)    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS document.querySelector(":is(:not(:link))") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:not(:link))"
PASS document.querySelector(":is(:not(:link)    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:not(:link))"
PASS document.querySelector(":is(:nth-child(2n of a, b, c))") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:nth-child(2n of a, b, c))"
PASS document.querySelector(":is(:nth-child(2n of a, b, c)    )") did not throw exception.
PASS document.getElementById('style-container').sheet.cssRules.length is 1
PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":is(:nth-child(2n of a, b, c))"
PASS successfullyParsed is true

TEST COMPLETE

