blob: 66f766b6fa021f173211c452cfe852d70db49143 [file] [log] [blame]
Selectors API Test Suite
Testrunner by John Resig, tests by John Resig, Disruptive Innovations, W3C CSS Working Group, jQuery JavaScript Library.
Show only failing tests.
99.2%: 2147 passed, 17 failed
PASS Element supports querySelector
PASS Element supports querySelectorAll
PASS Element.querySelectorAll Empty String
PASS Element.querySelectorAll null
PASS Element.querySelectorAll undefined
PASS Element.querySelectorAll no value
PASS Element.querySelector Empty String
PASS Element.querySelector null
PASS Element.querySelector undefined
PASS Element.querySelector no value
PASS Element.querySelectorAll: .target :target
PASS Element.querySelectorAll Whitespace Trim: .target :target
PASS Element.querySelector: .target :target
PASS Element.querySelectorAll: html > body
PASS Element.querySelectorAll Whitespace Trim: html > body
PASS Element.querySelector: html > body
PASS Element.querySelectorAll: .test > .blox1
PASS Element.querySelectorAll Whitespace Trim: .test > .blox1
PASS Element.querySelector: .test > .blox1
PASS Element.querySelectorAll: .blox2[align]
PASS Element.querySelectorAll Whitespace Trim: .blox2[align]
PASS Element.querySelector: .blox2[align]
PASS Element.querySelectorAll: .blox3[align]
PASS Element.querySelectorAll Whitespace Trim: .blox3[align]
PASS Element.querySelector: .blox3[align]
PASS Element.querySelectorAll: .blox4, .blox5
PASS Element.querySelectorAll Whitespace Trim: .blox4, .blox5
PASS Element.querySelector: .blox4, .blox5
PASS Element.querySelectorAll: .blox4[align], .blox5[align]
PASS Element.querySelectorAll Whitespace Trim: .blox4[align], .blox5[align]
PASS Element.querySelector: .blox4[align], .blox5[align]
PASS Element.querySelectorAll: .blox6[align="center"]
PASS Element.querySelectorAll Whitespace Trim: .blox6[align="center"]
PASS Element.querySelector: .blox6[align="center"]
PASS Element.querySelectorAll: .blox6[align="c"]
PASS Element.querySelectorAll Whitespace Trim: .blox6[align="c"]
PASS Element.querySelector: .blox6[align="c"]
PASS Element.querySelectorAll: .blox6[align="centera"]
PASS Element.querySelectorAll Whitespace Trim: .blox6[align="centera"]
PASS Element.querySelector: .blox6[align="centera"]
PASS Element.querySelectorAll: .blox6[foo="\e9"]
PASS Element.querySelectorAll Whitespace Trim: .blox6[foo="\e9"]
PASS Element.querySelector: .blox6[foo="\e9"]
PASS Element.querySelectorAll: .blox6[\_foo="\e9"]
PASS Element.querySelectorAll Whitespace Trim: .blox6[\_foo="\e9"]
PASS Element.querySelector: .blox6[\_foo="\e9"]
PASS Element.querySelectorAll: .blox7[class~="foo"]
PASS Element.querySelectorAll Whitespace Trim: .blox7[class~="foo"]
PASS Element.querySelector: .blox7[class~="foo"]
PASS Element.querySelectorAll: .blox8, .blox9, .blox10
PASS Element.querySelectorAll Whitespace Trim: .blox8, .blox9, .blox10
PASS Element.querySelector: .blox8, .blox9, .blox10
PASS Element.querySelectorAll: .blox8[class~=""]
PASS Element.querySelectorAll Whitespace Trim: .blox8[class~=""]
PASS Element.querySelector: .blox8[class~=""]
PASS Element.querySelectorAll: .blox9[foo~=""]
PASS Element.querySelectorAll Whitespace Trim: .blox9[foo~=""]
PASS Element.querySelector: .blox9[foo~=""]
PASS Element.querySelectorAll: .blox10[foo~="foo"]
PASS Element.querySelectorAll Whitespace Trim: .blox10[foo~="foo"]
PASS Element.querySelector: .blox10[foo~="foo"]
PASS Element.querySelectorAll: .attrStart > .t3
PASS Element.querySelectorAll Whitespace Trim: .attrStart > .t3
PASS Element.querySelector: .attrStart > .t3
PASS Element.querySelectorAll: .attrStart > .t1[class^="unit"]
PASS Element.querySelectorAll Whitespace Trim: .attrStart > .t1[class^="unit"]
PASS Element.querySelector: .attrStart > .t1[class^="unit"]
PASS Element.querySelectorAll: .attrStart > .t2
PASS Element.querySelectorAll Whitespace Trim: .attrStart > .t2
PASS Element.querySelector: .attrStart > .t2
PASS Element.querySelectorAll: .attrStart > .t2[class^="nit"]
PASS Element.querySelectorAll Whitespace Trim: .attrStart > .t2[class^="nit"]
PASS Element.querySelector: .attrStart > .t2[class^="nit"]
PASS Element.querySelectorAll: .attrStart > .t3[align^=""]
PASS Element.querySelectorAll Whitespace Trim: .attrStart > .t3[align^=""]
PASS Element.querySelector: .attrStart > .t3[align^=""]
PASS Element.querySelectorAll: .attrStart > .t4[foo^="\e9"]
PASS Element.querySelectorAll Whitespace Trim: .attrStart > .t4[foo^="\e9"]
PASS Element.querySelector: .attrStart > .t4[foo^="\e9"]
PASS Element.querySelectorAll: .attrEnd > .t3
PASS Element.querySelectorAll Whitespace Trim: .attrEnd > .t3
PASS Element.querySelector: .attrEnd > .t3
PASS Element.querySelectorAll: .attrEnd > .t1[class$="t1"]
PASS Element.querySelectorAll Whitespace Trim: .attrEnd > .t1[class$="t1"]
PASS Element.querySelector: .attrEnd > .t1[class$="t1"]
PASS Element.querySelectorAll: .attrEnd > .t2
PASS Element.querySelectorAll Whitespace Trim: .attrEnd > .t2
PASS Element.querySelector: .attrEnd > .t2
PASS Element.querySelectorAll: .attrEnd > .t2[class$="unit"]
PASS Element.querySelectorAll Whitespace Trim: .attrEnd > .t2[class$="unit"]
PASS Element.querySelector: .attrEnd > .t2[class$="unit"]
PASS Element.querySelectorAll: .attrEnd > .t3[align$=""]
PASS Element.querySelectorAll Whitespace Trim: .attrEnd > .t3[align$=""]
PASS Element.querySelector: .attrEnd > .t3[align$=""]
PASS Element.querySelectorAll: .attrEnd > .t4[foo$="\e9"]
PASS Element.querySelectorAll Whitespace Trim: .attrEnd > .t4[foo$="\e9"]
PASS Element.querySelector: .attrEnd > .t4[foo$="\e9"]
PASS Element.querySelectorAll: .attrMiddle > .t3
PASS Element.querySelectorAll Whitespace Trim: .attrMiddle > .t3
PASS Element.querySelector: .attrMiddle > .t3
PASS Element.querySelectorAll: .attrMiddle > .t1[class*="t t"]
PASS Element.querySelectorAll Whitespace Trim: .attrMiddle > .t1[class*="t t"]
PASS Element.querySelector: .attrMiddle > .t1[class*="t t"]
PASS Element.querySelectorAll: .attrMiddle > .t2
PASS Element.querySelectorAll Whitespace Trim: .attrMiddle > .t2
PASS Element.querySelector: .attrMiddle > .t2
PASS Element.querySelectorAll: .attrMiddle > .t2[class*="a"]
PASS Element.querySelectorAll Whitespace Trim: .attrMiddle > .t2[class*="a"]
PASS Element.querySelector: .attrMiddle > .t2[class*="a"]
PASS Element.querySelectorAll: .attrMiddle > .t3[align*=""]
PASS Element.querySelectorAll Whitespace Trim: .attrMiddle > .t3[align*=""]
PASS Element.querySelector: .attrMiddle > .t3[align*=""]
PASS Element.querySelectorAll: .attrMiddle > .t4[foo*="\e9"]
PASS Element.querySelectorAll Whitespace Trim: .attrMiddle > .t4[foo*="\e9"]
PASS Element.querySelector: .attrMiddle > .t4[foo*="\e9"]
PASS Element.querySelectorAll: .firstChild .unitTest:first-child
PASS Element.querySelectorAll Whitespace Trim: .firstChild .unitTest:first-child
PASS Element.querySelector: .firstChild .unitTest:first-child
PASS Element.querySelectorAll: .blox12:first-child
PASS Element.querySelectorAll Whitespace Trim: .blox12:first-child
PASS Element.querySelector: .blox12:first-child
PASS Element.querySelectorAll: .blox13:first-child
PASS Element.querySelectorAll Whitespace Trim: .blox13:first-child
PASS Element.querySelector: .blox13:first-child
PASS Element.querySelectorAll: .blox12, .blox13
PASS Element.querySelectorAll Whitespace Trim: .blox12, .blox13
PASS Element.querySelector: .blox12, .blox13
PASS Element.querySelectorAll: :root
PASS Element.querySelectorAll Whitespace Trim: :root
PASS Element.querySelector: :root
PASS Element.querySelectorAll: .nthchild1 > :nth-last-child(odd)
PASS Element.querySelectorAll Whitespace Trim: .nthchild1 > :nth-last-child(odd)
PASS Element.querySelector: .nthchild1 > :nth-last-child(odd)
PASS Element.querySelectorAll: .nthchild1 > :nth-child(odd)
PASS Element.querySelectorAll Whitespace Trim: .nthchild1 > :nth-child(odd)
PASS Element.querySelector: .nthchild1 > :nth-child(odd)
PASS Element.querySelectorAll: .nthchild2 > :nth-last-child(even)
PASS Element.querySelectorAll Whitespace Trim: .nthchild2 > :nth-last-child(even)
PASS Element.querySelector: .nthchild2 > :nth-last-child(even)
PASS Element.querySelectorAll: .nthchild2 > :nth-child(even)
PASS Element.querySelectorAll Whitespace Trim: .nthchild2 > :nth-child(even)
PASS Element.querySelector: .nthchild2 > :nth-child(even)
PASS Element.querySelectorAll: .nthchild3 > :nth-child(3n+2)
PASS Element.querySelectorAll Whitespace Trim: .nthchild3 > :nth-child(3n+2)
PASS Element.querySelector: .nthchild3 > :nth-child(3n+2)
PASS Element.querySelectorAll: .nthchild3 > :nth-last-child(3n+1)
PASS Element.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+1)
PASS Element.querySelector: .nthchild3 > :nth-last-child(3n+1)
PASS Element.querySelectorAll: .nthchild3 > :nth-last-child(3n+3)
PASS Element.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+3)
PASS Element.querySelector: .nthchild3 > :nth-last-child(3n+3)
PASS Element.querySelectorAll: .nthoftype1 > div:nth-of-type(odd)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-of-type(odd)
PASS Element.querySelector: .nthoftype1 > div:nth-of-type(odd)
PASS Element.querySelectorAll: .nthoftype1 > div:nth-last-of-type(odd)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-last-of-type(odd)
PASS Element.querySelector: .nthoftype1 > div:nth-last-of-type(odd)
PASS Element.querySelectorAll: .nthoftype1 > p
PASS Element.querySelectorAll Whitespace Trim: .nthoftype1 > p
PASS Element.querySelector: .nthoftype1 > p
PASS Element.querySelectorAll: .nthoftype2 > div:nth-of-type(even)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-of-type(even)
PASS Element.querySelector: .nthoftype2 > div:nth-of-type(even)
PASS Element.querySelectorAll: .nthoftype2 > div:nth-last-of-type(even)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-last-of-type(even)
PASS Element.querySelector: .nthoftype2 > div:nth-last-of-type(even)
PASS Element.querySelectorAll: .nthoftype2 > p
PASS Element.querySelectorAll Whitespace Trim: .nthoftype2 > p
PASS Element.querySelector: .nthoftype2 > p
PASS Element.querySelectorAll: .nthoftype3 > div:nth-of-type(3n+1)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-of-type(3n+1)
PASS Element.querySelector: .nthoftype3 > div:nth-of-type(3n+1)
PASS Element.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Element.querySelector: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Element.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Element.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Element.querySelector: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Element.querySelectorAll: .nthoftype3 > p
PASS Element.querySelectorAll Whitespace Trim: .nthoftype3 > p
PASS Element.querySelector: .nthoftype3 > p
PASS Element.querySelectorAll: .blox14:not(span)
PASS Element.querySelectorAll Whitespace Trim: .blox14:not(span)
PASS Element.querySelector: .blox14:not(span)
PASS Element.querySelectorAll: .blox15:not([foo="blox14"])
PASS Element.querySelectorAll Whitespace Trim: .blox15:not([foo="blox14"])
PASS Element.querySelector: .blox15:not([foo="blox14"])
PASS Element.querySelectorAll: .blox16:not(.blox15)
PASS Element.querySelectorAll Whitespace Trim: .blox16:not(.blox15)
PASS Element.querySelector: .blox16:not(.blox15)
PASS Element.querySelectorAll: .blox17:only-of-type
PASS Element.querySelectorAll Whitespace Trim: .blox17:only-of-type
PASS Element.querySelector: .blox17:only-of-type
PASS Element.querySelectorAll: .blox18:only-of-type
PASS Element.querySelectorAll Whitespace Trim: .blox18:only-of-type
PASS Element.querySelector: .blox18:only-of-type
PASS Element.querySelectorAll: .blox18:not(:only-of-type)
PASS Element.querySelectorAll Whitespace Trim: .blox18:not(:only-of-type)
PASS Element.querySelector: .blox18:not(:only-of-type)
PASS Element.querySelectorAll: .lastChild > :last-child
PASS Element.querySelectorAll Whitespace Trim: .lastChild > :last-child
PASS Element.querySelector: .lastChild > :last-child
PASS Element.querySelectorAll: .lastChild > :not(:last-child)
PASS Element.querySelectorAll Whitespace Trim: .lastChild > :not(:last-child)
PASS Element.querySelector: .lastChild > :not(:last-child)
PASS Element.querySelectorAll: .firstOfType > *:first-of-type
PASS Element.querySelectorAll Whitespace Trim: .firstOfType > *:first-of-type
PASS Element.querySelector: .firstOfType > *:first-of-type
PASS Element.querySelectorAll: *.firstOfType > :not(:first-of-type)
PASS Element.querySelectorAll Whitespace Trim: *.firstOfType > :not(:first-of-type)
PASS Element.querySelector: *.firstOfType > :not(:first-of-type)
PASS Element.querySelectorAll: .lastOfType > *:last-of-type
PASS Element.querySelectorAll Whitespace Trim: .lastOfType > *:last-of-type
PASS Element.querySelector: .lastOfType > *:last-of-type
PASS Element.querySelectorAll: *.lastOfType > :not(:last-of-type)
PASS Element.querySelectorAll Whitespace Trim: *.lastOfType > :not(:last-of-type)
PASS Element.querySelector: *.lastOfType > :not(:last-of-type)
PASS Element.querySelectorAll: .onlyChild > *:not(:only-child)
PASS Element.querySelectorAll Whitespace Trim: .onlyChild > *:not(:only-child)
PASS Element.querySelector: .onlyChild > *:not(:only-child)
PASS Element.querySelectorAll: .onlyChild > .unitTest > *:only-child
PASS Element.querySelectorAll Whitespace Trim: .onlyChild > .unitTest > *:only-child
PASS Element.querySelector: .onlyChild > .unitTest > *:only-child
PASS Element.querySelectorAll: .onlyOfType *:only-of-type
PASS Element.querySelectorAll Whitespace Trim: .onlyOfType *:only-of-type
PASS Element.querySelector: .onlyOfType *:only-of-type
PASS Element.querySelectorAll: .onlyOfType *:not(:only-of-type)
PASS Element.querySelectorAll Whitespace Trim: .onlyOfType *:not(:only-of-type)
PASS Element.querySelector: .onlyOfType *:not(:only-of-type)
PASS Element.querySelectorAll: .empty > *.isEmpty:empty
PASS Element.querySelectorAll Whitespace Trim: .empty > *.isEmpty:empty
PASS Element.querySelector: .empty > *.isEmpty:empty
PASS Element.querySelectorAll: .empty > .isNotEmpty
PASS Element.querySelectorAll Whitespace Trim: .empty > .isNotEmpty
PASS Element.querySelector: .empty > .isNotEmpty
PASS Element.querySelectorAll: .empty > .isNotEmpty:empty
PASS Element.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:empty
PASS Element.querySelector: .empty > .isNotEmpty:empty
PASS Element.querySelectorAll: .empty > .isNotEmpty:not(:empty)
PASS Element.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:not(:empty)
PASS Element.querySelector: .empty > .isNotEmpty:not(:empty)
PASS Element.querySelectorAll: .lang :lang(en)
PASS Element.querySelectorAll Whitespace Trim: .lang :lang(en)
PASS Element.querySelector: .lang :lang(en)
PASS Element.querySelectorAll: .lang :lang(fr)
PASS Element.querySelectorAll Whitespace Trim: .lang :lang(fr)
PASS Element.querySelector: .lang :lang(fr)
PASS Element.querySelectorAll: .lang .t1
PASS Element.querySelectorAll Whitespace Trim: .lang .t1
PASS Element.querySelector: .lang .t1
PASS Element.querySelectorAll: .lang .t1:lang(es)
PASS Element.querySelectorAll Whitespace Trim: .lang .t1:lang(es)
PASS Element.querySelector: .lang .t1:lang(es)
PASS Element.querySelectorAll: .lang :lang(es-AR)
PASS Element.querySelectorAll Whitespace Trim: .lang :lang(es-AR)
PASS Element.querySelector: .lang :lang(es-AR)
PASS Element.querySelectorAll: .attrLang .t1
PASS Element.querySelectorAll Whitespace Trim: .attrLang .t1
PASS Element.querySelector: .attrLang .t1
PASS Element.querySelectorAll: .attrLang .t1[lang|="en"]
PASS Element.querySelectorAll Whitespace Trim: .attrLang .t1[lang|="en"]
PASS Element.querySelector: .attrLang .t1[lang|="en"]
PASS Element.querySelectorAll: .attrLang [lang|="fr"]
PASS Element.querySelectorAll Whitespace Trim: .attrLang [lang|="fr"]
PASS Element.querySelector: .attrLang [lang|="fr"]
PASS Element.querySelectorAll: .attrLang .t2[lang|="en"]
PASS Element.querySelectorAll Whitespace Trim: .attrLang .t2[lang|="en"]
PASS Element.querySelector: .attrLang .t2[lang|="en"]
PASS Element.querySelectorAll: .attrLang .t3
PASS Element.querySelectorAll Whitespace Trim: .attrLang .t3
PASS Element.querySelector: .attrLang .t3
PASS Element.querySelectorAll: .attrLang .t3[lang|="es"]
PASS Element.querySelectorAll Whitespace Trim: .attrLang .t3[lang|="es"]
PASS Element.querySelector: .attrLang .t3[lang|="es"]
PASS Element.querySelectorAll: .attrLang [lang|="es-AR"]
PASS Element.querySelectorAll Whitespace Trim: .attrLang [lang|="es-AR"]
PASS Element.querySelector: .attrLang [lang|="es-AR"]
PASS Element.querySelectorAll: .UI .t1:enabled > .unitTest
PASS Element.querySelectorAll Whitespace Trim: .UI .t1:enabled > .unitTest
PASS Element.querySelector: .UI .t1:enabled > .unitTest
PASS Element.querySelectorAll: .UI .t2:disabled > .unitTest
PASS Element.querySelectorAll Whitespace Trim: .UI .t2:disabled > .unitTest
PASS Element.querySelector: .UI .t2:disabled > .unitTest
PASS Element.querySelectorAll: .UI .t3:checked + div
PASS Element.querySelectorAll Whitespace Trim: .UI .t3:checked + div
PASS Element.querySelector: .UI .t3:checked + div
PASS Element.querySelectorAll: .UI .t4:not(:checked) + div
PASS Element.querySelectorAll Whitespace Trim: .UI .t4:not(:checked) + div
PASS Element.querySelector: .UI .t4:not(:checked) + div
PASS Element.querySelectorAll: .tilda .t1
PASS Element.querySelectorAll Whitespace Trim: .tilda .t1
PASS Element.querySelector: .tilda .t1
PASS Element.querySelectorAll: .tilda .t1 ~ .unitTest
PASS Element.querySelectorAll Whitespace Trim: .tilda .t1 ~ .unitTest
PASS Element.querySelector: .tilda .t1 ~ .unitTest
PASS Element.querySelectorAll: .tilda .t1:hover ~ .unitTest
PASS Element.querySelectorAll Whitespace Trim: .tilda .t1:hover ~ .unitTest
PASS Element.querySelector: .tilda .t1:hover ~ .unitTest
PASS Element.querySelectorAll: .plus .t1, .plus .t2
PASS Element.querySelectorAll Whitespace Trim: .plus .t1, .plus .t2
PASS Element.querySelector: .plus .t1, .plus .t2
PASS Element.querySelectorAll: .plus .t1 + .unitTest + .unitTest
PASS Element.querySelectorAll Whitespace Trim: .plus .t1 + .unitTest + .unitTest
PASS Element.querySelector: .plus .t1 + .unitTest + .unitTest
PASS Element.querySelectorAll: .plus .t1:hover + .unitTest + .unitTest
PASS Element.querySelectorAll Whitespace Trim: .plus .t1:hover + .unitTest + .unitTest
PASS Element.querySelector: .plus .t1:hover + .unitTest + .unitTest
FAIL Inside Element: :target selector
PASS Inside Element: childhood selector
PASS Inside Element: attribute existence selector
PASS Inside Element: attribute existence selector with empty string value
PASS Inside Element: attribute existence selector with almost identical attribute
PASS Inside Element: attribute existence selector with almost identical attribute
PASS Inside Element: attribute value selector
PASS Inside Element: attribute value selector with an entity in the attribute and an escaped value in the selector
PASS Inside Element: attribute value selector with an entity in the attribute, an escaped value in the selector, and a leading underscore in the attribute name
PASS Inside Element: [~=] attribute selector
PASS Inside Element: [~=] attribute selector looking for empty string
PASS Inside Element: [~=] attribute selector looking for empty string in empty attribute
PASS Inside Element: [~=] attribute selector looking for 'foo' in 'foobar'
PASS Inside Element: [^=] attribute selector
PASS Inside Element: [^=] attribute selector
PASS Inside Element: [^=] attribute selector looking for empty string
PASS Inside Element: [^=] attribute selector looking for é
PASS Inside Element: [$=] attribute selector
PASS Inside Element: [$=] attribute selector
PASS Inside Element: [$=] attribute selector looking for empty string
PASS Inside Element: [$=] attribute selector looking for é
PASS Inside Element: [*=] attribute selector
PASS Inside Element: [*=] attribute selector
PASS Inside Element: [*=] attribute selector looking for empty string
PASS Inside Element: [*=] attribute selector looking for é
PASS Inside Element: :first-child selector
PASS Inside Element: :first-child selector should not match non first child
PASS Inside Element: :first-child selector should not match non first child
PASS Inside Element: negation pseudo-class with argument being an element type selector
PASS Inside Element: negation pseudo-class with argument being an attribute selector
PASS Inside Element: negation pseudo-class accepts only simple selectors for argument
PASS Inside Element: :only-of-type selector
PASS Inside Element: negated :only-of-type selector
PASS Inside Element: negated :only-of-type selector
PASS Inside Element: :nth-child(odd) selector
PASS Inside Element: :nth-last-child(odd) selector
PASS Inside Element: :nth-child(odd) selector
PASS Inside Element: :nth-last-child(odd) selector
PASS Inside Element: :nth-child(odd) selector
PASS Inside Element: :nth-last-child(odd) selector
PASS Inside Element: :nth-last-child(even) selector
PASS Inside Element: :nth-child(even) selector
PASS Inside Element: :nth-last-child(even) selector
PASS Inside Element: :nth-child(even) selector
PASS Inside Element: :nth-last-child(even) selector
PASS Inside Element: :nth-child(even) selector
PASS Inside Element: :nth-last-child(3n+3) selector
PASS Inside Element: :nth-child(3n+2) selector
PASS Inside Element: :nth-last-child(3n+1) selector
PASS Inside Element: :nth-last-child(3n+3) selector
PASS Inside Element: :nth-child(3n+2) selector
PASS Inside Element: :nth-last-child(3n+1) selector
PASS Inside Element: :nth-of-type(odd) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-last-of-type(odd) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-of-type(odd) selector
PASS Inside Element: :nth-last-of-type(odd) selector
PASS Inside Element: :nth-last-of-type(even) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-of-type(even) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-last-of-type(even) selector
PASS Inside Element: :nth-of-type(even) selector
PASS Inside Element: :nth-of-type(3n+1) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-last-of-type(3n+2) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-last-of-type(3n+1) selector
PASS Inside Element: :nth-of-type(3n+1) selector
PASS Inside Element: :nth-* selector
PASS Inside Element: :nth-last-of-type(3n+2) selector
PASS Inside Element: :nth-last-of-type(3n+1) selector
PASS Inside Element: :not(:last-child) selector
PASS Inside Element: :last-child selector
PASS Inside Element: :first-of-type selector
PASS Inside Element: :first-of-type selector
PASS Inside Element: :not(:first-of-type)
PASS Inside Element: :not(:first-of-type)
PASS Inside Element: :not(:last-of-type)
PASS Inside Element: :not(:last-of-type)
PASS Inside Element: :last-of-type selector
PASS Inside Element: :last-of-type selector
PASS Inside Element: :only-child where the element is NOT the only child
PASS Inside Element: :only-child where the element is the only child
PASS Inside Element: :only-child where the element is the only child
PASS Inside Element: :only-of-type
PASS Inside Element: :only-of-type
PASS Inside Element: :only-of-type
PASS Inside Element: :not(only-of-type)
PASS Inside Element: :empty with empty element
PASS Inside Element: :empty but element contains a whitespace
PASS Inside Element: :empty and element contains an SGML comment
PASS Inside Element: :empty but element contains a SPAN element
PASS Inside Element: :empty but element contains an entity reference
PASS Inside Element: :lang() where language comes from the document
PASS Inside Element: :lang() where language comes from the element
PASS Inside Element: :lang() where language comes from the element but is a dialect of the language queried
PASS Inside Element: :lang() where language comes from the element but the language queried is a dialect of the element's one so it should not match
PASS Inside Element: [|=] where language comes from the document
PASS Inside Element: [|=] where language comes from the element
PASS Inside Element: [|=] where language comes from the element but is a dialect of the language queried
PASS Inside Element: [|=] where language comes from the element but the language queried is a dialect of the element's one so it should not match
PASS Inside Element: :enabled pseudo-class
PASS Inside Element: :enabled pseudo-class
PASS Inside Element: :checked
PASS Inside Element: :not(:checked)
PASS Inside Element: ~ combinator
PASS Inside Element: ~ combinator
PASS Inside Element: ~ combinator
PASS Inside Element: ~ combinator
PASS Inside Element: + combinator
PASS Inside Element: + combinator
PASS Inside Element: + combinator
PASS Element: StaticNodeList
PASS Element: StaticNodeList
PASS Outside Element: childhood selector
PASS Outside Element: attribute existence selector
PASS Outside Element: attribute existence selector with empty string value
PASS Outside Element: attribute existence selector with almost identical attribute
PASS Outside Element: attribute existence selector with almost identical attribute
PASS Outside Element: attribute value selector
PASS Outside Element: attribute value selector with an entity in the attribute and an escaped value in the selector
PASS Outside Element: attribute value selector with an entity in the attribute, an escaped value in the selector, and a leading underscore in the attribute name
PASS Outside Element: [~=] attribute selector
PASS Outside Element: [~=] attribute selector looking for empty string
PASS Outside Element: [~=] attribute selector looking for empty string in empty attribute
PASS Outside Element: [~=] attribute selector looking for 'foo' in 'foobar'
PASS Outside Element: [^=] attribute selector
PASS Outside Element: [^=] attribute selector
PASS Outside Element: [^=] attribute selector looking for empty string
PASS Outside Element: [^=] attribute selector looking for é
PASS Outside Element: [$=] attribute selector
PASS Outside Element: [$=] attribute selector
PASS Outside Element: [$=] attribute selector looking for empty string
PASS Outside Element: [$=] attribute selector looking for é
PASS Outside Element: [*=] attribute selector
PASS Outside Element: [*=] attribute selector
PASS Outside Element: [*=] attribute selector looking for empty string
PASS Outside Element: [*=] attribute selector looking for é
PASS Outside Element: :first-child selector
PASS Outside Element: :first-child selector should not match non first child
PASS Outside Element: :first-child selector should not match non first child
PASS Outside Element: negation pseudo-class with argument being an element type selector
PASS Outside Element: negation pseudo-class with argument being an attribute selector
PASS Outside Element: negation pseudo-class accepts only simple selectors for argument
PASS Outside Element: :only-of-type selector
PASS Outside Element: negated :only-of-type selector
PASS Outside Element: negated :only-of-type selector
PASS Outside Element: :nth-child(odd) selector
PASS Outside Element: :nth-last-child(odd) selector
PASS Outside Element: :nth-child(odd) selector
PASS Outside Element: :nth-last-child(odd) selector
PASS Outside Element: :nth-child(odd) selector
PASS Outside Element: :nth-last-child(odd) selector
PASS Outside Element: :nth-last-child(even) selector
PASS Outside Element: :nth-child(even) selector
PASS Outside Element: :nth-last-child(even) selector
PASS Outside Element: :nth-child(even) selector
PASS Outside Element: :nth-last-child(even) selector
PASS Outside Element: :nth-child(even) selector
PASS Outside Element: :nth-last-child(3n+3) selector
PASS Outside Element: :nth-child(3n+2) selector
PASS Outside Element: :nth-last-child(3n+1) selector
PASS Outside Element: :nth-last-child(3n+3) selector
PASS Outside Element: :nth-child(3n+2) selector
PASS Outside Element: :nth-last-child(3n+1) selector
PASS Outside Element: :nth-of-type(odd) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-last-of-type(odd) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-of-type(odd) selector
PASS Outside Element: :nth-last-of-type(odd) selector
PASS Outside Element: :nth-last-of-type(even) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-of-type(even) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-last-of-type(even) selector
PASS Outside Element: :nth-of-type(even) selector
PASS Outside Element: :nth-of-type(3n+1) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-last-of-type(3n+2) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-last-of-type(3n+1) selector
PASS Outside Element: :nth-of-type(3n+1) selector
PASS Outside Element: :nth-of-* selector
PASS Outside Element: :nth-last-of-type(3n+2) selector
PASS Outside Element: :nth-last-of-type(3n+1) selector
PASS Outside Element: :not(:last-child) selector
PASS Outside Element: :last-child selector
PASS Outside Element: :first-of-type selector
PASS Outside Element: :first-of-type selector
PASS Outside Element: :not(:first-of-type)
PASS Outside Element: :not(:first-of-type)
PASS Outside Element: :not(:last-of-type)
PASS Outside Element: :not(:last-of-type)
PASS Outside Element: :last-of-type selector
PASS Outside Element: :last-of-type selector
PASS Outside Element: :only-child where the element is NOT the only child
PASS Outside Element: :only-child where the element is the only child
PASS Outside Element: :only-child where the element is the only child
PASS Outside Element: :only-of-type
PASS Outside Element: :only-of-type
PASS Outside Element: :only-of-type
PASS Outside Element: :not(only-of-type)
PASS Outside Element: :empty with empty element
PASS Outside Element: :empty but element contains a whitespace
PASS Outside Element: :empty and element contains an SGML comment
PASS Outside Element: :empty but element contains a SPAN element
PASS Outside Element: :empty but element contains an entity reference
PASS Outside Element: :lang() where language comes from the document
PASS Outside Element: :lang() where language comes from the element
PASS Outside Element: :lang() where language comes from the element but is a dialect of the language queried
PASS Outside Element: :lang() where language comes from the element but the language queried is a dialect of the element's one so it should not match
PASS Outside Element: [|=] where language comes from the document
PASS Outside Element: [|=] where language comes from the element
PASS Outside Element: [|=] where language comes from the element but is a dialect of the language queried
PASS Outside Element: [|=] where language comes from the element but the language queried is a dialect of the element's one so it should not match
PASS Outside Element: :enabled pseudo-class
PASS Outside Element: :enabled pseudo-class
PASS Outside Element: :checked
PASS Outside Element: :not(:checked)
PASS Outside Element: ~ combinator
PASS Outside Element: ~ combinator
PASS Outside Element: ~ combinator
PASS Outside Element: ~ combinator
PASS Outside Element: + combinator
PASS Outside Element: + combinator
PASS Outside Element: + combinator
PASS Syntax Error: Element.querySelectorAll Empty String
PASS Syntax Error: Element.querySelectorAll null
PASS Syntax Error: Element.querySelectorAll undefined
PASS Syntax Error: Element.querySelectorAll no value
PASS Syntax Error: Element.querySelector Empty String
PASS Syntax Error: Element.querySelector null
PASS Syntax Error: Element.querySelector undefined
PASS Syntax Error: Element.querySelector no value
FAIL Syntax Error: Element.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Element.querySelector: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Element.querySelectorAll: div:not(:not(div))
FAIL Syntax Error: Element.querySelector: div:not(:not(div))
PASS Syntax Error: Element.querySelectorAll: div,
PASS Syntax Error: Element.querySelector: div,
PASS Syntax Error: Element.querySelectorAll: .5cm
PASS Syntax Error: Element.querySelector: .5cm
PASS Syntax Error: Element.querySelectorAll: foo & address, p
PASS Syntax Error: Element.querySelector: foo & address, p
PASS Syntax Error: Element.querySelectorAll: [*=test]
PASS Syntax Error: Element.querySelector: [*=test]
PASS Syntax Error: Element.querySelectorAll: [*|*=test]
PASS Syntax Error: Element.querySelector: [*|*=test]
PASS Syntax Error: Element.querySelectorAll: div:subject
PASS Syntax Error: Element.querySelector: div:subject
PASS Syntax Error: Element.querySelectorAll: :canvas
PASS Syntax Error: Element.querySelector: :canvas
PASS Syntax Error: Element.querySelectorAll: :viewport
PASS Syntax Error: Element.querySelector: :viewport
PASS Syntax Error: Element.querySelectorAll: :window
PASS Syntax Error: Element.querySelector: :window
PASS Syntax Error: Element.querySelectorAll: :menu
PASS Syntax Error: Element.querySelector: :menu
PASS Syntax Error: Element.querySelectorAll: :table
PASS Syntax Error: Element.querySelector: :table
PASS Syntax Error: Element.querySelectorAll: :select
PASS Syntax Error: Element.querySelector: :select
PASS Syntax Error: Element.querySelectorAll: ::canvas
PASS Syntax Error: Element.querySelector: ::canvas
PASS Syntax Error: Element.querySelectorAll: ::viewport
PASS Syntax Error: Element.querySelector: ::viewport
PASS Syntax Error: Element.querySelectorAll: ::window
PASS Syntax Error: Element.querySelector: ::window
PASS Syntax Error: Element.querySelectorAll: ::menu
PASS Syntax Error: Element.querySelector: ::menu
PASS Syntax Error: Element.querySelectorAll: ::table
PASS Syntax Error: Element.querySelector: ::table
PASS Syntax Error: Element.querySelectorAll: ::select
PASS Syntax Error: Element.querySelector: ::select
PASS Syntax Error: Element.querySelectorAll: ..test
PASS Syntax Error: Element.querySelector: ..test
PASS Syntax Error: Element.querySelectorAll: .foo..quux
PASS Syntax Error: Element.querySelector: .foo..quux
PASS Syntax Error: Element.querySelectorAll: .bar.
PASS Syntax Error: Element.querySelector: .bar.
PASS Element: Select all
PASS Element: Select all elements, no comment nodes
PASS Element: :root Selector (:root)
PASS Element: :root All Selector
PASS Element: Element Selector (#root3 p)
PASS Element: Parent Element (#root3 div p)
PASS Element: Object/param as context
PASS Element: <input name="length"> cannot be found under IE
PASS Element: <input name="length"> cannot be found under IE
PASS Element: Broken Selector (#root3 [)
PASS Element: Broken Selector (#root3 ()
PASS Element: Broken Selector (#root3 {)
PASS Element: Broken Selector (#root3 <)
PASS Element: Broken Selector (#root3 ())
PASS Element: Broken Selector (#root3 <>)
PASS Element: Broken Selector (#root3 {})
PASS Element: ID Selector w/ Element (#root3 ul#first)
PASS Element: ID selector with existing ID descendant (#root3 #firstp #simon1)
PASS Element: ID selector with non-existant descendant (#root3 #firstp #foobar)
PASS Element: ID selector using UTF8 (#root3 #台北Táiběi)
PASS Element: Multiple ID selectors using UTF8 (#root3 #台北Táiběi, #root3 #台北)
PASS Element: Descendant ID selector using UTF8 (#root3 div #台北)
PASS Element: Child ID selector using UTF8 (#root3 form > #台北)
PASS Element: Escaped ID (#root3 #foo\:bar)
PASS Element: Escaped ID (#root3 #test\.foo\[5\]bar)
PASS Element: Descendant escaped ID (#root3 div #foo\:bar)
PASS Element: Descendant escaped ID (#root3 div #test\.foo\[5\]bar)
PASS Element: Child escaped ID (#root3 form > #foo\:bar)
PASS Element: Child escaped ID (#root3 form > #test\.foo\[5\]bar)
PASS Element: ID Selector, child ID present (#root3 #form > #radio1)
PASS Element: ID Selector, not an ancestor ID (#root3 #form #first)
PASS Element: ID Selector, not a child ID (#root3 #form > #option1a)
PASS Element: All Children of ID (#root3 #foo > *)
PASS Element: All Children of ID with no children (#root3 #firstUL > *)
PASS Element: ID selector with non-existant ancestor (#root3 #asdfasdf #foobar)
PASS Element: Class Selector (#root3 .blog)
PASS Element: Class Selector (#root3 .blog.link)
PASS Element: Class Selector w/ Element (#root3 a.blog)
PASS Element: Parent Class Selector (#root3 p .blog)
PASS Element: Class selector using UTF8 (#root3 .台北Táiběi)
PASS Element: Class selector using UTF8 (#root3 .台北)
PASS Element: Class selector using UTF8 (#root3 .台北Táiběi.台北)
PASS Element: Class selector using UTF8 (#root3 .台北Táiběi, #root3 .台北)
PASS Element: Descendant class selector using UTF8 (#root3 div .台北Táiběi)
PASS Element: Child class selector using UTF8 (#root3 form > .台北Táiběi)
PASS Element: Escaped Class (#root3 .foo\:bar)
PASS Element: Escaped Class (#root3 .test\.foo\[5\]bar)
PASS Element: Descendant scaped Class (#root3 div .foo\:bar)
PASS Element: Descendant scaped Class (#root3 div .test\.foo\[5\]bar)
PASS Element: Child escaped Class (#root3 form > .foo\:bar)
PASS Element: Child escaped Class (#root3 form > .test\.foo\[5\]bar)
PASS Element: Comma Support (#root3 a.blog, #root3 p)
PASS Element: Comma Support (#root3 a.blog , #root3 p)
PASS Element: Comma Support (#root3 a.blog , #root3 p)
PASS Element: Comma Support (#root3 a.blog, #root3 p)
PASS Element: Child (#root3 p > a)
PASS Element: Child (#root3 p> a)
PASS Element: Child (#root3 p >a)
PASS Element: Child (#root3 p>a)
PASS Element: Child w/ Class (#root3 p > a.blog)
PASS Element: All Children (#root3 code > *)
PASS Element: All Grandchildren (#root3 p > * > *)
PASS Element: Adjacent (#root3 a + a)
PASS Element: Adjacent (#root3 a +a)
PASS Element: Adjacent (#root3 a+ a)
PASS Element: Adjacent (#root3 a+a)
PASS Element: Adjacent (#root3 p + p)
PASS Element: Comma, Child, and Adjacent (#root3 a + a, #root3 code > a)
PASS Element: First Child (#root3 p:first-child)
PASS Element: Nth Child (#root3 p:nth-child(1))
PASS Element: Last Child (#root3 p:last-child)
PASS Element: Last Child (#root3 a:last-child)
PASS Element: Nth-child (#root3 #main form#form > *:nth-child(2))
PASS Element: Nth-child (#root3 #main form#form > :nth-child(2))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(0n+3))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(1n+0))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(1n))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(n))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(even))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(odd))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(2n))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(2n+1))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n+1))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n+2))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n+3))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n-1))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n-2))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n-3))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(3n+0))
PASS Element: Nth-child (#root3 #form #select1 option:nth-child(-n+3))
PASS Element: Attribute Exists (#root3 a[title])
PASS Element: Attribute Exists (#root3 *[title])
PASS Element: Attribute Exists (#root3 [title])
PASS Element: Attribute Equals (#root3 a[rel='bookmark'])
PASS Element: Attribute Equals (#root3 a[rel="bookmark"])
PASS Element: Attribute Equals (#root3 a[rel=bookmark])
PASS Element: Multiple Attribute Equals (#root3 #form input[type='hidden'], #root3 #form input[type='radio'])
PASS Element: Multiple Attribute Equals (#root3 #form input[type="hidden"], #root3 #form input[type='radio'])
PASS Element: Multiple Attribute Equals (#root3 #form input[type=hidden], #root3 #form input[type=radio])
PASS Element: Attribute selector using UTF8 (#root3 span[lang=中文])
PASS Element: Attribute Begins With (#root3 a[href ^= 'http://www'])
PASS Element: Attribute Ends With (#root3 a[href $= 'org/'])
PASS Element: Attribute Contains (#root3 a[href *= 'google'])
PASS Element: Select options via [selected] (#root3 #select1 option[selected])
PASS Element: Select options via [selected] (#root3 #select2 option[selected])
PASS Element: Select options via [selected] (#root3 #select3 option[selected])
PASS Element: Grouped Form Elements (#root3 input[name='foo[bar]'])
PASS Element: :not() Existing attribute (#root3 #form select:not([multiple]))
PASS Element: :not() Equals attribute (#root3 #form select:not([name=select1]))
PASS Element: :not() Equals quoted attribute (#root3 #form select:not([name='select1']))
PASS Element: First Child (#root3 p:first-child)
PASS Element: Last Child (#root3 p:last-child)
PASS Element: Only Child (#root3 a:only-child)
PASS Element: Empty (#root3 ul:empty)
PASS Element: Disabled UI Element (#root3 #form input:disabled)
PASS Element: Checked UI Element (#root3 #form input:checked)
PASS Element: Element Preceded By (#root3 p ~ div)
PASS Element: Not (#root3 a.blog:not(.link))
PASS Disconnected Element supports querySelector
PASS Disconnected Element supports querySelectorAll
PASS Disconnected Element.querySelectorAll Empty String
PASS Disconnected Element.querySelectorAll null
PASS Disconnected Element.querySelectorAll undefined
PASS Disconnected Element.querySelectorAll no value
PASS Disconnected Element.querySelector Empty String
PASS Disconnected Element.querySelector null
PASS Disconnected Element.querySelector undefined
PASS Disconnected Element.querySelector no value
PASS Disconnected Element.querySelectorAll: .target :target
PASS Disconnected Element.querySelectorAll Whitespace Trim: .target :target
PASS Disconnected Element.querySelector: .target :target
PASS Disconnected Element.querySelectorAll: html > body
PASS Disconnected Element.querySelectorAll Whitespace Trim: html > body
PASS Disconnected Element.querySelector: html > body
PASS Disconnected Element.querySelectorAll: .test > .blox1
PASS Disconnected Element.querySelectorAll Whitespace Trim: .test > .blox1
PASS Disconnected Element.querySelector: .test > .blox1
PASS Disconnected Element.querySelectorAll: .blox2[align]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox2[align]
PASS Disconnected Element.querySelector: .blox2[align]
PASS Disconnected Element.querySelectorAll: .blox3[align]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox3[align]
PASS Disconnected Element.querySelector: .blox3[align]
PASS Disconnected Element.querySelectorAll: .blox4, .blox5
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox4, .blox5
PASS Disconnected Element.querySelector: .blox4, .blox5
PASS Disconnected Element.querySelectorAll: .blox4[align], .blox5[align]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox4[align], .blox5[align]
PASS Disconnected Element.querySelector: .blox4[align], .blox5[align]
PASS Disconnected Element.querySelectorAll: .blox6[align="center"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox6[align="center"]
PASS Disconnected Element.querySelector: .blox6[align="center"]
PASS Disconnected Element.querySelectorAll: .blox6[align="c"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox6[align="c"]
PASS Disconnected Element.querySelector: .blox6[align="c"]
PASS Disconnected Element.querySelectorAll: .blox6[align="centera"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox6[align="centera"]
PASS Disconnected Element.querySelector: .blox6[align="centera"]
PASS Disconnected Element.querySelectorAll: .blox6[foo="\e9"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox6[foo="\e9"]
PASS Disconnected Element.querySelector: .blox6[foo="\e9"]
PASS Disconnected Element.querySelectorAll: .blox6[\_foo="\e9"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox6[\_foo="\e9"]
PASS Disconnected Element.querySelector: .blox6[\_foo="\e9"]
PASS Disconnected Element.querySelectorAll: .blox7[class~="foo"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox7[class~="foo"]
PASS Disconnected Element.querySelector: .blox7[class~="foo"]
PASS Disconnected Element.querySelectorAll: .blox8, .blox9, .blox10
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox8, .blox9, .blox10
PASS Disconnected Element.querySelector: .blox8, .blox9, .blox10
PASS Disconnected Element.querySelectorAll: .blox8[class~=""]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox8[class~=""]
PASS Disconnected Element.querySelector: .blox8[class~=""]
PASS Disconnected Element.querySelectorAll: .blox9[foo~=""]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox9[foo~=""]
PASS Disconnected Element.querySelector: .blox9[foo~=""]
PASS Disconnected Element.querySelectorAll: .blox10[foo~="foo"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox10[foo~="foo"]
PASS Disconnected Element.querySelector: .blox10[foo~="foo"]
PASS Disconnected Element.querySelectorAll: .attrStart > .t3
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrStart > .t3
PASS Disconnected Element.querySelector: .attrStart > .t3
PASS Disconnected Element.querySelectorAll: .attrStart > .t1[class^="unit"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrStart > .t1[class^="unit"]
PASS Disconnected Element.querySelector: .attrStart > .t1[class^="unit"]
PASS Disconnected Element.querySelectorAll: .attrStart > .t2
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrStart > .t2
PASS Disconnected Element.querySelector: .attrStart > .t2
PASS Disconnected Element.querySelectorAll: .attrStart > .t2[class^="nit"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrStart > .t2[class^="nit"]
PASS Disconnected Element.querySelector: .attrStart > .t2[class^="nit"]
PASS Disconnected Element.querySelectorAll: .attrStart > .t3[align^=""]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrStart > .t3[align^=""]
PASS Disconnected Element.querySelector: .attrStart > .t3[align^=""]
PASS Disconnected Element.querySelectorAll: .attrStart > .t4[foo^="\e9"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrStart > .t4[foo^="\e9"]
PASS Disconnected Element.querySelector: .attrStart > .t4[foo^="\e9"]
PASS Disconnected Element.querySelectorAll: .attrEnd > .t3
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrEnd > .t3
PASS Disconnected Element.querySelector: .attrEnd > .t3
PASS Disconnected Element.querySelectorAll: .attrEnd > .t1[class$="t1"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrEnd > .t1[class$="t1"]
PASS Disconnected Element.querySelector: .attrEnd > .t1[class$="t1"]
PASS Disconnected Element.querySelectorAll: .attrEnd > .t2
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrEnd > .t2
PASS Disconnected Element.querySelector: .attrEnd > .t2
PASS Disconnected Element.querySelectorAll: .attrEnd > .t2[class$="unit"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrEnd > .t2[class$="unit"]
PASS Disconnected Element.querySelector: .attrEnd > .t2[class$="unit"]
PASS Disconnected Element.querySelectorAll: .attrEnd > .t3[align$=""]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrEnd > .t3[align$=""]
PASS Disconnected Element.querySelector: .attrEnd > .t3[align$=""]
PASS Disconnected Element.querySelectorAll: .attrEnd > .t4[foo$="\e9"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrEnd > .t4[foo$="\e9"]
PASS Disconnected Element.querySelector: .attrEnd > .t4[foo$="\e9"]
PASS Disconnected Element.querySelectorAll: .attrMiddle > .t3
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrMiddle > .t3
PASS Disconnected Element.querySelector: .attrMiddle > .t3
PASS Disconnected Element.querySelectorAll: .attrMiddle > .t1[class*="t t"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrMiddle > .t1[class*="t t"]
PASS Disconnected Element.querySelector: .attrMiddle > .t1[class*="t t"]
PASS Disconnected Element.querySelectorAll: .attrMiddle > .t2
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrMiddle > .t2
PASS Disconnected Element.querySelector: .attrMiddle > .t2
PASS Disconnected Element.querySelectorAll: .attrMiddle > .t2[class*="a"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrMiddle > .t2[class*="a"]
PASS Disconnected Element.querySelector: .attrMiddle > .t2[class*="a"]
PASS Disconnected Element.querySelectorAll: .attrMiddle > .t3[align*=""]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrMiddle > .t3[align*=""]
PASS Disconnected Element.querySelector: .attrMiddle > .t3[align*=""]
PASS Disconnected Element.querySelectorAll: .attrMiddle > .t4[foo*="\e9"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrMiddle > .t4[foo*="\e9"]
PASS Disconnected Element.querySelector: .attrMiddle > .t4[foo*="\e9"]
PASS Disconnected Element.querySelectorAll: .firstChild .unitTest:first-child
PASS Disconnected Element.querySelectorAll Whitespace Trim: .firstChild .unitTest:first-child
PASS Disconnected Element.querySelector: .firstChild .unitTest:first-child
PASS Disconnected Element.querySelectorAll: .blox12:first-child
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox12:first-child
PASS Disconnected Element.querySelector: .blox12:first-child
PASS Disconnected Element.querySelectorAll: .blox13:first-child
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox13:first-child
PASS Disconnected Element.querySelector: .blox13:first-child
PASS Disconnected Element.querySelectorAll: .blox12, .blox13
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox12, .blox13
PASS Disconnected Element.querySelector: .blox12, .blox13
PASS Disconnected Element.querySelectorAll: :root
PASS Disconnected Element.querySelectorAll Whitespace Trim: :root
PASS Disconnected Element.querySelector: :root
PASS Disconnected Element.querySelectorAll: .nthchild1 > :nth-last-child(odd)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild1 > :nth-last-child(odd)
PASS Disconnected Element.querySelector: .nthchild1 > :nth-last-child(odd)
PASS Disconnected Element.querySelectorAll: .nthchild1 > :nth-child(odd)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild1 > :nth-child(odd)
PASS Disconnected Element.querySelector: .nthchild1 > :nth-child(odd)
PASS Disconnected Element.querySelectorAll: .nthchild2 > :nth-last-child(even)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild2 > :nth-last-child(even)
PASS Disconnected Element.querySelector: .nthchild2 > :nth-last-child(even)
PASS Disconnected Element.querySelectorAll: .nthchild2 > :nth-child(even)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild2 > :nth-child(even)
PASS Disconnected Element.querySelector: .nthchild2 > :nth-child(even)
PASS Disconnected Element.querySelectorAll: .nthchild3 > :nth-child(3n+2)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild3 > :nth-child(3n+2)
PASS Disconnected Element.querySelector: .nthchild3 > :nth-child(3n+2)
PASS Disconnected Element.querySelectorAll: .nthchild3 > :nth-last-child(3n+1)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+1)
PASS Disconnected Element.querySelector: .nthchild3 > :nth-last-child(3n+1)
PASS Disconnected Element.querySelectorAll: .nthchild3 > :nth-last-child(3n+3)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+3)
PASS Disconnected Element.querySelector: .nthchild3 > :nth-last-child(3n+3)
PASS Disconnected Element.querySelectorAll: .nthoftype1 > div:nth-of-type(odd)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-of-type(odd)
PASS Disconnected Element.querySelector: .nthoftype1 > div:nth-of-type(odd)
PASS Disconnected Element.querySelectorAll: .nthoftype1 > div:nth-last-of-type(odd)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-last-of-type(odd)
PASS Disconnected Element.querySelector: .nthoftype1 > div:nth-last-of-type(odd)
PASS Disconnected Element.querySelectorAll: .nthoftype1 > p
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype1 > p
PASS Disconnected Element.querySelector: .nthoftype1 > p
PASS Disconnected Element.querySelectorAll: .nthoftype2 > div:nth-of-type(even)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-of-type(even)
PASS Disconnected Element.querySelector: .nthoftype2 > div:nth-of-type(even)
PASS Disconnected Element.querySelectorAll: .nthoftype2 > div:nth-last-of-type(even)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-last-of-type(even)
PASS Disconnected Element.querySelector: .nthoftype2 > div:nth-last-of-type(even)
PASS Disconnected Element.querySelectorAll: .nthoftype2 > p
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype2 > p
PASS Disconnected Element.querySelector: .nthoftype2 > p
PASS Disconnected Element.querySelectorAll: .nthoftype3 > div:nth-of-type(3n+1)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-of-type(3n+1)
PASS Disconnected Element.querySelector: .nthoftype3 > div:nth-of-type(3n+1)
PASS Disconnected Element.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Disconnected Element.querySelector: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Disconnected Element.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Disconnected Element.querySelector: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Disconnected Element.querySelectorAll: .nthoftype3 > p
PASS Disconnected Element.querySelectorAll Whitespace Trim: .nthoftype3 > p
PASS Disconnected Element.querySelector: .nthoftype3 > p
PASS Disconnected Element.querySelectorAll: .blox14:not(span)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox14:not(span)
PASS Disconnected Element.querySelector: .blox14:not(span)
PASS Disconnected Element.querySelectorAll: .blox15:not([foo="blox14"])
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox15:not([foo="blox14"])
PASS Disconnected Element.querySelector: .blox15:not([foo="blox14"])
PASS Disconnected Element.querySelectorAll: .blox16:not(.blox15)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox16:not(.blox15)
PASS Disconnected Element.querySelector: .blox16:not(.blox15)
PASS Disconnected Element.querySelectorAll: .blox17:only-of-type
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox17:only-of-type
PASS Disconnected Element.querySelector: .blox17:only-of-type
PASS Disconnected Element.querySelectorAll: .blox18:only-of-type
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox18:only-of-type
PASS Disconnected Element.querySelector: .blox18:only-of-type
PASS Disconnected Element.querySelectorAll: .blox18:not(:only-of-type)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .blox18:not(:only-of-type)
PASS Disconnected Element.querySelector: .blox18:not(:only-of-type)
PASS Disconnected Element.querySelectorAll: .lastChild > :last-child
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lastChild > :last-child
PASS Disconnected Element.querySelector: .lastChild > :last-child
PASS Disconnected Element.querySelectorAll: .lastChild > :not(:last-child)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lastChild > :not(:last-child)
PASS Disconnected Element.querySelector: .lastChild > :not(:last-child)
PASS Disconnected Element.querySelectorAll: .firstOfType > *:first-of-type
PASS Disconnected Element.querySelectorAll Whitespace Trim: .firstOfType > *:first-of-type
PASS Disconnected Element.querySelector: .firstOfType > *:first-of-type
PASS Disconnected Element.querySelectorAll: *.firstOfType > :not(:first-of-type)
PASS Disconnected Element.querySelectorAll Whitespace Trim: *.firstOfType > :not(:first-of-type)
PASS Disconnected Element.querySelector: *.firstOfType > :not(:first-of-type)
PASS Disconnected Element.querySelectorAll: .lastOfType > *:last-of-type
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lastOfType > *:last-of-type
PASS Disconnected Element.querySelector: .lastOfType > *:last-of-type
PASS Disconnected Element.querySelectorAll: *.lastOfType > :not(:last-of-type)
PASS Disconnected Element.querySelectorAll Whitespace Trim: *.lastOfType > :not(:last-of-type)
PASS Disconnected Element.querySelector: *.lastOfType > :not(:last-of-type)
PASS Disconnected Element.querySelectorAll: .onlyChild > *:not(:only-child)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .onlyChild > *:not(:only-child)
PASS Disconnected Element.querySelector: .onlyChild > *:not(:only-child)
PASS Disconnected Element.querySelectorAll: .onlyChild > .unitTest > *:only-child
PASS Disconnected Element.querySelectorAll Whitespace Trim: .onlyChild > .unitTest > *:only-child
PASS Disconnected Element.querySelector: .onlyChild > .unitTest > *:only-child
PASS Disconnected Element.querySelectorAll: .onlyOfType *:only-of-type
PASS Disconnected Element.querySelectorAll Whitespace Trim: .onlyOfType *:only-of-type
PASS Disconnected Element.querySelector: .onlyOfType *:only-of-type
PASS Disconnected Element.querySelectorAll: .onlyOfType *:not(:only-of-type)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .onlyOfType *:not(:only-of-type)
PASS Disconnected Element.querySelector: .onlyOfType *:not(:only-of-type)
PASS Disconnected Element.querySelectorAll: .empty > *.isEmpty:empty
PASS Disconnected Element.querySelectorAll Whitespace Trim: .empty > *.isEmpty:empty
PASS Disconnected Element.querySelector: .empty > *.isEmpty:empty
PASS Disconnected Element.querySelectorAll: .empty > .isNotEmpty
PASS Disconnected Element.querySelectorAll Whitespace Trim: .empty > .isNotEmpty
PASS Disconnected Element.querySelector: .empty > .isNotEmpty
PASS Disconnected Element.querySelectorAll: .empty > .isNotEmpty:empty
PASS Disconnected Element.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:empty
PASS Disconnected Element.querySelector: .empty > .isNotEmpty:empty
PASS Disconnected Element.querySelectorAll: .empty > .isNotEmpty:not(:empty)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:not(:empty)
PASS Disconnected Element.querySelector: .empty > .isNotEmpty:not(:empty)
PASS Disconnected Element.querySelectorAll: .lang :lang(en)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lang :lang(en)
PASS Disconnected Element.querySelector: .lang :lang(en)
PASS Disconnected Element.querySelectorAll: .lang :lang(fr)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lang :lang(fr)
PASS Disconnected Element.querySelector: .lang :lang(fr)
PASS Disconnected Element.querySelectorAll: .lang .t1
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lang .t1
PASS Disconnected Element.querySelector: .lang .t1
PASS Disconnected Element.querySelectorAll: .lang .t1:lang(es)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lang .t1:lang(es)
PASS Disconnected Element.querySelector: .lang .t1:lang(es)
PASS Disconnected Element.querySelectorAll: .lang :lang(es-AR)
PASS Disconnected Element.querySelectorAll Whitespace Trim: .lang :lang(es-AR)
PASS Disconnected Element.querySelector: .lang :lang(es-AR)
PASS Disconnected Element.querySelectorAll: .attrLang .t1
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang .t1
PASS Disconnected Element.querySelector: .attrLang .t1
PASS Disconnected Element.querySelectorAll: .attrLang .t1[lang|="en"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang .t1[lang|="en"]
PASS Disconnected Element.querySelector: .attrLang .t1[lang|="en"]
PASS Disconnected Element.querySelectorAll: .attrLang [lang|="fr"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang [lang|="fr"]
PASS Disconnected Element.querySelector: .attrLang [lang|="fr"]
PASS Disconnected Element.querySelectorAll: .attrLang .t2[lang|="en"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang .t2[lang|="en"]
PASS Disconnected Element.querySelector: .attrLang .t2[lang|="en"]
PASS Disconnected Element.querySelectorAll: .attrLang .t3
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang .t3
PASS Disconnected Element.querySelector: .attrLang .t3
PASS Disconnected Element.querySelectorAll: .attrLang .t3[lang|="es"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang .t3[lang|="es"]
PASS Disconnected Element.querySelector: .attrLang .t3[lang|="es"]
PASS Disconnected Element.querySelectorAll: .attrLang [lang|="es-AR"]
PASS Disconnected Element.querySelectorAll Whitespace Trim: .attrLang [lang|="es-AR"]
PASS Disconnected Element.querySelector: .attrLang [lang|="es-AR"]
PASS Disconnected Element.querySelectorAll: .UI .t1:enabled > .unitTest
PASS Disconnected Element.querySelectorAll Whitespace Trim: .UI .t1:enabled > .unitTest
PASS Disconnected Element.querySelector: .UI .t1:enabled > .unitTest
PASS Disconnected Element.querySelectorAll: .UI .t2:disabled > .unitTest
PASS Disconnected Element.querySelectorAll Whitespace Trim: .UI .t2:disabled > .unitTest
PASS Disconnected Element.querySelector: .UI .t2:disabled > .unitTest
PASS Disconnected Element.querySelectorAll: .UI .t3:checked + div
PASS Disconnected Element.querySelectorAll Whitespace Trim: .UI .t3:checked + div
PASS Disconnected Element.querySelector: .UI .t3:checked + div
PASS Disconnected Element.querySelectorAll: .UI .t4:not(:checked) + div
PASS Disconnected Element.querySelectorAll Whitespace Trim: .UI .t4:not(:checked) + div
PASS Disconnected Element.querySelector: .UI .t4:not(:checked) + div
PASS Disconnected Element.querySelectorAll: .tilda .t1
PASS Disconnected Element.querySelectorAll Whitespace Trim: .tilda .t1
PASS Disconnected Element.querySelector: .tilda .t1
PASS Disconnected Element.querySelectorAll: .tilda .t1 ~ .unitTest
PASS Disconnected Element.querySelectorAll Whitespace Trim: .tilda .t1 ~ .unitTest
PASS Disconnected Element.querySelector: .tilda .t1 ~ .unitTest
PASS Disconnected Element.querySelectorAll: .tilda .t1:hover ~ .unitTest
PASS Disconnected Element.querySelectorAll Whitespace Trim: .tilda .t1:hover ~ .unitTest
PASS Disconnected Element.querySelector: .tilda .t1:hover ~ .unitTest
PASS Disconnected Element.querySelectorAll: .plus .t1, .plus .t2
PASS Disconnected Element.querySelectorAll Whitespace Trim: .plus .t1, .plus .t2
PASS Disconnected Element.querySelector: .plus .t1, .plus .t2
PASS Disconnected Element.querySelectorAll: .plus .t1 + .unitTest + .unitTest
PASS Disconnected Element.querySelectorAll Whitespace Trim: .plus .t1 + .unitTest + .unitTest
PASS Disconnected Element.querySelector: .plus .t1 + .unitTest + .unitTest
PASS Disconnected Element.querySelectorAll: .plus .t1:hover + .unitTest + .unitTest
PASS Disconnected Element.querySelectorAll Whitespace Trim: .plus .t1:hover + .unitTest + .unitTest
PASS Disconnected Element.querySelector: .plus .t1:hover + .unitTest + .unitTest
PASS Disconnected Element: childhood selector
PASS Disconnected Element: attribute existence selector
PASS Disconnected Element: attribute existence selector with empty string value
PASS Disconnected Element: attribute existence selector with almost identical attribute
PASS Disconnected Element: attribute existence selector with almost identical attribute
PASS Disconnected Element: attribute value selector
PASS Disconnected Element: attribute value selector with an entity in the attribute and an escaped value in the selector
PASS Disconnected Element: attribute value selector with an entity in the attribute, an escaped value in the selector, and a leading underscore in the attribute name
PASS Disconnected Element: [~=] attribute selector
PASS Disconnected Element: [~=] attribute selector looking for empty string
PASS Disconnected Element: [~=] attribute selector looking for empty string in empty attribute
PASS Disconnected Element: [~=] attribute selector looking for 'foo' in 'foobar'
PASS Disconnected Element: [^=] attribute selector
PASS Disconnected Element: [^=] attribute selector
PASS Disconnected Element: [^=] attribute selector looking for empty string
PASS Disconnected Element: [^=] attribute selector looking for é
PASS Disconnected Element: [$=] attribute selector
PASS Disconnected Element: [$=] attribute selector
PASS Disconnected Element: [$=] attribute selector looking for empty string
PASS Disconnected Element: [$=] attribute selector looking for é
PASS Disconnected Element: [*=] attribute selector
PASS Disconnected Element: [*=] attribute selector
PASS Disconnected Element: [*=] attribute selector looking for empty string
PASS Disconnected Element: [*=] attribute selector looking for é
PASS Disconnected Element: :first-child selector
PASS Disconnected Element: :first-child selector should not match non first child
PASS Disconnected Element: :first-child selector should not match non first child
PASS Disconnected Element: negation pseudo-class with argument being an element type selector
PASS Disconnected Element: negation pseudo-class with argument being an attribute selector
PASS Disconnected Element: negation pseudo-class accepts only simple selectors for argument
PASS Disconnected Element: :only-of-type selector
PASS Disconnected Element: negated :only-of-type selector
PASS Disconnected Element: negated :only-of-type selector
PASS Disconnected Element: :nth-child(odd) selector
PASS Disconnected Element: :nth-last-child(odd) selector
PASS Disconnected Element: :nth-child(odd) selector
PASS Disconnected Element: :nth-last-child(odd) selector
PASS Disconnected Element: :nth-child(odd) selector
PASS Disconnected Element: :nth-last-child(odd) selector
PASS Disconnected Element: :nth-last-child(even) selector
PASS Disconnected Element: :nth-child(even) selector
PASS Disconnected Element: :nth-last-child(even) selector
PASS Disconnected Element: :nth-child(even) selector
PASS Disconnected Element: :nth-last-child(even) selector
PASS Disconnected Element: :nth-child(even) selector
PASS Disconnected Element: :nth-last-child(3n+3) selector
PASS Disconnected Element: :nth-child(3n+2) selector
PASS Disconnected Element: :nth-last-child(3n+1) selector
PASS Disconnected Element: :nth-last-child(3n+3) selector
PASS Disconnected Element: :nth-child(3n+2) selector
PASS Disconnected Element: :nth-last-child(3n+1) selector
PASS Disconnected Element: :nth-of-type(odd) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-last-of-type(odd) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-of-type(odd) selector
PASS Disconnected Element: :nth-last-of-type(odd) selector
PASS Disconnected Element: :nth-last-of-type(even) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-of-type(even) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-last-of-type(even) selector
PASS Disconnected Element: :nth-of-type(even) selector
PASS Disconnected Element: :nth-of-type(3n+1) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-last-of-type(3n+2) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-last-of-type(3n+1) selector
PASS Disconnected Element: :nth-of-type(3n+1) selector
PASS Disconnected Element: :nth-of-* selector
PASS Disconnected Element: :nth-last-of-type(3n+2) selector
PASS Disconnected Element: :nth-last-of-type(3n+1) selector
PASS Disconnected Element: :not(:last-child) selector
PASS Disconnected Element: :last-child selector
PASS Disconnected Element: :first-of-type selector
PASS Disconnected Element: :first-of-type selector
PASS Disconnected Element: :not(:first-of-type)
PASS Disconnected Element: :not(:first-of-type)
PASS Disconnected Element: :not(:last-of-type)
PASS Disconnected Element: :not(:last-of-type)
PASS Disconnected Element: :last-of-type selector
PASS Disconnected Element: :last-of-type selector
PASS Disconnected Element: :only-child where the element is NOT the only child
PASS Disconnected Element: :only-child where the element is the only child
PASS Disconnected Element: :only-child where the element is the only child
PASS Disconnected Element: :only-of-type
PASS Disconnected Element: :only-of-type
PASS Disconnected Element: :only-of-type
PASS Disconnected Element: :not(only-of-type)
PASS Disconnected Element: :empty with empty element
PASS Disconnected Element: :empty but element contains a whitespace
PASS Disconnected Element: :empty and element contains an SGML comment
PASS Disconnected Element: :empty but element contains a SPAN element
PASS Disconnected Element: :empty but element contains an entity reference
PASS Disconnected Element: :lang() where language comes from the element
PASS Disconnected Element: :lang() where language comes from the element but is a dialect of the language queried
PASS Disconnected Element: :lang() where language comes from the element but the language queried is a dialect of the element's one so it should not match
PASS Disconnected Element: [|=] where language comes from the document
PASS Disconnected Element: [|=] where language comes from the element
PASS Disconnected Element: [|=] where language comes from the element but is a dialect of the language queried
PASS Disconnected Element: [|=] where language comes from the element but the language queried is a dialect of the element's one so it should not match
PASS Disconnected Element: :enabled pseudo-class
PASS Disconnected Element: :enabled pseudo-class
PASS Disconnected Element: :checked
PASS Disconnected Element: :not(:checked)
PASS Disconnected Element: ~ combinator
PASS Disconnected Element: ~ combinator
PASS Disconnected Element: ~ combinator
PASS Disconnected Element: ~ combinator
PASS Disconnected Element: + combinator
PASS Disconnected Element: + combinator
PASS Disconnected Element: + combinator
PASS Disconnected Element: StaticNodeList
PASS Disconnected Element: StaticNodeList
PASS Syntax Error: Disconnected Element.querySelectorAll Empty String
PASS Syntax Error: Disconnected Element.querySelectorAll null
PASS Syntax Error: Disconnected Element.querySelectorAll undefined
PASS Syntax Error: Disconnected Element.querySelectorAll no value
PASS Syntax Error: Disconnected Element.querySelector Empty String
PASS Syntax Error: Disconnected Element.querySelector null
PASS Syntax Error: Disconnected Element.querySelector undefined
PASS Syntax Error: Disconnected Element.querySelector no value
FAIL Syntax Error: Disconnected Element.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Disconnected Element.querySelector: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Disconnected Element.querySelectorAll: div:not(:not(div))
FAIL Syntax Error: Disconnected Element.querySelector: div:not(:not(div))
PASS Syntax Error: Disconnected Element.querySelectorAll: div,
PASS Syntax Error: Disconnected Element.querySelector: div,
PASS Syntax Error: Disconnected Element.querySelectorAll: .5cm
PASS Syntax Error: Disconnected Element.querySelector: .5cm
PASS Syntax Error: Disconnected Element.querySelectorAll: foo & address, p
PASS Syntax Error: Disconnected Element.querySelector: foo & address, p
PASS Syntax Error: Disconnected Element.querySelectorAll: [*=test]
PASS Syntax Error: Disconnected Element.querySelector: [*=test]
PASS Syntax Error: Disconnected Element.querySelectorAll: [*|*=test]
PASS Syntax Error: Disconnected Element.querySelector: [*|*=test]
PASS Syntax Error: Disconnected Element.querySelectorAll: div:subject
PASS Syntax Error: Disconnected Element.querySelector: div:subject
PASS Syntax Error: Disconnected Element.querySelectorAll: :canvas
PASS Syntax Error: Disconnected Element.querySelector: :canvas
PASS Syntax Error: Disconnected Element.querySelectorAll: :viewport
PASS Syntax Error: Disconnected Element.querySelector: :viewport
PASS Syntax Error: Disconnected Element.querySelectorAll: :window
PASS Syntax Error: Disconnected Element.querySelector: :window
PASS Syntax Error: Disconnected Element.querySelectorAll: :menu
PASS Syntax Error: Disconnected Element.querySelector: :menu
PASS Syntax Error: Disconnected Element.querySelectorAll: :table
PASS Syntax Error: Disconnected Element.querySelector: :table
PASS Syntax Error: Disconnected Element.querySelectorAll: :select
PASS Syntax Error: Disconnected Element.querySelector: :select
PASS Syntax Error: Disconnected Element.querySelectorAll: ::canvas
PASS Syntax Error: Disconnected Element.querySelector: ::canvas
PASS Syntax Error: Disconnected Element.querySelectorAll: ::viewport
PASS Syntax Error: Disconnected Element.querySelector: ::viewport
PASS Syntax Error: Disconnected Element.querySelectorAll: ::window
PASS Syntax Error: Disconnected Element.querySelector: ::window
PASS Syntax Error: Disconnected Element.querySelectorAll: ::menu
PASS Syntax Error: Disconnected Element.querySelector: ::menu
PASS Syntax Error: Disconnected Element.querySelectorAll: ::table
PASS Syntax Error: Disconnected Element.querySelector: ::table
PASS Syntax Error: Disconnected Element.querySelectorAll: ::select
PASS Syntax Error: Disconnected Element.querySelector: ::select
PASS Syntax Error: Disconnected Element.querySelectorAll: ..test
PASS Syntax Error: Disconnected Element.querySelector: ..test
PASS Syntax Error: Disconnected Element.querySelectorAll: .foo..quux
PASS Syntax Error: Disconnected Element.querySelector: .foo..quux
PASS Syntax Error: Disconnected Element.querySelectorAll: .bar.
PASS Syntax Error: Disconnected Element.querySelector: .bar.
PASS Disconnected Element: Select all
PASS Disconnected Element: Select all elements, no comment nodes
PASS Disconnected Element: :root Selector (:root)
PASS Disconnected Element: :root All Selector (:root *)
PASS Disconnected Element: Element Selector (#root3 p)
PASS Disconnected Element: Parent Element (#root3 div p)
PASS Disconnected Element: Object/param as context
PASS Disconnected Element: <input name="length"> cannot be found under IE
PASS Disconnected Element: <input name="length"> cannot be found under IE
PASS Disconnected Element: Broken Selector (#root3 [)
PASS Disconnected Element: Broken Selector (#root3 ()
PASS Disconnected Element: Broken Selector (#root3 {)
PASS Disconnected Element: Broken Selector (#root3 <)
PASS Disconnected Element: Broken Selector (#root3 ())
PASS Disconnected Element: Broken Selector (#root3 <>)
PASS Disconnected Element: Broken Selector (#root3 {})
PASS Disconnected Element: ID Selector w/ Element (#root3 ul#first)
PASS Disconnected Element: ID selector with existing ID descendant (#root3 #firstp #simon1)
PASS Disconnected Element: ID selector with non-existant descendant (#root3 #firstp #foobar)
PASS Disconnected Element: ID selector using UTF8 (#root3 #台北Táiběi)
PASS Disconnected Element: Multiple ID selectors using UTF8 (#root3 #台北Táiběi, #root3 #台北)
PASS Disconnected Element: Descendant ID selector using UTF8 (#root3 div #台北)
PASS Disconnected Element: Child ID selector using UTF8 (#root3 form > #台北)
PASS Disconnected Element: Escaped ID (#root3 #foo\:bar)
PASS Disconnected Element: Escaped ID (#root3 #test\.foo\[5\]bar)
PASS Disconnected Element: Descendant escaped ID (#root3 div #foo\:bar)
PASS Disconnected Element: Descendant escaped ID (#root3 div #test\.foo\[5\]bar)
PASS Disconnected Element: Child escaped ID (#root3 form > #foo\:bar)
PASS Disconnected Element: Child escaped ID (#root3 form > #test\.foo\[5\]bar)
PASS Disconnected Element: ID Selector, child ID present (#root3 #form > #radio1)
PASS Disconnected Element: ID Selector, not an ancestor ID (#root3 #form #first)
PASS Disconnected Element: ID Selector, not a child ID (#root3 #form > #option1a)
PASS Disconnected Element: All Children of ID (#root3 #foo > *)
PASS Disconnected Element: All Children of ID with no children (#root3 #firstUL > *)
PASS Disconnected Element: ID selector with non-existant ancestor (#root3 #asdfasdf #foobar)
PASS Disconnected Element: Class Selector (#root3 .blog)
PASS Disconnected Element: Class Selector (#root3 .blog.link)
PASS Disconnected Element: Class Selector w/ Element (#root3 a.blog)
PASS Disconnected Element: Parent Class Selector (#root3 p .blog)
PASS Disconnected Element: Class selector using UTF8 (#root3 .台北Táiběi)
PASS Disconnected Element: Class selector using UTF8 (#root3 .台北)
PASS Disconnected Element: Class selector using UTF8 (#root3 .台北Táiběi.台北)
PASS Disconnected Element: Class selector using UTF8 (#root3 .台北Táiběi, #root3 .台北)
PASS Disconnected Element: Descendant class selector using UTF8 (#root3 div .台北Táiběi)
PASS Disconnected Element: Child class selector using UTF8 (#root3 form > .台北Táiběi)
PASS Disconnected Element: Escaped Class (#root3 .foo\:bar)
PASS Disconnected Element: Escaped Class (#root3 .test\.foo\[5\]bar)
PASS Disconnected Element: Descendant scaped Class (#root3 div .foo\:bar)
PASS Disconnected Element: Descendant scaped Class (#root3 div .test\.foo\[5\]bar)
PASS Disconnected Element: Child escaped Class (#root3 form > .foo\:bar)
PASS Disconnected Element: Child escaped Class (#root3 form > .test\.foo\[5\]bar)
PASS Disconnected Element: Comma Support (#root3 a.blog, #root3 p)
PASS Disconnected Element: Comma Support (#root3 a.blog , #root3 p)
PASS Disconnected Element: Comma Support (#root3 a.blog , #root3 p)
PASS Disconnected Element: Comma Support (#root3 a.blog, #root3 p)
PASS Disconnected Element: Child (#root3 p > a)
PASS Disconnected Element: Child (#root3 p> a)
PASS Disconnected Element: Child (#root3 p >a)
PASS Disconnected Element: Child (#root3 p>a)
PASS Disconnected Element: Child w/ Class (#root3 p > a.blog)
PASS Disconnected Element: All Children (#root3 code > *)
PASS Disconnected Element: All Grandchildren (#root3 p > * > *)
PASS Disconnected Element: Adjacent (#root3 a + a)
PASS Disconnected Element: Adjacent (#root3 a +a)
PASS Disconnected Element: Adjacent (#root3 a+ a)
PASS Disconnected Element: Adjacent (#root3 a+a)
PASS Disconnected Element: Adjacent (#root3 p + p)
PASS Disconnected Element: Comma, Child, and Adjacent (#root3 a + a, #root3 code > a)
PASS Disconnected Element: First Child (#root3 p:first-child)
PASS Disconnected Element: Nth Child (#root3 p:nth-child(1))
PASS Disconnected Element: Last Child (#root3 p:last-child)
PASS Disconnected Element: Last Child (#root3 a:last-child)
PASS Disconnected Element: Nth-child (#root3 #main form#form > *:nth-child(2))
PASS Disconnected Element: Nth-child (#root3 #main form#form > :nth-child(2))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(0n+3))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(1n+0))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(1n))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(n))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(even))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(odd))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(2n))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(2n+1))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n+1))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n+2))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n+3))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n-1))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n-2))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n-3))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(3n+0))
PASS Disconnected Element: Nth-child (#root3 #form #select1 option:nth-child(-n+3))
PASS Disconnected Element: Attribute Exists (#root3 a[title])
PASS Disconnected Element: Attribute Exists (#root3 *[title])
PASS Disconnected Element: Attribute Exists (#root3 [title])
PASS Disconnected Element: Attribute Equals (#root3 a[rel='bookmark'])
PASS Disconnected Element: Attribute Equals (#root3 a[rel="bookmark"])
PASS Disconnected Element: Attribute Equals (#root3 a[rel=bookmark])
PASS Disconnected Element: Multiple Attribute Equals (#root3 #form input[type='hidden'], #root3 #form input[type='radio'])
PASS Disconnected Element: Multiple Attribute Equals (#root3 #form input[type="hidden"], #root3 #form input[type='radio'])
PASS Disconnected Element: Multiple Attribute Equals (#root3 #form input[type=hidden], #root3 #form input[type=radio])
PASS Disconnected Element: Attribute selector using UTF8 (#root3 span[lang=中文])
PASS Disconnected Element: Attribute Begins With (#root3 a[href ^= 'http://www'])
PASS Disconnected Element: Attribute Ends With (#root3 a[href $= 'org/'])
PASS Disconnected Element: Attribute Contains (#root3 a[href *= 'google'])
PASS Disconnected Element: Select options via [selected] (#root3 #select1 option[selected])
PASS Disconnected Element: Select options via [selected] (#root3 #select2 option[selected])
PASS Disconnected Element: Select options via [selected] (#root3 #select3 option[selected])
PASS Disconnected Element: Grouped Form Elements (#root3 input[name='foo[bar]'])
PASS Disconnected Element: :not() Existing attribute (#root3 #form select:not([multiple]))
PASS Disconnected Element: :not() Equals attribute (#root3 #form select:not([name=select1]))
PASS Disconnected Element: :not() Equals quoted attribute (#root3 #form select:not([name='select1']))
PASS Disconnected Element: First Child (#root3 p:first-child)
PASS Disconnected Element: Last Child (#root3 p:last-child)
PASS Disconnected Element: Only Child (#root3 a:only-child)
PASS Disconnected Element: Empty (#root3 ul:empty)
PASS Disconnected Element: Disabled UI Element (#root3 #form input:disabled)
PASS Disconnected Element: Checked UI Element (#root3 #form input:checked)
PASS Disconnected Element: Element Preceded By (#root3 p ~ div)
PASS Disconnected Element: Not (#root3 a.blog:not(.link))
PASS Fragment supports querySelector
PASS Fragment supports querySelectorAll
PASS Fragment.querySelectorAll Empty String
PASS Fragment.querySelectorAll null
PASS Fragment.querySelectorAll undefined
PASS Fragment.querySelectorAll no value
PASS Fragment.querySelector Empty String
PASS Fragment.querySelector null
PASS Fragment.querySelector undefined
PASS Fragment.querySelector no value
PASS Fragment.querySelectorAll: .target :target
PASS Fragment.querySelectorAll Whitespace Trim: .target :target
PASS Fragment.querySelector: .target :target
PASS Fragment.querySelectorAll: html > body
PASS Fragment.querySelectorAll Whitespace Trim: html > body
PASS Fragment.querySelector: html > body
PASS Fragment.querySelectorAll: .test > .blox1
PASS Fragment.querySelectorAll Whitespace Trim: .test > .blox1
PASS Fragment.querySelector: .test > .blox1
PASS Fragment.querySelectorAll: .blox2[align]
PASS Fragment.querySelectorAll Whitespace Trim: .blox2[align]
PASS Fragment.querySelector: .blox2[align]
PASS Fragment.querySelectorAll: .blox3[align]
PASS Fragment.querySelectorAll Whitespace Trim: .blox3[align]
PASS Fragment.querySelector: .blox3[align]
PASS Fragment.querySelectorAll: .blox4, .blox5
PASS Fragment.querySelectorAll Whitespace Trim: .blox4, .blox5
PASS Fragment.querySelector: .blox4, .blox5
PASS Fragment.querySelectorAll: .blox4[align], .blox5[align]
PASS Fragment.querySelectorAll Whitespace Trim: .blox4[align], .blox5[align]
PASS Fragment.querySelector: .blox4[align], .blox5[align]
PASS Fragment.querySelectorAll: .blox6[align="center"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox6[align="center"]
PASS Fragment.querySelector: .blox6[align="center"]
PASS Fragment.querySelectorAll: .blox6[align="c"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox6[align="c"]
PASS Fragment.querySelector: .blox6[align="c"]
PASS Fragment.querySelectorAll: .blox6[align="centera"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox6[align="centera"]
PASS Fragment.querySelector: .blox6[align="centera"]
PASS Fragment.querySelectorAll: .blox6[foo="\e9"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox6[foo="\e9"]
PASS Fragment.querySelector: .blox6[foo="\e9"]
PASS Fragment.querySelectorAll: .blox6[\_foo="\e9"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox6[\_foo="\e9"]
PASS Fragment.querySelector: .blox6[\_foo="\e9"]
PASS Fragment.querySelectorAll: .blox7[class~="foo"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox7[class~="foo"]
PASS Fragment.querySelector: .blox7[class~="foo"]
PASS Fragment.querySelectorAll: .blox8, .blox9, .blox10
PASS Fragment.querySelectorAll Whitespace Trim: .blox8, .blox9, .blox10
PASS Fragment.querySelector: .blox8, .blox9, .blox10
PASS Fragment.querySelectorAll: .blox8[class~=""]
PASS Fragment.querySelectorAll Whitespace Trim: .blox8[class~=""]
PASS Fragment.querySelector: .blox8[class~=""]
PASS Fragment.querySelectorAll: .blox9[foo~=""]
PASS Fragment.querySelectorAll Whitespace Trim: .blox9[foo~=""]
PASS Fragment.querySelector: .blox9[foo~=""]
PASS Fragment.querySelectorAll: .blox10[foo~="foo"]
PASS Fragment.querySelectorAll Whitespace Trim: .blox10[foo~="foo"]
PASS Fragment.querySelector: .blox10[foo~="foo"]
PASS Fragment.querySelectorAll: .attrStart > .t3
PASS Fragment.querySelectorAll Whitespace Trim: .attrStart > .t3
PASS Fragment.querySelector: .attrStart > .t3
PASS Fragment.querySelectorAll: .attrStart > .t1[class^="unit"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrStart > .t1[class^="unit"]
PASS Fragment.querySelector: .attrStart > .t1[class^="unit"]
PASS Fragment.querySelectorAll: .attrStart > .t2
PASS Fragment.querySelectorAll Whitespace Trim: .attrStart > .t2
PASS Fragment.querySelector: .attrStart > .t2
PASS Fragment.querySelectorAll: .attrStart > .t2[class^="nit"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrStart > .t2[class^="nit"]
PASS Fragment.querySelector: .attrStart > .t2[class^="nit"]
PASS Fragment.querySelectorAll: .attrStart > .t3[align^=""]
PASS Fragment.querySelectorAll Whitespace Trim: .attrStart > .t3[align^=""]
PASS Fragment.querySelector: .attrStart > .t3[align^=""]
PASS Fragment.querySelectorAll: .attrStart > .t4[foo^="\e9"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrStart > .t4[foo^="\e9"]
PASS Fragment.querySelector: .attrStart > .t4[foo^="\e9"]
PASS Fragment.querySelectorAll: .attrEnd > .t3
PASS Fragment.querySelectorAll Whitespace Trim: .attrEnd > .t3
PASS Fragment.querySelector: .attrEnd > .t3
PASS Fragment.querySelectorAll: .attrEnd > .t1[class$="t1"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrEnd > .t1[class$="t1"]
PASS Fragment.querySelector: .attrEnd > .t1[class$="t1"]
PASS Fragment.querySelectorAll: .attrEnd > .t2
PASS Fragment.querySelectorAll Whitespace Trim: .attrEnd > .t2
PASS Fragment.querySelector: .attrEnd > .t2
PASS Fragment.querySelectorAll: .attrEnd > .t2[class$="unit"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrEnd > .t2[class$="unit"]
PASS Fragment.querySelector: .attrEnd > .t2[class$="unit"]
PASS Fragment.querySelectorAll: .attrEnd > .t3[align$=""]
PASS Fragment.querySelectorAll Whitespace Trim: .attrEnd > .t3[align$=""]
PASS Fragment.querySelector: .attrEnd > .t3[align$=""]
PASS Fragment.querySelectorAll: .attrEnd > .t4[foo$="\e9"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrEnd > .t4[foo$="\e9"]
PASS Fragment.querySelector: .attrEnd > .t4[foo$="\e9"]
PASS Fragment.querySelectorAll: .attrMiddle > .t3
PASS Fragment.querySelectorAll Whitespace Trim: .attrMiddle > .t3
PASS Fragment.querySelector: .attrMiddle > .t3
PASS Fragment.querySelectorAll: .attrMiddle > .t1[class*="t t"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrMiddle > .t1[class*="t t"]
PASS Fragment.querySelector: .attrMiddle > .t1[class*="t t"]
PASS Fragment.querySelectorAll: .attrMiddle > .t2
PASS Fragment.querySelectorAll Whitespace Trim: .attrMiddle > .t2
PASS Fragment.querySelector: .attrMiddle > .t2
PASS Fragment.querySelectorAll: .attrMiddle > .t2[class*="a"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrMiddle > .t2[class*="a"]
PASS Fragment.querySelector: .attrMiddle > .t2[class*="a"]
PASS Fragment.querySelectorAll: .attrMiddle > .t3[align*=""]
PASS Fragment.querySelectorAll Whitespace Trim: .attrMiddle > .t3[align*=""]
PASS Fragment.querySelector: .attrMiddle > .t3[align*=""]
PASS Fragment.querySelectorAll: .attrMiddle > .t4[foo*="\e9"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrMiddle > .t4[foo*="\e9"]
PASS Fragment.querySelector: .attrMiddle > .t4[foo*="\e9"]
PASS Fragment.querySelectorAll: .firstChild .unitTest:first-child
PASS Fragment.querySelectorAll Whitespace Trim: .firstChild .unitTest:first-child
PASS Fragment.querySelector: .firstChild .unitTest:first-child
PASS Fragment.querySelectorAll: .blox12:first-child
PASS Fragment.querySelectorAll Whitespace Trim: .blox12:first-child
PASS Fragment.querySelector: .blox12:first-child
PASS Fragment.querySelectorAll: .blox13:first-child
PASS Fragment.querySelectorAll Whitespace Trim: .blox13:first-child
PASS Fragment.querySelector: .blox13:first-child
PASS Fragment.querySelectorAll: .blox12, .blox13
PASS Fragment.querySelectorAll Whitespace Trim: .blox12, .blox13
PASS Fragment.querySelector: .blox12, .blox13
PASS Fragment.querySelectorAll: :root
PASS Fragment.querySelectorAll Whitespace Trim: :root
PASS Fragment.querySelector: :root
PASS Fragment.querySelectorAll: .nthchild1 > :nth-last-child(odd)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild1 > :nth-last-child(odd)
PASS Fragment.querySelector: .nthchild1 > :nth-last-child(odd)
PASS Fragment.querySelectorAll: .nthchild1 > :nth-child(odd)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild1 > :nth-child(odd)
PASS Fragment.querySelector: .nthchild1 > :nth-child(odd)
PASS Fragment.querySelectorAll: .nthchild2 > :nth-last-child(even)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild2 > :nth-last-child(even)
PASS Fragment.querySelector: .nthchild2 > :nth-last-child(even)
PASS Fragment.querySelectorAll: .nthchild2 > :nth-child(even)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild2 > :nth-child(even)
PASS Fragment.querySelector: .nthchild2 > :nth-child(even)
PASS Fragment.querySelectorAll: .nthchild3 > :nth-child(3n+2)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild3 > :nth-child(3n+2)
PASS Fragment.querySelector: .nthchild3 > :nth-child(3n+2)
PASS Fragment.querySelectorAll: .nthchild3 > :nth-last-child(3n+1)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+1)
PASS Fragment.querySelector: .nthchild3 > :nth-last-child(3n+1)
PASS Fragment.querySelectorAll: .nthchild3 > :nth-last-child(3n+3)
PASS Fragment.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+3)
PASS Fragment.querySelector: .nthchild3 > :nth-last-child(3n+3)
PASS Fragment.querySelectorAll: .nthoftype1 > div:nth-of-type(odd)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-of-type(odd)
PASS Fragment.querySelector: .nthoftype1 > div:nth-of-type(odd)
PASS Fragment.querySelectorAll: .nthoftype1 > div:nth-last-of-type(odd)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-last-of-type(odd)
PASS Fragment.querySelector: .nthoftype1 > div:nth-last-of-type(odd)
PASS Fragment.querySelectorAll: .nthoftype1 > p
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype1 > p
PASS Fragment.querySelector: .nthoftype1 > p
PASS Fragment.querySelectorAll: .nthoftype2 > div:nth-of-type(even)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-of-type(even)
PASS Fragment.querySelector: .nthoftype2 > div:nth-of-type(even)
PASS Fragment.querySelectorAll: .nthoftype2 > div:nth-last-of-type(even)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-last-of-type(even)
PASS Fragment.querySelector: .nthoftype2 > div:nth-last-of-type(even)
PASS Fragment.querySelectorAll: .nthoftype2 > p
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype2 > p
PASS Fragment.querySelector: .nthoftype2 > p
PASS Fragment.querySelectorAll: .nthoftype3 > div:nth-of-type(3n+1)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-of-type(3n+1)
PASS Fragment.querySelector: .nthoftype3 > div:nth-of-type(3n+1)
PASS Fragment.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Fragment.querySelector: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Fragment.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Fragment.querySelector: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Fragment.querySelectorAll: .nthoftype3 > p
PASS Fragment.querySelectorAll Whitespace Trim: .nthoftype3 > p
PASS Fragment.querySelector: .nthoftype3 > p
PASS Fragment.querySelectorAll: .blox14:not(span)
PASS Fragment.querySelectorAll Whitespace Trim: .blox14:not(span)
PASS Fragment.querySelector: .blox14:not(span)
PASS Fragment.querySelectorAll: .blox15:not([foo="blox14"])
PASS Fragment.querySelectorAll Whitespace Trim: .blox15:not([foo="blox14"])
PASS Fragment.querySelector: .blox15:not([foo="blox14"])
PASS Fragment.querySelectorAll: .blox16:not(.blox15)
PASS Fragment.querySelectorAll Whitespace Trim: .blox16:not(.blox15)
PASS Fragment.querySelector: .blox16:not(.blox15)
PASS Fragment.querySelectorAll: .blox17:only-of-type
PASS Fragment.querySelectorAll Whitespace Trim: .blox17:only-of-type
PASS Fragment.querySelector: .blox17:only-of-type
PASS Fragment.querySelectorAll: .blox18:only-of-type
PASS Fragment.querySelectorAll Whitespace Trim: .blox18:only-of-type
PASS Fragment.querySelector: .blox18:only-of-type
PASS Fragment.querySelectorAll: .blox18:not(:only-of-type)
PASS Fragment.querySelectorAll Whitespace Trim: .blox18:not(:only-of-type)
PASS Fragment.querySelector: .blox18:not(:only-of-type)
PASS Fragment.querySelectorAll: .lastChild > :last-child
PASS Fragment.querySelectorAll Whitespace Trim: .lastChild > :last-child
PASS Fragment.querySelector: .lastChild > :last-child
PASS Fragment.querySelectorAll: .lastChild > :not(:last-child)
PASS Fragment.querySelectorAll Whitespace Trim: .lastChild > :not(:last-child)
PASS Fragment.querySelector: .lastChild > :not(:last-child)
PASS Fragment.querySelectorAll: .firstOfType > *:first-of-type
PASS Fragment.querySelectorAll Whitespace Trim: .firstOfType > *:first-of-type
PASS Fragment.querySelector: .firstOfType > *:first-of-type
PASS Fragment.querySelectorAll: *.firstOfType > :not(:first-of-type)
PASS Fragment.querySelectorAll Whitespace Trim: *.firstOfType > :not(:first-of-type)
PASS Fragment.querySelector: *.firstOfType > :not(:first-of-type)
PASS Fragment.querySelectorAll: .lastOfType > *:last-of-type
PASS Fragment.querySelectorAll Whitespace Trim: .lastOfType > *:last-of-type
PASS Fragment.querySelector: .lastOfType > *:last-of-type
PASS Fragment.querySelectorAll: *.lastOfType > :not(:last-of-type)
PASS Fragment.querySelectorAll Whitespace Trim: *.lastOfType > :not(:last-of-type)
PASS Fragment.querySelector: *.lastOfType > :not(:last-of-type)
PASS Fragment.querySelectorAll: .onlyChild > *:not(:only-child)
PASS Fragment.querySelectorAll Whitespace Trim: .onlyChild > *:not(:only-child)
PASS Fragment.querySelector: .onlyChild > *:not(:only-child)
PASS Fragment.querySelectorAll: .onlyChild > .unitTest > *:only-child
PASS Fragment.querySelectorAll Whitespace Trim: .onlyChild > .unitTest > *:only-child
PASS Fragment.querySelector: .onlyChild > .unitTest > *:only-child
PASS Fragment.querySelectorAll: .onlyOfType *:only-of-type
PASS Fragment.querySelectorAll Whitespace Trim: .onlyOfType *:only-of-type
PASS Fragment.querySelector: .onlyOfType *:only-of-type
PASS Fragment.querySelectorAll: .onlyOfType *:not(:only-of-type)
PASS Fragment.querySelectorAll Whitespace Trim: .onlyOfType *:not(:only-of-type)
PASS Fragment.querySelector: .onlyOfType *:not(:only-of-type)
PASS Fragment.querySelectorAll: .empty > *.isEmpty:empty
PASS Fragment.querySelectorAll Whitespace Trim: .empty > *.isEmpty:empty
PASS Fragment.querySelector: .empty > *.isEmpty:empty
PASS Fragment.querySelectorAll: .empty > .isNotEmpty
PASS Fragment.querySelectorAll Whitespace Trim: .empty > .isNotEmpty
PASS Fragment.querySelector: .empty > .isNotEmpty
PASS Fragment.querySelectorAll: .empty > .isNotEmpty:empty
PASS Fragment.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:empty
PASS Fragment.querySelector: .empty > .isNotEmpty:empty
PASS Fragment.querySelectorAll: .empty > .isNotEmpty:not(:empty)
PASS Fragment.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:not(:empty)
PASS Fragment.querySelector: .empty > .isNotEmpty:not(:empty)
PASS Fragment.querySelectorAll: .lang :lang(en)
PASS Fragment.querySelectorAll Whitespace Trim: .lang :lang(en)
PASS Fragment.querySelector: .lang :lang(en)
PASS Fragment.querySelectorAll: .lang :lang(fr)
PASS Fragment.querySelectorAll Whitespace Trim: .lang :lang(fr)
PASS Fragment.querySelector: .lang :lang(fr)
PASS Fragment.querySelectorAll: .lang .t1
PASS Fragment.querySelectorAll Whitespace Trim: .lang .t1
PASS Fragment.querySelector: .lang .t1
PASS Fragment.querySelectorAll: .lang .t1:lang(es)
PASS Fragment.querySelectorAll Whitespace Trim: .lang .t1:lang(es)
PASS Fragment.querySelector: .lang .t1:lang(es)
PASS Fragment.querySelectorAll: .lang :lang(es-AR)
PASS Fragment.querySelectorAll Whitespace Trim: .lang :lang(es-AR)
PASS Fragment.querySelector: .lang :lang(es-AR)
PASS Fragment.querySelectorAll: .attrLang .t1
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang .t1
PASS Fragment.querySelector: .attrLang .t1
PASS Fragment.querySelectorAll: .attrLang .t1[lang|="en"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang .t1[lang|="en"]
PASS Fragment.querySelector: .attrLang .t1[lang|="en"]
PASS Fragment.querySelectorAll: .attrLang [lang|="fr"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang [lang|="fr"]
PASS Fragment.querySelector: .attrLang [lang|="fr"]
PASS Fragment.querySelectorAll: .attrLang .t2[lang|="en"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang .t2[lang|="en"]
PASS Fragment.querySelector: .attrLang .t2[lang|="en"]
PASS Fragment.querySelectorAll: .attrLang .t3
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang .t3
PASS Fragment.querySelector: .attrLang .t3
PASS Fragment.querySelectorAll: .attrLang .t3[lang|="es"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang .t3[lang|="es"]
PASS Fragment.querySelector: .attrLang .t3[lang|="es"]
PASS Fragment.querySelectorAll: .attrLang [lang|="es-AR"]
PASS Fragment.querySelectorAll Whitespace Trim: .attrLang [lang|="es-AR"]
PASS Fragment.querySelector: .attrLang [lang|="es-AR"]
PASS Fragment.querySelectorAll: .UI .t1:enabled > .unitTest
PASS Fragment.querySelectorAll Whitespace Trim: .UI .t1:enabled > .unitTest
PASS Fragment.querySelector: .UI .t1:enabled > .unitTest
PASS Fragment.querySelectorAll: .UI .t2:disabled > .unitTest
PASS Fragment.querySelectorAll Whitespace Trim: .UI .t2:disabled > .unitTest
PASS Fragment.querySelector: .UI .t2:disabled > .unitTest
PASS Fragment.querySelectorAll: .UI .t3:checked + div
PASS Fragment.querySelectorAll Whitespace Trim: .UI .t3:checked + div
PASS Fragment.querySelector: .UI .t3:checked + div
PASS Fragment.querySelectorAll: .UI .t4:not(:checked) + div
PASS Fragment.querySelectorAll Whitespace Trim: .UI .t4:not(:checked) + div
PASS Fragment.querySelector: .UI .t4:not(:checked) + div
PASS Fragment.querySelectorAll: .tilda .t1
PASS Fragment.querySelectorAll Whitespace Trim: .tilda .t1
PASS Fragment.querySelector: .tilda .t1
PASS Fragment.querySelectorAll: .tilda .t1 ~ .unitTest
PASS Fragment.querySelectorAll Whitespace Trim: .tilda .t1 ~ .unitTest
PASS Fragment.querySelector: .tilda .t1 ~ .unitTest
PASS Fragment.querySelectorAll: .tilda .t1:hover ~ .unitTest
PASS Fragment.querySelectorAll Whitespace Trim: .tilda .t1:hover ~ .unitTest
PASS Fragment.querySelector: .tilda .t1:hover ~ .unitTest
PASS Fragment.querySelectorAll: .plus .t1, .plus .t2
PASS Fragment.querySelectorAll Whitespace Trim: .plus .t1, .plus .t2
PASS Fragment.querySelector: .plus .t1, .plus .t2
PASS Fragment.querySelectorAll: .plus .t1 + .unitTest + .unitTest
PASS Fragment.querySelectorAll Whitespace Trim: .plus .t1 + .unitTest + .unitTest
PASS Fragment.querySelector: .plus .t1 + .unitTest + .unitTest
PASS Fragment.querySelectorAll: .plus .t1:hover + .unitTest + .unitTest
PASS Fragment.querySelectorAll Whitespace Trim: .plus .t1:hover + .unitTest + .unitTest
PASS Fragment.querySelector: .plus .t1:hover + .unitTest + .unitTest
PASS Syntax Error: Fragment.querySelectorAll Empty String
PASS Syntax Error: Fragment.querySelectorAll null
PASS Syntax Error: Fragment.querySelectorAll undefined
PASS Syntax Error: Fragment.querySelectorAll no value
PASS Syntax Error: Fragment.querySelector Empty String
PASS Syntax Error: Fragment.querySelector null
PASS Syntax Error: Fragment.querySelector undefined
PASS Syntax Error: Fragment.querySelector no value
FAIL Syntax Error: Fragment.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Fragment.querySelector: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Fragment.querySelectorAll: div:not(:not(div))
FAIL Syntax Error: Fragment.querySelector: div:not(:not(div))
PASS Syntax Error: Fragment.querySelectorAll: div,
PASS Syntax Error: Fragment.querySelector: div,
PASS Syntax Error: Fragment.querySelectorAll: .5cm
PASS Syntax Error: Fragment.querySelector: .5cm
PASS Syntax Error: Fragment.querySelectorAll: foo & address, p
PASS Syntax Error: Fragment.querySelector: foo & address, p
PASS Syntax Error: Fragment.querySelectorAll: [*=test]
PASS Syntax Error: Fragment.querySelector: [*=test]
PASS Syntax Error: Fragment.querySelectorAll: [*|*=test]
PASS Syntax Error: Fragment.querySelector: [*|*=test]
PASS Syntax Error: Fragment.querySelectorAll: div:subject
PASS Syntax Error: Fragment.querySelector: div:subject
PASS Syntax Error: Fragment.querySelectorAll: :canvas
PASS Syntax Error: Fragment.querySelector: :canvas
PASS Syntax Error: Fragment.querySelectorAll: :viewport
PASS Syntax Error: Fragment.querySelector: :viewport
PASS Syntax Error: Fragment.querySelectorAll: :window
PASS Syntax Error: Fragment.querySelector: :window
PASS Syntax Error: Fragment.querySelectorAll: :menu
PASS Syntax Error: Fragment.querySelector: :menu
PASS Syntax Error: Fragment.querySelectorAll: :table
PASS Syntax Error: Fragment.querySelector: :table
PASS Syntax Error: Fragment.querySelectorAll: :select
PASS Syntax Error: Fragment.querySelector: :select
PASS Syntax Error: Fragment.querySelectorAll: ::canvas
PASS Syntax Error: Fragment.querySelector: ::canvas
PASS Syntax Error: Fragment.querySelectorAll: ::viewport
PASS Syntax Error: Fragment.querySelector: ::viewport
PASS Syntax Error: Fragment.querySelectorAll: ::window
PASS Syntax Error: Fragment.querySelector: ::window
PASS Syntax Error: Fragment.querySelectorAll: ::menu
PASS Syntax Error: Fragment.querySelector: ::menu
PASS Syntax Error: Fragment.querySelectorAll: ::table
PASS Syntax Error: Fragment.querySelector: ::table
PASS Syntax Error: Fragment.querySelectorAll: ::select
PASS Syntax Error: Fragment.querySelector: ::select
PASS Syntax Error: Fragment.querySelectorAll: ..test
PASS Syntax Error: Fragment.querySelector: ..test
PASS Syntax Error: Fragment.querySelectorAll: .foo..quux
PASS Syntax Error: Fragment.querySelector: .foo..quux
PASS Syntax Error: Fragment.querySelectorAll: .bar.
PASS Syntax Error: Fragment.querySelector: .bar.
PASS Fragment: StaticNodeList
PASS Fragment: StaticNodeList
PASS Document supports querySelector
PASS Document supports querySelectorAll
PASS Document.querySelectorAll Empty String
PASS Document.querySelectorAll null
PASS Document.querySelectorAll undefined
PASS Document.querySelectorAll no value
PASS Document.querySelector Empty String
PASS Document.querySelector null
PASS Document.querySelector undefined
PASS Document.querySelector no value
PASS Document.querySelectorAll: .target :target
PASS Document.querySelectorAll Whitespace Trim: .target :target
PASS Document.querySelector: .target :target
PASS Document.querySelectorAll: html > body
PASS Document.querySelectorAll Whitespace Trim: html > body
PASS Document.querySelector: html > body
PASS Document.querySelectorAll: .test > .blox1
PASS Document.querySelectorAll Whitespace Trim: .test > .blox1
PASS Document.querySelector: .test > .blox1
PASS Document.querySelectorAll: .blox2[align]
PASS Document.querySelectorAll Whitespace Trim: .blox2[align]
PASS Document.querySelector: .blox2[align]
PASS Document.querySelectorAll: .blox3[align]
PASS Document.querySelectorAll Whitespace Trim: .blox3[align]
PASS Document.querySelector: .blox3[align]
PASS Document.querySelectorAll: .blox4, .blox5
PASS Document.querySelectorAll Whitespace Trim: .blox4, .blox5
PASS Document.querySelector: .blox4, .blox5
PASS Document.querySelectorAll: .blox4[align], .blox5[align]
PASS Document.querySelectorAll Whitespace Trim: .blox4[align], .blox5[align]
PASS Document.querySelector: .blox4[align], .blox5[align]
PASS Document.querySelectorAll: .blox6[align="center"]
PASS Document.querySelectorAll Whitespace Trim: .blox6[align="center"]
PASS Document.querySelector: .blox6[align="center"]
PASS Document.querySelectorAll: .blox6[align="c"]
PASS Document.querySelectorAll Whitespace Trim: .blox6[align="c"]
PASS Document.querySelector: .blox6[align="c"]
PASS Document.querySelectorAll: .blox6[align="centera"]
PASS Document.querySelectorAll Whitespace Trim: .blox6[align="centera"]
PASS Document.querySelector: .blox6[align="centera"]
PASS Document.querySelectorAll: .blox6[foo="\e9"]
PASS Document.querySelectorAll Whitespace Trim: .blox6[foo="\e9"]
PASS Document.querySelector: .blox6[foo="\e9"]
PASS Document.querySelectorAll: .blox6[\_foo="\e9"]
PASS Document.querySelectorAll Whitespace Trim: .blox6[\_foo="\e9"]
PASS Document.querySelector: .blox6[\_foo="\e9"]
PASS Document.querySelectorAll: .blox7[class~="foo"]
PASS Document.querySelectorAll Whitespace Trim: .blox7[class~="foo"]
PASS Document.querySelector: .blox7[class~="foo"]
PASS Document.querySelectorAll: .blox8, .blox9, .blox10
PASS Document.querySelectorAll Whitespace Trim: .blox8, .blox9, .blox10
PASS Document.querySelector: .blox8, .blox9, .blox10
PASS Document.querySelectorAll: .blox8[class~=""]
PASS Document.querySelectorAll Whitespace Trim: .blox8[class~=""]
PASS Document.querySelector: .blox8[class~=""]
PASS Document.querySelectorAll: .blox9[foo~=""]
PASS Document.querySelectorAll Whitespace Trim: .blox9[foo~=""]
PASS Document.querySelector: .blox9[foo~=""]
PASS Document.querySelectorAll: .blox10[foo~="foo"]
PASS Document.querySelectorAll Whitespace Trim: .blox10[foo~="foo"]
PASS Document.querySelector: .blox10[foo~="foo"]
PASS Document.querySelectorAll: .attrStart > .t3
PASS Document.querySelectorAll Whitespace Trim: .attrStart > .t3
PASS Document.querySelector: .attrStart > .t3
PASS Document.querySelectorAll: .attrStart > .t1[class^="unit"]
PASS Document.querySelectorAll Whitespace Trim: .attrStart > .t1[class^="unit"]
PASS Document.querySelector: .attrStart > .t1[class^="unit"]
PASS Document.querySelectorAll: .attrStart > .t2
PASS Document.querySelectorAll Whitespace Trim: .attrStart > .t2
PASS Document.querySelector: .attrStart > .t2
PASS Document.querySelectorAll: .attrStart > .t2[class^="nit"]
PASS Document.querySelectorAll Whitespace Trim: .attrStart > .t2[class^="nit"]
PASS Document.querySelector: .attrStart > .t2[class^="nit"]
PASS Document.querySelectorAll: .attrStart > .t3[align^=""]
PASS Document.querySelectorAll Whitespace Trim: .attrStart > .t3[align^=""]
PASS Document.querySelector: .attrStart > .t3[align^=""]
PASS Document.querySelectorAll: .attrStart > .t4[foo^="\e9"]
PASS Document.querySelectorAll Whitespace Trim: .attrStart > .t4[foo^="\e9"]
PASS Document.querySelector: .attrStart > .t4[foo^="\e9"]
PASS Document.querySelectorAll: .attrEnd > .t3
PASS Document.querySelectorAll Whitespace Trim: .attrEnd > .t3
PASS Document.querySelector: .attrEnd > .t3
PASS Document.querySelectorAll: .attrEnd > .t1[class$="t1"]
PASS Document.querySelectorAll Whitespace Trim: .attrEnd > .t1[class$="t1"]
PASS Document.querySelector: .attrEnd > .t1[class$="t1"]
PASS Document.querySelectorAll: .attrEnd > .t2
PASS Document.querySelectorAll Whitespace Trim: .attrEnd > .t2
PASS Document.querySelector: .attrEnd > .t2
PASS Document.querySelectorAll: .attrEnd > .t2[class$="unit"]
PASS Document.querySelectorAll Whitespace Trim: .attrEnd > .t2[class$="unit"]
PASS Document.querySelector: .attrEnd > .t2[class$="unit"]
PASS Document.querySelectorAll: .attrEnd > .t3[align$=""]
PASS Document.querySelectorAll Whitespace Trim: .attrEnd > .t3[align$=""]
PASS Document.querySelector: .attrEnd > .t3[align$=""]
PASS Document.querySelectorAll: .attrEnd > .t4[foo$="\e9"]
PASS Document.querySelectorAll Whitespace Trim: .attrEnd > .t4[foo$="\e9"]
PASS Document.querySelector: .attrEnd > .t4[foo$="\e9"]
PASS Document.querySelectorAll: .attrMiddle > .t3
PASS Document.querySelectorAll Whitespace Trim: .attrMiddle > .t3
PASS Document.querySelector: .attrMiddle > .t3
PASS Document.querySelectorAll: .attrMiddle > .t1[class*="t t"]
PASS Document.querySelectorAll Whitespace Trim: .attrMiddle > .t1[class*="t t"]
PASS Document.querySelector: .attrMiddle > .t1[class*="t t"]
PASS Document.querySelectorAll: .attrMiddle > .t2
PASS Document.querySelectorAll Whitespace Trim: .attrMiddle > .t2
PASS Document.querySelector: .attrMiddle > .t2
PASS Document.querySelectorAll: .attrMiddle > .t2[class*="a"]
PASS Document.querySelectorAll Whitespace Trim: .attrMiddle > .t2[class*="a"]
PASS Document.querySelector: .attrMiddle > .t2[class*="a"]
PASS Document.querySelectorAll: .attrMiddle > .t3[align*=""]
PASS Document.querySelectorAll Whitespace Trim: .attrMiddle > .t3[align*=""]
PASS Document.querySelector: .attrMiddle > .t3[align*=""]
PASS Document.querySelectorAll: .attrMiddle > .t4[foo*="\e9"]
PASS Document.querySelectorAll Whitespace Trim: .attrMiddle > .t4[foo*="\e9"]
PASS Document.querySelector: .attrMiddle > .t4[foo*="\e9"]
PASS Document.querySelectorAll: .firstChild .unitTest:first-child
PASS Document.querySelectorAll Whitespace Trim: .firstChild .unitTest:first-child
PASS Document.querySelector: .firstChild .unitTest:first-child
PASS Document.querySelectorAll: .blox12:first-child
PASS Document.querySelectorAll Whitespace Trim: .blox12:first-child
PASS Document.querySelector: .blox12:first-child
PASS Document.querySelectorAll: .blox13:first-child
PASS Document.querySelectorAll Whitespace Trim: .blox13:first-child
PASS Document.querySelector: .blox13:first-child
PASS Document.querySelectorAll: .blox12, .blox13
PASS Document.querySelectorAll Whitespace Trim: .blox12, .blox13
PASS Document.querySelector: .blox12, .blox13
PASS Document.querySelectorAll: :root
PASS Document.querySelectorAll Whitespace Trim: :root
PASS Document.querySelector: :root
PASS Document.querySelectorAll: .nthchild1 > :nth-last-child(odd)
PASS Document.querySelectorAll Whitespace Trim: .nthchild1 > :nth-last-child(odd)
PASS Document.querySelector: .nthchild1 > :nth-last-child(odd)
PASS Document.querySelectorAll: .nthchild1 > :nth-child(odd)
PASS Document.querySelectorAll Whitespace Trim: .nthchild1 > :nth-child(odd)
PASS Document.querySelector: .nthchild1 > :nth-child(odd)
PASS Document.querySelectorAll: .nthchild2 > :nth-last-child(even)
PASS Document.querySelectorAll Whitespace Trim: .nthchild2 > :nth-last-child(even)
PASS Document.querySelector: .nthchild2 > :nth-last-child(even)
PASS Document.querySelectorAll: .nthchild2 > :nth-child(even)
PASS Document.querySelectorAll Whitespace Trim: .nthchild2 > :nth-child(even)
PASS Document.querySelector: .nthchild2 > :nth-child(even)
PASS Document.querySelectorAll: .nthchild3 > :nth-child(3n+2)
PASS Document.querySelectorAll Whitespace Trim: .nthchild3 > :nth-child(3n+2)
PASS Document.querySelector: .nthchild3 > :nth-child(3n+2)
PASS Document.querySelectorAll: .nthchild3 > :nth-last-child(3n+1)
PASS Document.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+1)
PASS Document.querySelector: .nthchild3 > :nth-last-child(3n+1)
PASS Document.querySelectorAll: .nthchild3 > :nth-last-child(3n+3)
PASS Document.querySelectorAll Whitespace Trim: .nthchild3 > :nth-last-child(3n+3)
PASS Document.querySelector: .nthchild3 > :nth-last-child(3n+3)
PASS Document.querySelectorAll: .nthoftype1 > div:nth-of-type(odd)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-of-type(odd)
PASS Document.querySelector: .nthoftype1 > div:nth-of-type(odd)
PASS Document.querySelectorAll: .nthoftype1 > div:nth-last-of-type(odd)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype1 > div:nth-last-of-type(odd)
PASS Document.querySelector: .nthoftype1 > div:nth-last-of-type(odd)
PASS Document.querySelectorAll: .nthoftype1 > p
PASS Document.querySelectorAll Whitespace Trim: .nthoftype1 > p
PASS Document.querySelector: .nthoftype1 > p
PASS Document.querySelectorAll: .nthoftype2 > div:nth-of-type(even)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-of-type(even)
PASS Document.querySelector: .nthoftype2 > div:nth-of-type(even)
PASS Document.querySelectorAll: .nthoftype2 > div:nth-last-of-type(even)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype2 > div:nth-last-of-type(even)
PASS Document.querySelector: .nthoftype2 > div:nth-last-of-type(even)
PASS Document.querySelectorAll: .nthoftype2 > p
PASS Document.querySelectorAll Whitespace Trim: .nthoftype2 > p
PASS Document.querySelector: .nthoftype2 > p
PASS Document.querySelectorAll: .nthoftype3 > div:nth-of-type(3n+1)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-of-type(3n+1)
PASS Document.querySelector: .nthoftype3 > div:nth-of-type(3n+1)
PASS Document.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Document.querySelector: .nthoftype3 > div:nth-last-of-type(3n+1)
PASS Document.querySelectorAll: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Document.querySelectorAll Whitespace Trim: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Document.querySelector: .nthoftype3 > div:nth-last-of-type(3n+2)
PASS Document.querySelectorAll: .nthoftype3 > p
PASS Document.querySelectorAll Whitespace Trim: .nthoftype3 > p
PASS Document.querySelector: .nthoftype3 > p
PASS Document.querySelectorAll: .blox14:not(span)
PASS Document.querySelectorAll Whitespace Trim: .blox14:not(span)
PASS Document.querySelector: .blox14:not(span)
PASS Document.querySelectorAll: .blox15:not([foo="blox14"])
PASS Document.querySelectorAll Whitespace Trim: .blox15:not([foo="blox14"])
PASS Document.querySelector: .blox15:not([foo="blox14"])
PASS Document.querySelectorAll: .blox16:not(.blox15)
PASS Document.querySelectorAll Whitespace Trim: .blox16:not(.blox15)
PASS Document.querySelector: .blox16:not(.blox15)
PASS Document.querySelectorAll: .blox17:only-of-type
PASS Document.querySelectorAll Whitespace Trim: .blox17:only-of-type
PASS Document.querySelector: .blox17:only-of-type
PASS Document.querySelectorAll: .blox18:only-of-type
PASS Document.querySelectorAll Whitespace Trim: .blox18:only-of-type
PASS Document.querySelector: .blox18:only-of-type
PASS Document.querySelectorAll: .blox18:not(:only-of-type)
PASS Document.querySelectorAll Whitespace Trim: .blox18:not(:only-of-type)
PASS Document.querySelector: .blox18:not(:only-of-type)
PASS Document.querySelectorAll: .lastChild > :last-child
PASS Document.querySelectorAll Whitespace Trim: .lastChild > :last-child
PASS Document.querySelector: .lastChild > :last-child
PASS Document.querySelectorAll: .lastChild > :not(:last-child)
PASS Document.querySelectorAll Whitespace Trim: .lastChild > :not(:last-child)
PASS Document.querySelector: .lastChild > :not(:last-child)
PASS Document.querySelectorAll: .firstOfType > *:first-of-type
PASS Document.querySelectorAll Whitespace Trim: .firstOfType > *:first-of-type
PASS Document.querySelector: .firstOfType > *:first-of-type
PASS Document.querySelectorAll: *.firstOfType > :not(:first-of-type)
PASS Document.querySelectorAll Whitespace Trim: *.firstOfType > :not(:first-of-type)
PASS Document.querySelector: *.firstOfType > :not(:first-of-type)
PASS Document.querySelectorAll: .lastOfType > *:last-of-type
PASS Document.querySelectorAll Whitespace Trim: .lastOfType > *:last-of-type
PASS Document.querySelector: .lastOfType > *:last-of-type
PASS Document.querySelectorAll: *.lastOfType > :not(:last-of-type)
PASS Document.querySelectorAll Whitespace Trim: *.lastOfType > :not(:last-of-type)
PASS Document.querySelector: *.lastOfType > :not(:last-of-type)
PASS Document.querySelectorAll: .onlyChild > *:not(:only-child)
PASS Document.querySelectorAll Whitespace Trim: .onlyChild > *:not(:only-child)
PASS Document.querySelector: .onlyChild > *:not(:only-child)
PASS Document.querySelectorAll: .onlyChild > .unitTest > *:only-child
PASS Document.querySelectorAll Whitespace Trim: .onlyChild > .unitTest > *:only-child
PASS Document.querySelector: .onlyChild > .unitTest > *:only-child
PASS Document.querySelectorAll: .onlyOfType *:only-of-type
PASS Document.querySelectorAll Whitespace Trim: .onlyOfType *:only-of-type
PASS Document.querySelector: .onlyOfType *:only-of-type
PASS Document.querySelectorAll: .onlyOfType *:not(:only-of-type)
PASS Document.querySelectorAll Whitespace Trim: .onlyOfType *:not(:only-of-type)
PASS Document.querySelector: .onlyOfType *:not(:only-of-type)
PASS Document.querySelectorAll: .empty > *.isEmpty:empty
PASS Document.querySelectorAll Whitespace Trim: .empty > *.isEmpty:empty
PASS Document.querySelector: .empty > *.isEmpty:empty
PASS Document.querySelectorAll: .empty > .isNotEmpty
PASS Document.querySelectorAll Whitespace Trim: .empty > .isNotEmpty
PASS Document.querySelector: .empty > .isNotEmpty
PASS Document.querySelectorAll: .empty > .isNotEmpty:empty
PASS Document.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:empty
PASS Document.querySelector: .empty > .isNotEmpty:empty
PASS Document.querySelectorAll: .empty > .isNotEmpty:not(:empty)
PASS Document.querySelectorAll Whitespace Trim: .empty > .isNotEmpty:not(:empty)
PASS Document.querySelector: .empty > .isNotEmpty:not(:empty)
PASS Document.querySelectorAll: .lang :lang(en)
PASS Document.querySelectorAll Whitespace Trim: .lang :lang(en)
PASS Document.querySelector: .lang :lang(en)
PASS Document.querySelectorAll: .lang :lang(fr)
PASS Document.querySelectorAll Whitespace Trim: .lang :lang(fr)
PASS Document.querySelector: .lang :lang(fr)
PASS Document.querySelectorAll: .lang .t1
PASS Document.querySelectorAll Whitespace Trim: .lang .t1
PASS Document.querySelector: .lang .t1
PASS Document.querySelectorAll: .lang .t1:lang(es)
PASS Document.querySelectorAll Whitespace Trim: .lang .t1:lang(es)
PASS Document.querySelector: .lang .t1:lang(es)
PASS Document.querySelectorAll: .lang :lang(es-AR)
PASS Document.querySelectorAll Whitespace Trim: .lang :lang(es-AR)
PASS Document.querySelector: .lang :lang(es-AR)
PASS Document.querySelectorAll: .attrLang .t1
PASS Document.querySelectorAll Whitespace Trim: .attrLang .t1
PASS Document.querySelector: .attrLang .t1
PASS Document.querySelectorAll: .attrLang .t1[lang|="en"]
PASS Document.querySelectorAll Whitespace Trim: .attrLang .t1[lang|="en"]
PASS Document.querySelector: .attrLang .t1[lang|="en"]
PASS Document.querySelectorAll: .attrLang [lang|="fr"]
PASS Document.querySelectorAll Whitespace Trim: .attrLang [lang|="fr"]
PASS Document.querySelector: .attrLang [lang|="fr"]
PASS Document.querySelectorAll: .attrLang .t2[lang|="en"]
PASS Document.querySelectorAll Whitespace Trim: .attrLang .t2[lang|="en"]
PASS Document.querySelector: .attrLang .t2[lang|="en"]
PASS Document.querySelectorAll: .attrLang .t3
PASS Document.querySelectorAll Whitespace Trim: .attrLang .t3
PASS Document.querySelector: .attrLang .t3
PASS Document.querySelectorAll: .attrLang .t3[lang|="es"]
PASS Document.querySelectorAll Whitespace Trim: .attrLang .t3[lang|="es"]
PASS Document.querySelector: .attrLang .t3[lang|="es"]
PASS Document.querySelectorAll: .attrLang [lang|="es-AR"]
PASS Document.querySelectorAll Whitespace Trim: .attrLang [lang|="es-AR"]
PASS Document.querySelector: .attrLang [lang|="es-AR"]
PASS Document.querySelectorAll: .UI .t1:enabled > .unitTest
PASS Document.querySelectorAll Whitespace Trim: .UI .t1:enabled > .unitTest
PASS Document.querySelector: .UI .t1:enabled > .unitTest
PASS Document.querySelectorAll: .UI .t2:disabled > .unitTest
PASS Document.querySelectorAll Whitespace Trim: .UI .t2:disabled > .unitTest
PASS Document.querySelector: .UI .t2:disabled > .unitTest
PASS Document.querySelectorAll: .UI .t3:checked + div
PASS Document.querySelectorAll Whitespace Trim: .UI .t3:checked + div
PASS Document.querySelector: .UI .t3:checked + div
PASS Document.querySelectorAll: .UI .t4:not(:checked) + div
PASS Document.querySelectorAll Whitespace Trim: .UI .t4:not(:checked) + div
PASS Document.querySelector: .UI .t4:not(:checked) + div
PASS Document.querySelectorAll: .tilda .t1
PASS Document.querySelectorAll Whitespace Trim: .tilda .t1
PASS Document.querySelector: .tilda .t1
PASS Document.querySelectorAll: .tilda .t1 ~ .unitTest
PASS Document.querySelectorAll Whitespace Trim: .tilda .t1 ~ .unitTest
PASS Document.querySelector: .tilda .t1 ~ .unitTest
PASS Document.querySelectorAll: .tilda .t1:hover ~ .unitTest
PASS Document.querySelectorAll Whitespace Trim: .tilda .t1:hover ~ .unitTest
PASS Document.querySelector: .tilda .t1:hover ~ .unitTest
PASS Document.querySelectorAll: .plus .t1, .plus .t2
PASS Document.querySelectorAll Whitespace Trim: .plus .t1, .plus .t2
PASS Document.querySelector: .plus .t1, .plus .t2
PASS Document.querySelectorAll: .plus .t1 + .unitTest + .unitTest
PASS Document.querySelectorAll Whitespace Trim: .plus .t1 + .unitTest + .unitTest
PASS Document.querySelector: .plus .t1 + .unitTest + .unitTest
PASS Document.querySelectorAll: .plus .t1:hover + .unitTest + .unitTest
PASS Document.querySelectorAll Whitespace Trim: .plus .t1:hover + .unitTest + .unitTest
PASS Document.querySelector: .plus .t1:hover + .unitTest + .unitTest
PASS Syntax Error: Document.querySelectorAll Empty String
PASS Syntax Error: Document.querySelectorAll null
PASS Syntax Error: Document.querySelectorAll undefined
PASS Syntax Error: Document.querySelectorAll no value
PASS Syntax Error: Document.querySelector Empty String
PASS Syntax Error: Document.querySelector null
PASS Syntax Error: Document.querySelector undefined
PASS Syntax Error: Document.querySelector no value
FAIL Syntax Error: Document.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Document.querySelector: .blox16:not(.blox15[foo="blox14"])
FAIL Syntax Error: Document.querySelectorAll: div:not(:not(div))
FAIL Syntax Error: Document.querySelector: div:not(:not(div))
PASS Syntax Error: Document.querySelectorAll: div,
PASS Syntax Error: Document.querySelector: div,
PASS Syntax Error: Document.querySelectorAll: .5cm
PASS Syntax Error: Document.querySelector: .5cm
PASS Syntax Error: Document.querySelectorAll: foo & address, p
PASS Syntax Error: Document.querySelector: foo & address, p
PASS Syntax Error: Document.querySelectorAll: [*=test]
PASS Syntax Error: Document.querySelector: [*=test]
PASS Syntax Error: Document.querySelectorAll: [*|*=test]
PASS Syntax Error: Document.querySelector: [*|*=test]
PASS Syntax Error: Document.querySelectorAll: div:subject
PASS Syntax Error: Document.querySelector: div:subject
PASS Syntax Error: Document.querySelectorAll: :canvas
PASS Syntax Error: Document.querySelector: :canvas
PASS Syntax Error: Document.querySelectorAll: :viewport
PASS Syntax Error: Document.querySelector: :viewport
PASS Syntax Error: Document.querySelectorAll: :window
PASS Syntax Error: Document.querySelector: :window
PASS Syntax Error: Document.querySelectorAll: :menu
PASS Syntax Error: Document.querySelector: :menu
PASS Syntax Error: Document.querySelectorAll: :table
PASS Syntax Error: Document.querySelector: :table
PASS Syntax Error: Document.querySelectorAll: :select
PASS Syntax Error: Document.querySelector: :select
PASS Syntax Error: Document.querySelectorAll: ::canvas
PASS Syntax Error: Document.querySelector: ::canvas
PASS Syntax Error: Document.querySelectorAll: ::viewport
PASS Syntax Error: Document.querySelector: ::viewport
PASS Syntax Error: Document.querySelectorAll: ::window
PASS Syntax Error: Document.querySelector: ::window
PASS Syntax Error: Document.querySelectorAll: ::menu
PASS Syntax Error: Document.querySelector: ::menu
PASS Syntax Error: Document.querySelectorAll: ::table
PASS Syntax Error: Document.querySelector: ::table
PASS Syntax Error: Document.querySelectorAll: ::select
PASS Syntax Error: Document.querySelector: ::select
PASS Syntax Error: Document.querySelectorAll: ..test
PASS Syntax Error: Document.querySelector: ..test
PASS Syntax Error: Document.querySelectorAll: .foo..quux
PASS Syntax Error: Document.querySelector: .foo..quux
PASS Syntax Error: Document.querySelectorAll: .bar.
PASS Syntax Error: Document.querySelector: .bar.
PASS Document: Select all
PASS Document: Select all elements, no comment nodes
PASS Document: :root Selector (:root)
PASS Document: :root All Selector
PASS Document: Element Selector (#root3 p)
PASS Document: Element Selector (body)
PASS Document: Element Selector (html)
PASS Document: Parent Element (#root3 div p)
PASS Document: Object/param as context
PASS Document: <input name="length"> cannot be found under IE
PASS Document: <input name="length"> cannot be found under IE
PASS Document: Broken Selector (#root3 [)
PASS Document: Broken Selector (#root3 ()
PASS Document: Broken Selector (#root3 {)
PASS Document: Broken Selector (#root3 <)
PASS Document: Broken Selector (#root3 ())
PASS Document: Broken Selector (#root3 <>)
PASS Document: Broken Selector (#root3 {})
PASS Document: ID Selector (#body)
PASS Document: ID Selector w/ Element (body#body)
PASS Document: ID Selector w/ Element (#root3 ul#first)
PASS Document: ID selector with existing ID descendant (#root3 #firstp #simon1)
PASS Document: ID selector with non-existant descendant (#root3 #firstp #foobar)
PASS Document: ID selector using UTF8 (#root3 #台北Táiběi)
PASS Document: Multiple ID selectors using UTF8 (#root3 #台北Táiběi, #root3 #台北)
PASS Document: Descendant ID selector using UTF8 (#root3 div #台北)
PASS Document: Child ID selector using UTF8 (#root3 form > #台北)
PASS Document: Escaped ID (#root3 #foo\:bar)
PASS Document: Escaped ID (#root3 #test\.foo\[5\]bar)
PASS Document: Descendant escaped ID (#root3 div #foo\:bar)
PASS Document: Descendant escaped ID (#root3 div #test\.foo\[5\]bar)
PASS Document: Child escaped ID (#root3 form > #foo\:bar)
PASS Document: Child escaped ID (#root3 form > #test\.foo\[5\]bar)
PASS Document: ID Selector, child ID present (#root3 #form > #radio1)
PASS Document: ID Selector, not an ancestor ID (#root3 #form #first)
PASS Document: ID Selector, not a child ID (#root3 #form > #option1a)
PASS Document: All Children of ID (#root3 #foo > *)
PASS Document: All Children of ID with no children (#root3 #firstUL > *)
PASS Document: ID selector with non-existant ancestor (#root3 #asdfasdf #foobar)
PASS Document: Class Selector (#root3 .blog)
PASS Document: Class Selector (#root3 .blog.link)
PASS Document: Class Selector w/ Element (#root3 a.blog)
PASS Document: Parent Class Selector (#root3 p .blog)
PASS Document: Class selector using UTF8 (#root3 .台北Táiběi)
PASS Document: Class selector using UTF8 (#root3 .台北)
PASS Document: Class selector using UTF8 (#root3 .台北Táiběi.台北)
PASS Document: Class selector using UTF8 (#root3 .台北Táiběi, #root3 .台北)
PASS Document: Descendant class selector using UTF8 (#root3 div .台北Táiběi)
PASS Document: Child class selector using UTF8 (#root3 form > .台北Táiběi)
PASS Document: Escaped Class (#root3 .foo\:bar)
PASS Document: Escaped Class (#root3 .test\.foo\[5\]bar)
PASS Document: Descendant scaped Class (#root3 div .foo\:bar)
PASS Document: Descendant scaped Class (#root3 div .test\.foo\[5\]bar)
PASS Document: Child escaped Class (#root3 form > .foo\:bar)
PASS Document: Child escaped Class (#root3 form > .test\.foo\[5\]bar)
PASS Document: Comma Support (#root3 a.blog, #root3 p)
PASS Document: Comma Support (#root3 a.blog , #root3 p)
PASS Document: Comma Support (#root3 a.blog , #root3 p)
PASS Document: Comma Support (#root3 a.blog, #root3 p)
PASS Document: Child (#root3 p > a)
PASS Document: Child (#root3 p> a)
PASS Document: Child (#root3 p >a)
PASS Document: Child (#root3 p>a)
PASS Document: Child w/ Class (#root3 p > a.blog)
PASS Document: All Children (#root3 code > *)
PASS Document: All Grandchildren (#root3 p > * > *)
PASS Document: Adjacent (#root3 a + a)
PASS Document: Adjacent (#root3 a +a)
PASS Document: Adjacent (#root3 a+ a)
PASS Document: Adjacent (#root3 a+a)
PASS Document: Adjacent (#root3 p + p)
PASS Document: Comma, Child, and Adjacent (#root3 a + a, #root3 code > a)
PASS Document: First Child (#root3 p:first-child)
PASS Document: Nth Child (#root3 p:nth-child(1))
PASS Document: Last Child (#root3 p:last-child)
PASS Document: Last Child (#root3 a:last-child)
PASS Document: Nth-child (#root3 #main form#form > *:nth-child(2))
PASS Document: Nth-child (#root3 #main form#form > :nth-child(2))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(0n+3))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(1n+0))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(1n))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(n))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(even))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(odd))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(2n))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(2n+1))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n+1))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n+2))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n+3))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n-1))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n-2))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n-3))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(3n+0))
PASS Document: Nth-child (#root3 #form #select1 option:nth-child(-n+3))
PASS Document: Attribute Exists (#root3 a[title])
PASS Document: Attribute Exists (#root3 *[title])
PASS Document: Attribute Exists (#root3 [title])
PASS Document: Attribute Equals (#root3 a[rel='bookmark'])
PASS Document: Attribute Equals (#root3 a[rel="bookmark"])
PASS Document: Attribute Equals (#root3 a[rel=bookmark])
PASS Document: Multiple Attribute Equals (#root3 #form input[type='hidden'], #root3 #form input[type='radio'])
PASS Document: Multiple Attribute Equals (#root3 #form input[type="hidden"], #root3 #form input[type='radio'])
PASS Document: Multiple Attribute Equals (#root3 #form input[type=hidden], #root3 #form input[type=radio])
PASS Document: Attribute selector using UTF8 (#root3 span[lang=中文])
PASS Document: Attribute Begins With (#root3 a[href ^= 'http://www'])
PASS Document: Attribute Ends With (#root3 a[href $= 'org/'])
PASS Document: Attribute Contains (#root3 a[href *= 'google'])
PASS Document: Select options via [selected] (#root3 #select1 option[selected])
PASS Document: Select options via [selected] (#root3 #select2 option[selected])
PASS Document: Select options via [selected] (#root3 #select3 option[selected])
PASS Document: Grouped Form Elements (#root3 input[name='foo[bar]'])
PASS Document: :not() Existing attribute (#root3 #form select:not([multiple]))
PASS Document: :not() Equals attribute (#root3 #form select:not([name=select1]))
PASS Document: :not() Equals quoted attribute (#root3 #form select:not([name='select1']))
PASS Document: First Child (#root3 p:first-child)
PASS Document: Last Child (#root3 p:last-child)
PASS Document: Only Child (#root3 a:only-child)
PASS Document: Empty (#root3 ul:empty)
PASS Document: Disabled UI Element (#root3 #form input:disabled)
PASS Document: Checked UI Element (#root3 #form input:checked)
PASS Document: Element Preceded By (#root3 p ~ div)
PASS Document: Not (#root3 a.blog:not(.link))
PASS Document: StaticNodeList
PASS Document: StaticNodeList