blob: e9cdfc274da88b46197d1de26cad393020f26a48 [file] [log] [blame] [edit]
This tests setting and re-serialization of some CSS selectors.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS setThenReadSelectorText('') is "_foo"
PASS setThenReadSelectorText('123') is "_foo"
PASS setThenReadSelectorText('-') is "_foo"
PASS setThenReadSelectorText('$') is "_foo"
PASS setThenReadSelectorText(':') is "_foo"
PASS setThenReadSelectorText('.') is "_foo"
PASS setThenReadSelectorText('#') is "_foo"
PASS setThenReadSelectorText('[]') is "_foo"
PASS setThenReadSelectorText('()') is "_foo"
PASS setThenReadSelectorText('*') is "*"
PASS setThenReadSelectorText('a') is "a"
PASS setThenReadSelectorText('#a') is "#a"
PASS setThenReadSelectorText('.a') is ".a"
PASS setThenReadSelectorText(':active') is ":active"
PASS setThenReadSelectorText('[a]') is "[a]"
PASS setThenReadSelectorText('[a="b"]') is "[a=\"b\"]"
PASS setThenReadSelectorText('[a~="b"]') is "[a~=\"b\"]"
PASS setThenReadSelectorText('[a|="b"]') is "[a|=\"b\"]"
PASS setThenReadSelectorText('[a^="b"]') is "[a^=\"b\"]"
PASS setThenReadSelectorText('[a$="b"]') is "[a$=\"b\"]"
PASS setThenReadSelectorText('[a*="b"]') is "[a*=\"b\"]"
PASS setThenReadSelectorText('[a="b" i]') is "[a=\"b\" i]"
PASS setThenReadSelectorText('[a~="b" i]') is "[a~=\"b\" i]"
PASS setThenReadSelectorText('[a|="b" i]') is "[a|=\"b\" i]"
PASS setThenReadSelectorText('[a^="b" i]') is "[a^=\"b\" i]"
PASS setThenReadSelectorText('[a$="b" i]') is "[a$=\"b\" i]"
PASS setThenReadSelectorText('[a*="b" i]') is "[a*=\"b\" i]"
PASS setThenReadSelectorText('*|a') is "a"
PASS setThenReadSelectorText('*|*') is "*"
PASS setThenReadSelectorText('[*|a]') is "[*|a]"
PASS setThenReadSelectorText('|*') is "|*"
PASS setThenReadSelectorText('[*|a]') is "[*|a]"
PASS setThenReadSelectorText('[|a]') is "[a]"
PASS setThenReadSelectorText('a:active') is "a:active"
PASS setThenReadSelectorText('a b') is "a b"
PASS setThenReadSelectorText('a + b') is "a + b"
PASS setThenReadSelectorText('a ~ b') is "a ~ b"
PASS setThenReadSelectorText('a > b') is "a > b"
PASS setThenReadSelectorText(':active') is ":active"
PASS setThenReadSelectorText(':any-link') is ":any-link"
PASS setThenReadSelectorText(':checked') is ":checked"
PASS setThenReadSelectorText(':disabled') is ":disabled"
PASS setThenReadSelectorText(':empty') is ":empty"
PASS setThenReadSelectorText(':enabled') is ":enabled"
PASS setThenReadSelectorText(':first-child') is ":first-child"
PASS setThenReadSelectorText(':first-of-type') is ":first-of-type"
PASS setThenReadSelectorText(':focus') is ":focus"
PASS setThenReadSelectorText(':hover') is ":hover"
PASS setThenReadSelectorText(':indeterminate') is ":indeterminate"
PASS setThenReadSelectorText(':link') is ":link"
PASS setThenReadSelectorText(':not(:placeholder-shown)') is ":not(:placeholder-shown)"
PASS setThenReadSelectorText(':placeholder-shown') is ":placeholder-shown"
PASS setThenReadSelectorText(':root') is ":root"
PASS setThenReadSelectorText(':target') is ":target"
PASS setThenReadSelectorText(':visited') is ":visited"
PASS setThenReadSelectorText(':dir(a)') is ":dir(a)"
PASS setThenReadSelectorText(':lang("a")') is ":lang(\"a\")"
PASS setThenReadSelectorText(':lang(a)') is ":lang(a)"
PASS setThenReadSelectorText(':not(a)') is ":not(a)"
PASS setThenReadSelectorText(':-webkit-any(a, b, p)') is ":-webkit-any(a, b, p)"
PASS setThenReadSelectorText('::after') is "::after"
PASS setThenReadSelectorText('::before') is "::before"
PASS setThenReadSelectorText('::first-letter') is "::first-letter"
PASS setThenReadSelectorText('::first-line') is "::first-line"
PASS setThenReadSelectorText('::selection') is "::selection"
PASS setThenReadSelectorText(':-webkit-any-link') is ":any-link"
PASS setThenReadSelectorText(':-webkit-drag') is ":-webkit-drag"
PASS setThenReadSelectorText(':autofill') is ":autofill"
PASS setThenReadSelectorText(':-webkit-autofill') is ":autofill"
PASS setThenReadSelectorText('a:any-link') is "a:any-link"
PASS setThenReadSelectorText('a :any-link') is "a :any-link"
PASS setThenReadSelectorText('div:any-link') is "div:any-link"
PASS setThenReadSelectorText('div :any-link') is "div :any-link"
PASS setThenReadSelectorText(':any-link > div') is ":any-link > div"
PASS setThenReadSelectorText(':any-link + div') is ":any-link + div"
PASS setThenReadSelectorText(':not(:any-link)') is ":not(:any-link)"
PASS setThenReadSelectorText(':nth-child(odd)') is ":nth-child(2n+1)"
PASS setThenReadSelectorText(':nth-child(even)') is ":nth-child(2n)"
PASS setThenReadSelectorText(':nth-child(n)') is ":nth-child(n)"
PASS setThenReadSelectorText(':nth-child(-n)') is ":nth-child(-n)"
PASS setThenReadSelectorText(':nth-child(5)') is ":nth-child(5)"
PASS setThenReadSelectorText(':nth-child(-5)') is ":nth-child(-5)"
PASS setThenReadSelectorText(':nth-child(5n+7)') is ":nth-child(5n+7)"
PASS setThenReadSelectorText(':nth-child(-5n+7)') is ":nth-child(-5n+7)"
PASS setThenReadSelectorText(':nth-child(5n-7)') is ":nth-child(5n-7)"
PASS setThenReadSelectorText(':nth-child(-5n-7)') is ":nth-child(-5n-7)"
PASS setThenReadSelectorText(':nth-child(odd of .foo, :nth-child(odd))') is ":nth-child(2n+1 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(even of .foo, :nth-child(odd))') is ":nth-child(2n of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(n of .foo, :nth-child(odd))') is ":nth-child(n of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(-n of .foo, :nth-child(odd))') is ":nth-child(-n of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(5 of .foo, :nth-child(odd))') is ":nth-child(5 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(-5 of .foo, :nth-child(odd))') is ":nth-child(-5 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(5n+7 of .foo, :nth-child(odd))') is ":nth-child(5n+7 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(-5n+7 of .foo, :nth-child(odd))') is ":nth-child(-5n+7 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(5n-7 of .foo, :nth-child(odd))') is ":nth-child(5n-7 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-child(-5n-7 of .foo, :nth-child(odd))') is ":nth-child(-5n-7 of .foo, :nth-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(odd of .foo, :nth-last-child(odd))') is ":nth-last-child(2n+1 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(even of .foo, :nth-last-child(odd))') is ":nth-last-child(2n of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(n of .foo, :nth-last-child(odd))') is ":nth-last-child(n of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(-n of .foo, :nth-last-child(odd))') is ":nth-last-child(-n of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(5 of .foo, :nth-last-child(odd))') is ":nth-last-child(5 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(-5 of .foo, :nth-last-child(odd))') is ":nth-last-child(-5 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(5n+7 of .foo, :nth-last-child(odd))') is ":nth-last-child(5n+7 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(-5n+7 of .foo, :nth-last-child(odd))') is ":nth-last-child(-5n+7 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(5n-7 of .foo, :nth-last-child(odd))') is ":nth-last-child(5n-7 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':nth-last-child(-5n-7 of .foo, :nth-last-child(odd))') is ":nth-last-child(-5n-7 of .foo, :nth-last-child(2n+1))"
PASS setThenReadSelectorText(':is(single)') is ":is(single)"
PASS setThenReadSelectorText(':is(a, b, p)') is ":is(a, b, p)"
PASS setThenReadSelectorText(':is(#alice, #bob, #chris)') is ":is(#alice, #bob, #chris)"
PASS setThenReadSelectorText(':is(.selector, #tama, #hanayo, #midoriko)') is ":is(.selector, #tama, #hanayo, #midoriko)"
PASS setThenReadSelectorText(':is(.name, #ok, :visited)') is ":is(.name, #ok, :visited)"
PASS setThenReadSelectorText(':is(.name, #ok, :visited, :link)') is ":is(.name, #ok, :visited, :link)"
PASS setThenReadSelectorText(':is(.name, #ok, :is(:visited))') is ":is(.name, #ok, :is(:visited))"
PASS setThenReadSelectorText(':is(.name, #ok, :not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':is(.name, #ok, :not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':is(.name, #ok, :-webkit-any(hello))') is ":is(.name, #ok, :-webkit-any(hello))"
PASS setThenReadSelectorText(':is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))') is ":is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':is([type="file"])') is ":is([type=\"file\"])"
PASS setThenReadSelectorText(':is(:hover)') is ":is(:hover)"
PASS setThenReadSelectorText('input:is([type="file"], :hover, :focus):enabled') is "input:is([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':is(input[type="file"], a:hover, button:focus)') is ":is(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':is(.class1.class2.class3)') is ":is(.class1.class2.class3)"
PASS setThenReadSelectorText(':is(.class1:hover)') is ":is(.class1:hover)"
PASS setThenReadSelectorText(':is(a.class1.class2.class3:hover)') is ":is(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText(':where(single)') is ":where(single)"
PASS setThenReadSelectorText(':where(a, b, p)') is ":where(a, b, p)"
PASS setThenReadSelectorText(':where(#alice, #bob, #chris)') is ":where(#alice, #bob, #chris)"
PASS setThenReadSelectorText(':where(.selector, #tama, #hanayo, #midoriko)') is ":where(.selector, #tama, #hanayo, #midoriko)"
PASS setThenReadSelectorText(':where(.name, #ok, :visited)') is ":where(.name, #ok, :visited)"
PASS setThenReadSelectorText(':where(.name, #ok, :visited, :link)') is ":where(.name, #ok, :visited, :link)"
PASS setThenReadSelectorText(':where(.name, #ok, :where(:visited))') is ":where(.name, #ok, :where(:visited))"
PASS setThenReadSelectorText(':where(.name, #ok, :not(:link))') is ":where(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':where(.name, #ok, :not(:link))') is ":where(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':where(.name, #ok, :where(hello))') is ":where(.name, #ok, :where(hello))"
PASS setThenReadSelectorText(':where(.name, #ok, :where(.selector, #tama, #hanayo, #midoriko))') is ":where(.name, #ok, :where(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':where([type="file"])') is ":where([type=\"file\"])"
PASS setThenReadSelectorText(':where(:hover)') is ":where(:hover)"
PASS setThenReadSelectorText('input:where([type="file"], :hover, :focus):enabled') is "input:where([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':where(input[type="file"], a:hover, button:focus)') is ":where(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':where(.class1.class2.class3)') is ":where(.class1.class2.class3)"
PASS setThenReadSelectorText(':where(.class1:hover)') is ":where(.class1:hover)"
PASS setThenReadSelectorText(':where(a.class1.class2.class3:hover)') is ":where(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText(':matches(:is(single))') is ":is(:is(single))"
PASS setThenReadSelectorText(':matches(:is(a, b, p))') is ":is(:is(a, b, p))"
PASS setThenReadSelectorText(':matches(:is(#alice, #bob, #chris))') is ":is(:is(#alice, #bob, #chris))"
PASS setThenReadSelectorText(':matches(:is(.selector, #tama, #hanayo, #midoriko))') is ":is(:is(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :visited))') is ":is(:is(.name, #ok, :visited))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :visited, :link))') is ":is(:is(.name, #ok, :visited, :link))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :is(:visited)))') is ":is(:is(.name, #ok, :is(:visited)))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :not(:link)))') is ":is(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :not(:link)))') is ":is(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :matches(hello)))') is ":is(:is(.name, #ok, :is(hello)))"
PASS setThenReadSelectorText(':matches(:is(.name, #ok, :matches(.selector, #tama, #hanayo, #midoriko)))') is ":is(:is(.name, #ok, :is(.selector, #tama, #hanayo, #midoriko)))"
PASS setThenReadSelectorText(':matches(:is([type="file"]))') is ":is(:is([type=\"file\"]))"
PASS setThenReadSelectorText(':matches(:is(:hover))') is ":is(:is(:hover))"
PASS setThenReadSelectorText(':matches(input:is([type="file"], :hover, :focus):enabled)') is ":is(input:is([type=\"file\"], :hover, :focus):enabled)"
PASS setThenReadSelectorText(':matches(:is(input[type="file"], a:hover, button:focus))') is ":is(:is(input[type=\"file\"], a:hover, button:focus))"
PASS setThenReadSelectorText(':matches(:is(.class1.class2.class3))') is ":is(:is(.class1.class2.class3))"
PASS setThenReadSelectorText(':matches(:is(.class1:hover))') is ":is(:is(.class1:hover))"
PASS setThenReadSelectorText(':matches(:is(a.class1.class2.class3:hover))') is ":is(:is(a.class1.class2.class3:hover))"
PASS setThenReadSelectorText(':-webkit-any(:is(single))') is ":-webkit-any(:is(single))"
PASS setThenReadSelectorText(':-webkit-any(:is(a, b, p))') is ":-webkit-any(:is(a, b, p))"
PASS setThenReadSelectorText(':-webkit-any(:is(#alice, #bob, #chris))') is ":-webkit-any(:is(#alice, #bob, #chris))"
PASS setThenReadSelectorText(':-webkit-any(:is(.selector, #tama, #hanayo, #midoriko))') is ":-webkit-any(:is(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :visited))') is ":-webkit-any(:is(.name, #ok, :visited))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :visited, :link))') is ":-webkit-any(:is(.name, #ok, :visited, :link))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :is(:visited)))') is ":-webkit-any(:is(.name, #ok, :is(:visited)))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :not(:link)))') is ":-webkit-any(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :not(:link)))') is ":-webkit-any(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :-webkit-any(hello)))') is ":-webkit-any(:is(.name, #ok, :-webkit-any(hello)))"
PASS setThenReadSelectorText(':-webkit-any(:is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)))') is ":-webkit-any(:is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)))"
PASS setThenReadSelectorText(':-webkit-any(:is([type="file"]))') is ":-webkit-any(:is([type=\"file\"]))"
PASS setThenReadSelectorText(':-webkit-any(:is(:hover))') is ":-webkit-any(:is(:hover))"
PASS setThenReadSelectorText(':-webkit-any(input:is([type="file"], :hover, :focus):enabled)') is ":-webkit-any(input:is([type=\"file\"], :hover, :focus):enabled)"
PASS setThenReadSelectorText(':-webkit-any(:is(input[type="file"], a:hover, button:focus))') is ":-webkit-any(:is(input[type=\"file\"], a:hover, button:focus))"
PASS setThenReadSelectorText(':-webkit-any(:is(.class1.class2.class3))') is ":-webkit-any(:is(.class1.class2.class3))"
PASS setThenReadSelectorText(':-webkit-any(:is(.class1:hover))') is ":-webkit-any(:is(.class1:hover))"
PASS setThenReadSelectorText(':-webkit-any(:is(a.class1.class2.class3:hover))') is ":-webkit-any(:is(a.class1.class2.class3:hover))"
PASS setThenReadSelectorText(':matches(single)') is ":is(single)"
PASS setThenReadSelectorText(':matches(a, b, p)') is ":is(a, b, p)"
PASS setThenReadSelectorText(':matches(#alice, #bob, #chris)') is ":is(#alice, #bob, #chris)"
PASS setThenReadSelectorText(':matches(.selector, #tama, #hanayo, #midoriko)') is ":is(.selector, #tama, #hanayo, #midoriko)"
PASS setThenReadSelectorText(':matches(.name, #ok, :visited)') is ":is(.name, #ok, :visited)"
PASS setThenReadSelectorText(':matches(.name, #ok, :visited, :link)') is ":is(.name, #ok, :visited, :link)"
PASS setThenReadSelectorText(':matches(.name, #ok, :matches(:visited))') is ":is(.name, #ok, :is(:visited))"
PASS setThenReadSelectorText(':matches(.name, #ok, :not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':matches(.name, #ok, :not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':matches(.name, #ok, :-webkit-any(hello))') is ":is(.name, #ok, :-webkit-any(hello))"
PASS setThenReadSelectorText(':matches(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))') is ":is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':matches([type="file"])') is ":is([type=\"file\"])"
PASS setThenReadSelectorText(':matches(:hover)') is ":is(:hover)"
PASS setThenReadSelectorText('input:matches([type="file"], :hover, :focus):enabled') is "input:is([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':matches(input[type="file"], a:hover, button:focus)') is ":is(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':matches(.class1.class2.class3)') is ":is(.class1.class2.class3)"
PASS setThenReadSelectorText(':matches(.class1:hover)') is ":is(.class1:hover)"
PASS setThenReadSelectorText(':matches(a.class1.class2.class3:hover)') is ":is(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText(':is(:matches(single))') is ":is(:is(single))"
PASS setThenReadSelectorText(':is(:matches(a, b, p))') is ":is(:is(a, b, p))"
PASS setThenReadSelectorText(':is(:matches(#alice, #bob, #chris))') is ":is(:is(#alice, #bob, #chris))"
PASS setThenReadSelectorText(':is(:matches(.selector, #tama, #hanayo, #midoriko))') is ":is(:is(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :visited))') is ":is(:is(.name, #ok, :visited))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :visited, :link))') is ":is(:is(.name, #ok, :visited, :link))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :matches(:visited)))') is ":is(:is(.name, #ok, :is(:visited)))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :not(:link)))') is ":is(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :not(:link)))') is ":is(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :is(hello)))') is ":is(:is(.name, #ok, :is(hello)))"
PASS setThenReadSelectorText(':is(:matches(.name, #ok, :is(.selector, #tama, #hanayo, #midoriko)))') is ":is(:is(.name, #ok, :is(.selector, #tama, #hanayo, #midoriko)))"
PASS setThenReadSelectorText(':is(:matches([type="file"]))') is ":is(:is([type=\"file\"]))"
PASS setThenReadSelectorText(':is(:matches(:hover))') is ":is(:is(:hover))"
PASS setThenReadSelectorText(':is(input:matches([type="file"], :hover, :focus):enabled)') is ":is(input:is([type=\"file\"], :hover, :focus):enabled)"
PASS setThenReadSelectorText(':is(:matches(input[type="file"], a:hover, button:focus))') is ":is(:is(input[type=\"file\"], a:hover, button:focus))"
PASS setThenReadSelectorText(':is(:matches(.class1.class2.class3))') is ":is(:is(.class1.class2.class3))"
PASS setThenReadSelectorText(':is(:matches(.class1:hover))') is ":is(:is(.class1:hover))"
PASS setThenReadSelectorText(':is(:matches(a.class1.class2.class3:hover))') is ":is(:is(a.class1.class2.class3:hover))"
PASS setThenReadSelectorText(':-webkit-any(:matches(single))') is ":-webkit-any(:is(single))"
PASS setThenReadSelectorText(':-webkit-any(:matches(a, b, p))') is ":-webkit-any(:is(a, b, p))"
PASS setThenReadSelectorText(':-webkit-any(:matches(#alice, #bob, #chris))') is ":-webkit-any(:is(#alice, #bob, #chris))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.selector, #tama, #hanayo, #midoriko))') is ":-webkit-any(:is(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :visited))') is ":-webkit-any(:is(.name, #ok, :visited))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :visited, :link))') is ":-webkit-any(:is(.name, #ok, :visited, :link))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :matches(:visited)))') is ":-webkit-any(:is(.name, #ok, :is(:visited)))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :not(:link)))') is ":-webkit-any(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :not(:link)))') is ":-webkit-any(:is(.name, #ok, :not(:link)))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :-webkit-any(hello)))') is ":-webkit-any(:is(.name, #ok, :-webkit-any(hello)))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)))') is ":-webkit-any(:is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)))"
PASS setThenReadSelectorText(':-webkit-any(:matches([type="file"]))') is ":-webkit-any(:is([type=\"file\"]))"
PASS setThenReadSelectorText(':-webkit-any(:matches(:hover))') is ":-webkit-any(:is(:hover))"
PASS setThenReadSelectorText(':-webkit-any(input:matches([type="file"], :hover, :focus):enabled)') is ":-webkit-any(input:is([type=\"file\"], :hover, :focus):enabled)"
PASS setThenReadSelectorText(':-webkit-any(:matches(input[type="file"], a:hover, button:focus))') is ":-webkit-any(:is(input[type=\"file\"], a:hover, button:focus))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.class1.class2.class3))') is ":-webkit-any(:is(.class1.class2.class3))"
PASS setThenReadSelectorText(':-webkit-any(:matches(.class1:hover))') is ":-webkit-any(:is(.class1:hover))"
PASS setThenReadSelectorText(':-webkit-any(:matches(a.class1.class2.class3:hover))') is ":-webkit-any(:is(a.class1.class2.class3:hover))"
PASS setThenReadSelectorText(':not(div)') is ":not(div)"
PASS setThenReadSelectorText(':not(.div)') is ":not(.div)"
PASS setThenReadSelectorText(':not(#div)') is ":not(#div)"
PASS setThenReadSelectorText(':not([div])') is ":not([div])"
PASS setThenReadSelectorText(':not(:empty)') is ":not(:empty)"
PASS setThenReadSelectorText(':not(div.div#div[div]:empty)') is ":not(div.div#div[div]:empty)"
PASS setThenReadSelectorText(':not(div.div:empty[div]#div)') is ":not(div.div:empty[div]#div)"
PASS setThenReadSelectorText(':not(div.div, #div[div], :empty)') is ":not(div.div, #div[div], :empty)"
PASS setThenReadSelectorText(':not(div, .div, #div, [div], :empty)') is ":not(div, .div, #div, [div], :empty)"
PASS setThenReadSelectorText(':not(:not(div))') is ":not(:not(div))"
PASS setThenReadSelectorText(':not(:not(div)):not(:not(foo)):not(:not(bar))') is ":not(:not(div)):not(:not(foo)):not(:not(bar))"
PASS setThenReadSelectorText(':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))') is ":not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))"
PASS setThenReadSelectorText(':not(:is(*))') is ":not(:is(*))"
PASS setThenReadSelectorText(':not(:is(foo, bar))') is ":not(:is(foo, bar))"
PASS setThenReadSelectorText(':not(:is(foo, bar), :is(.foo, .bar), :is(#foo, #bar), :is([foo], [bar]))') is ":not(:is(foo, bar), :is(.foo, .bar), :is(#foo, #bar), :is([foo], [bar]))"
PASS setThenReadSelectorText(':not(:is(foo, bar:not(:empty)), :is(.foo, .bar:not(:not(.mosaic))), :is(#foo, #bar), :is([foo], [bar]))') is ":not(:is(foo, bar:not(:empty)), :is(.foo, .bar:not(:not(.mosaic))), :is(#foo, #bar), :is([foo], [bar]))"
PASS setThenReadSelectorText(':not(:matches(*))') is ":not(:is(*))"
PASS setThenReadSelectorText(':not(:matches(foo, bar))') is ":not(:is(foo, bar))"
PASS setThenReadSelectorText(':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar]))') is ":not(:is(foo, bar), :is(.foo, .bar), :is(#foo, #bar), :is([foo], [bar]))"
PASS setThenReadSelectorText(':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar]))') is ":not(:is(foo, bar:not(:empty)), :is(.foo, .bar:not(:not(.mosaic))), :is(#foo, #bar), :is([foo], [bar]))"
PASS setThenReadSelectorText(':nth-child(2n of :not(a.b, c#d.e))') is ":nth-child(2n of :not(a.b, c#d.e))"
PASS setThenReadSelectorText(':not(:nth-child(2n of :not(a.b, c#d.e)))') is ":not(:nth-child(2n of :not(a.b, c#d.e)))"
PASS setThenReadSelectorText(':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)') is ":not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)"
PASS setThenReadSelectorText('a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)') is "a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)"
PASS setThenReadSelectorText('::-webkit-file-upload-button') is "::file-selector-button"
PASS setThenReadSelectorText('::-webkit-search-cancel-button') is "::-webkit-search-cancel-button"
PASS setThenReadSelectorText('::-webkit-search-decoration') is "::-webkit-search-decoration"
PASS setThenReadSelectorText('::-webkit-search-results-button') is "::-webkit-search-results-button"
PASS setThenReadSelectorText('::-webkit-search-results-decoration') is "::-webkit-search-results-decoration"
PASS setThenReadSelectorText('::-webkit-slider-thumb') is "::-webkit-slider-thumb"
PASS setThenReadSelectorText('a::-webkit-slider-thumb') is "a::-webkit-slider-thumb"
PASS setThenReadSelectorText('a ::-webkit-slider-thumb') is "a ::-webkit-slider-thumb"
PASS setThenReadSelectorText('[a]::-webkit-slider-thumb') is "[a]::-webkit-slider-thumb"
PASS setThenReadSelectorText('[a] ::-webkit-slider-thumb') is "[a] ::-webkit-slider-thumb"
PASS setThenReadSelectorText('.a::-webkit-slider-thumb') is ".a::-webkit-slider-thumb"
PASS setThenReadSelectorText('.a ::-webkit-slider-thumb') is ".a ::-webkit-slider-thumb"
PASS setThenReadSelectorText('#a::-webkit-slider-thumb') is "#a::-webkit-slider-thumb"
PASS setThenReadSelectorText('#a ::-webkit-slider-thumb') is "#a ::-webkit-slider-thumb"
PASS setThenReadSelectorText('* ::-webkit-slider-thumb') is "* ::-webkit-slider-thumb"
PASS setThenReadSelectorText('a[b]::-webkit-slider-thumb') is "a[b]::-webkit-slider-thumb"
PASS setThenReadSelectorText('a.b::-webkit-slider-thumb') is "a.b::-webkit-slider-thumb"
PASS setThenReadSelectorText('a#b::-webkit-slider-thumb') is "a#b::-webkit-slider-thumb"
PASS setThenReadSelectorText('a[b].c#d::-webkit-slider-thumb') is "a[b].c#d::-webkit-slider-thumb"
PASS setThenReadSelectorText('a[b]::placeholder') is "a[b]::placeholder"
PASS setThenReadSelectorText('a.b::placeholder') is "a.b::placeholder"
PASS setThenReadSelectorText('a#b::placeholder') is "a#b::placeholder"
PASS setThenReadSelectorText('a[b].c#d::placeholder') is "a[b].c#d::placeholder"
PASS setThenReadSelectorText('a[b]::-webkit-input-placeholder') is "a[b]::placeholder"
PASS setThenReadSelectorText('a.b::-webkit-input-placeholder') is "a.b::placeholder"
PASS setThenReadSelectorText('a#b::-webkit-input-placeholder') is "a#b::placeholder"
PASS setThenReadSelectorText('a[b].c#d::-webkit-input-placeholder') is "a[b].c#d::placeholder"
PASS setThenReadSelectorText('a[b]:default') is "a[b]:default"
PASS setThenReadSelectorText('a.b:default') is "a.b:default"
PASS setThenReadSelectorText('a#b:default') is "a#b:default"
PASS setThenReadSelectorText('a[b].c#d:default') is "a[b].c#d:default"
PASS setThenReadSelectorText('a[b]:in-range') is "a[b]:in-range"
PASS setThenReadSelectorText('a.b:in-range') is "a.b:in-range"
PASS setThenReadSelectorText('a#b:in-range') is "a#b:in-range"
PASS setThenReadSelectorText('a[b].c#d:in-range') is "a[b].c#d:in-range"
PASS setThenReadSelectorText('a[b]:out-of-range') is "a[b]:out-of-range"
PASS setThenReadSelectorText('a.b:out-of-range') is "a.b:out-of-range"
PASS setThenReadSelectorText('a#b:out-of-range') is "a#b:out-of-range"
PASS setThenReadSelectorText('a[b].c#d:out-of-range') is "a[b].c#d:out-of-range"
PASS setThenReadSelectorText('a[b]:focus-within') is "a[b]:focus-within"
PASS setThenReadSelectorText('a.b:focus-within') is "a.b:focus-within"
PASS setThenReadSelectorText('a#b:focus-within') is "a#b:focus-within"
PASS setThenReadSelectorText('a[b].c#d:focus-within') is "a[b].c#d:focus-within"
PASS setThenReadSelectorText('input:not([type="file"]):focus') is "input:not([type=\"file\"]):focus"
PASS setThenReadSelectorText(':-webkit-any([type="file"])') is ":-webkit-any([type=\"file\"])"
PASS setThenReadSelectorText(':-webkit-any(:hover)') is ":-webkit-any(:hover)"
PASS setThenReadSelectorText('input:-webkit-any([type="file"], :hover, :focus):enabled') is "input:-webkit-any([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':-webkit-any(input[type="file"], a:hover, button:focus)') is ":-webkit-any(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':-webkit-any(.class1.class2.class3)') is ":-webkit-any(.class1.class2.class3)"
PASS setThenReadSelectorText(':-webkit-any(.class1:hover)') is ":-webkit-any(.class1:hover)"
PASS setThenReadSelectorText(':-webkit-any(a.class1.class2.class3:hover)') is ":-webkit-any(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText('*:active') is ":active"
PASS setThenReadSelectorText('input[type=file]:focus') is "input[type=\"file\"]:focus"
PASS setThenReadSelectorText('a+b') is "a + b"
PASS setThenReadSelectorText('a~b') is "a ~ b"
PASS setThenReadSelectorText('a>b') is "a > b"
PASS setThenReadSelectorText(':after') is "::after"
PASS setThenReadSelectorText(':before') is "::before"
PASS setThenReadSelectorText(':first-letter') is "::first-letter"
PASS setThenReadSelectorText(':first-line') is "::first-line"
PASS setThenReadSelectorText(':-webkit-any( a.class1 , #id,[attr] )') is ":-webkit-any(a.class1, #id, [attr])"
PASS setThenReadSelectorText(':is(single )') is ":is(single)"
PASS setThenReadSelectorText(':is(a,b ,p)') is ":is(a, b, p)"
PASS setThenReadSelectorText(':is(#alice, #bob,#chris)') is ":is(#alice, #bob, #chris)"
PASS setThenReadSelectorText(':is( .selector,#tama, #hanayo,#midoriko)') is ":is(.selector, #tama, #hanayo, #midoriko)"
PASS setThenReadSelectorText(':is( .name,#ok,:visited )') is ":is(.name, #ok, :visited)"
PASS setThenReadSelectorText(':is( .name,#ok, :visited, :link)') is ":is(.name, #ok, :visited, :link)"
PASS setThenReadSelectorText(':is( .name,#ok, :is(:visited ))') is ":is(.name, #ok, :is(:visited))"
PASS setThenReadSelectorText(':is(.name, #ok,:not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':is(.name,#ok,:not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':is( .name,#ok,:-webkit-any( hello))') is ":is(.name, #ok, :-webkit-any(hello))"
PASS setThenReadSelectorText(':is( .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))') is ":is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':is( [type="file"])') is ":is([type=\"file\"])"
PASS setThenReadSelectorText(':is( :hover )') is ":is(:hover)"
PASS setThenReadSelectorText('input:is([type="file"],:hover,:focus):enabled') is "input:is([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':is(input[type="file"], a:hover, button:focus)') is ":is(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':is( .class1.class2.class3 )') is ":is(.class1.class2.class3)"
PASS setThenReadSelectorText(':is(.class1:hover )') is ":is(.class1:hover)"
PASS setThenReadSelectorText(':is(a.class1.class2.class3:hover )') is ":is(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText(':matches(single )') is ":is(single)"
PASS setThenReadSelectorText(':matches(a,b ,p)') is ":is(a, b, p)"
PASS setThenReadSelectorText(':matches(#alice, #bob,#chris)') is ":is(#alice, #bob, #chris)"
PASS setThenReadSelectorText(':matches( .selector,#tama, #hanayo,#midoriko)') is ":is(.selector, #tama, #hanayo, #midoriko)"
PASS setThenReadSelectorText(':matches( .name,#ok,:visited )') is ":is(.name, #ok, :visited)"
PASS setThenReadSelectorText(':matches( .name,#ok, :visited, :link)') is ":is(.name, #ok, :visited, :link)"
PASS setThenReadSelectorText(':matches( .name,#ok, :matches(:visited ))') is ":is(.name, #ok, :is(:visited))"
PASS setThenReadSelectorText(':matches(.name, #ok,:not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':matches(.name,#ok,:not(:link))') is ":is(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':matches( .name,#ok,:-webkit-any( hello))') is ":is(.name, #ok, :-webkit-any(hello))"
PASS setThenReadSelectorText(':matches( .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))') is ":is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':matches( [type="file"])') is ":is([type=\"file\"])"
PASS setThenReadSelectorText(':matches( :hover )') is ":is(:hover)"
PASS setThenReadSelectorText('input:matches([type="file"],:hover,:focus):enabled') is "input:is([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':matches(input[type="file"], a:hover, button:focus)') is ":is(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':matches( .class1.class2.class3 )') is ":is(.class1.class2.class3)"
PASS setThenReadSelectorText(':matches(.class1:hover )') is ":is(.class1:hover)"
PASS setThenReadSelectorText(':matches(a.class1.class2.class3:hover )') is ":is(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText(':not(single )') is ":not(single)"
PASS setThenReadSelectorText(':not(a,b ,p)') is ":not(a, b, p)"
PASS setThenReadSelectorText(':not(#alice, #bob,#chris)') is ":not(#alice, #bob, #chris)"
PASS setThenReadSelectorText(':not( .selector,#tama, #hanayo,#midoriko)') is ":not(.selector, #tama, #hanayo, #midoriko)"
PASS setThenReadSelectorText(':not( .name,#ok,:visited )') is ":not(.name, #ok, :visited)"
PASS setThenReadSelectorText(':not( .name,#ok, :visited, :link)') is ":not(.name, #ok, :visited, :link)"
PASS setThenReadSelectorText(':not( .name,#ok, :not(:visited ))') is ":not(.name, #ok, :not(:visited))"
PASS setThenReadSelectorText(':not(.name, #ok,:not(:link))') is ":not(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':not(.name,#ok,:not(:link))') is ":not(.name, #ok, :not(:link))"
PASS setThenReadSelectorText(':not( .name,#ok,:-webkit-any( hello))') is ":not(.name, #ok, :-webkit-any(hello))"
PASS setThenReadSelectorText(':not( .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))') is ":not(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))"
PASS setThenReadSelectorText(':not( [type="file"])') is ":not([type=\"file\"])"
PASS setThenReadSelectorText(':not( :hover )') is ":not(:hover)"
PASS setThenReadSelectorText('input:not([type="file"],:hover,:focus):enabled') is "input:not([type=\"file\"], :hover, :focus):enabled"
PASS setThenReadSelectorText(':not(input[type="file"], a:hover, button:focus)') is ":not(input[type=\"file\"], a:hover, button:focus)"
PASS setThenReadSelectorText(':not( .class1.class2.class3 )') is ":not(.class1.class2.class3)"
PASS setThenReadSelectorText(':not(.class1:hover )') is ":not(.class1:hover)"
PASS setThenReadSelectorText(':not(a.class1.class2.class3:hover )') is ":not(a.class1.class2.class3:hover)"
PASS setThenReadSelectorText(':not(:is(single ),:is(a,b ,p),:is(#alice, #bob,#chris))') is ":not(:is(single), :is(a, b, p), :is(#alice, #bob, #chris))"
PASS setThenReadSelectorText(':not(:matches(single ),:matches(a,b ,p),:matches(#alice, #bob,#chris))') is ":not(:is(single), :is(a, b, p), :is(#alice, #bob, #chris))"
PASS successfullyParsed is true
TEST COMPLETE