blob: 1ac5c9008f1fc92e4172fa98dcf218b6cf932807 [file] [log] [blame]
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.add('red') : check matches (false)
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.add('red') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #parent.classList.add('a') : check matches (true)
PASS [ .red:has(#descendant:is(.a .b)) ] #parent.classList.add('a') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #parent.classList.remove('a') : check matches (false)
PASS [ .red:has(#descendant:is(.a .b)) ] #parent.classList.remove('a') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.add('a') : check matches (true)
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.add('a') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.remove('a') : check matches (false)
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.remove('a') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #child.classList.add('a') : check matches (true)
PASS [ .red:has(#descendant:is(.a .b)) ] #child.classList.add('a') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #child.classList.remove('a') : check matches (false)
PASS [ .red:has(#descendant:is(.a .b)) ] #child.classList.remove('a') : check #has_scope color
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.remove('red') : check matches (false)
PASS [ .red:has(#descendant:is(.a .b)) ] #has_scope.classList.remove('red') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #has_scope.classList.add('green') : check matches (false)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #has_scope.classList.add('green') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #parent_previous.classList.add('c') : check matches (true)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #parent_previous.classList.add('c') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #parent_previous.classList.remove('c') : check matches (false)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #parent_previous.classList.remove('c') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #previous.classList.add('c') : check matches (true)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #previous.classList.add('c') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #previous.classList.remove('c') : check matches (false)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #previous.classList.remove('c') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #child_previous.classList.add('c') : check matches (true)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #child_previous.classList.add('c') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #child_previous.classList.remove('c') : check matches (false)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #child_previous.classList.remove('c') : check #has_scope color
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #has_scope.classList.remove('green') : check matches (false)
PASS [ .green:has(#descendant:is(.c ~ .d .e)) ] #has_scope.classList.remove('green') : check #has_scope color
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.add('blue') : check matches (false)
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.add('blue') : check #has_scope color
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #previous.classList.add('f') : check matches (true)
FAIL [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #previous.classList.add('f') : check #has_scope color assert_equals: expected "rgb(0, 0, 255)" but got "rgb(128, 128, 128)"
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #previous.classList.remove('f') : check matches (false)
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #previous.classList.remove('f') : check #has_scope color
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.add('f') : check matches (true)
FAIL [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.add('f') : check #has_scope color assert_equals: expected "rgb(0, 0, 255)" but got "rgb(128, 128, 128)"
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.remove('f') : check matches (false)
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.remove('f') : check #has_scope color
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #direct_next.classList.add('f') : check matches (true)
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #direct_next.classList.add('f') : check #has_scope color
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #direct_next.classList.remove('f') : check matches (false)
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #direct_next.classList.remove('f') : check #has_scope color
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.remove('blue') : check matches (false)
PASS [ .blue:has(~ #indirect_next:is(.f ~ .g)) ] #has_scope.classList.remove('blue') : check #has_scope color
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #has_scope.classList.add('yellow') : check matches (false)
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #has_scope.classList.add('yellow') : check #has_scope color
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #parent.classList.add('h') : check matches (true)
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #parent.classList.add('h') : check #has_scope color
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #parent.classList.remove('h') : check matches (false)
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #parent.classList.remove('h') : check #has_scope color
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #has_scope.classList.remove('yellow') : check matches (false)
PASS [ .yellow:has(~ #indirect_next:is(.h .i)) ] #has_scope.classList.remove('yellow') : check #has_scope color
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #has_scope.classList.add('purple') : check matches (false)
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #has_scope.classList.add('purple') : check #has_scope color
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #parent_previous.classList.add('j') : check matches (true)
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #parent_previous.classList.add('j') : check #has_scope color
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #parent_previous.classList.remove('j') : check matches (false)
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #parent_previous.classList.remove('j') : check #has_scope color
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #has_scope.classList.remove('purple') : check matches (false)
PASS [ .purple:has(~ #indirect_next:is(.j ~ .k .l)) ] #has_scope.classList.remove('purple') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('orange') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('orange') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('m') : check matches (true)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('m') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('m') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('m') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('n') : check matches (true)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('n') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('n') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('n') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('m') : check matches (true)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('m') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('m') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('m') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('n') : check matches (true)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('n') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('n') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('n') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('m') : check matches (true)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('m') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('m') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('m') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('n') : check matches (true)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('n') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('n') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('n') : check #has_scope color
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('orange') : check matches (false)
PASS [ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('orange') : check #has_scope color