blob: 07d627e89ab629f39af7c0ca2e1b54637e7725b9 [file] [log] [blame]
Test the parsing of :nth-last-child(of) for querySelector and style on deeply nested pseudo elements.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Test invalid selectors:
selector ':nth-last-child(even of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(even of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(even of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(even of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(even of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(even of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(even of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(even of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(even of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(even of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(even of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(even of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(even of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(even of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(even of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(even of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(odd of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(odd of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(odd of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(odd of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(odd of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(odd of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(odd of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(odd of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(odd of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(odd of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(odd of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(odd of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(odd of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(odd of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(odd of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(odd of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(n of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(n of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(n of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(n of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(n of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(n of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(n of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(n of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(n of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(n of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(n of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(n of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(n of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(n of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(n of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(n of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(-n of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-n of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-n of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-n of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-n of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-n of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-n of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-n of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-n of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-n of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-n of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-n of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-n of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-n of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-n of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(-n of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(3 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(3 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(3 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(3 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(3 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(3 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(3 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(3 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(3 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(3 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(3 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(3 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(3 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(3 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(3 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(3 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(-3 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-3 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-3 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-3 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-3 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-3 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-3 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-3 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-3 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-3 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-3 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-3 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-3 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-3 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-3 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(-3 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(n+0 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(n+0 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(n+0 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(n+0 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(n+0 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(n+0 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(n+0 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(n+0 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(n+0 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(n+0 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(n+0 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(n+0 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(n+0 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(n+0 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(n+0 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(n+0 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(n-0 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(n-0 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(n-0 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(n-0 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(n-0 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(n-0 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(n-0 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(n-0 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(n-0 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(n-0 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(n-0 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(n-0 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(n-0 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(n-0 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(n-0 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(n-0 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(0n of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(0n of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(0n of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(0n of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(0n of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(0n of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(0n of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(0n of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(0n of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(0n of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(0n of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(0n of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(0n of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(0n of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(0n of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(0n of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(3n+5 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(3n+5 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(3n+5 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(3n+5 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(3n+5 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(3n+5 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(3n+5 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(-3n+5 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-3n+5 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(-3n+5 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(3n-5 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(3n-5 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(3n-5 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(3n-5 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(3n-5 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(3n-5 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(3n-5 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
selector ':nth-last-child(-3n-5 of :is(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :matches(a, b, c::after)) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :is(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :matches(a, b, c:after)) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :nth-last-child(2n+1 of d, e, :is(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :nth-last-child(2n+1 of d, e, :matches(f, g, ::before))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :nth-last-child(2n+1 of d, e, :is(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :nth-last-child(2n+1 of d, e, :matches(f, g, :before))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :not(:is(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :not(:matches(a, b, c::after))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :not(:is(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :not(:matches(a, b, c:after))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :is(a, b, :is(c, d, :is(e, f, :is(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :matches(a, b, :matches(c, d, :matches(e, f, :matches(g, h, i::after))))) { }' parsed: YES
selector ':nth-last-child(-3n-5 of :nth-last-child(odd of :nth-last-child(even of j::before))) { }' parsed: NO
selector ':nth-last-child(-3n-5 of :nth-last-child(odd of :nth-last-child(even of j:before))) { }' parsed: NO
PASS successfullyParsed is true
TEST COMPLETE