servo/tests/wpt/meta/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini
Oriol Brufau 963104e5fc
Run same tests for layout-2020 and layout-2013 (#30092)
Most tests were only being run for layout-2013, not for layout-2020.
This wasn't great since layout-2020 is now the default.

So this patch unifies the lists of included tests for both layouts.
For layout-2013 this implies adding css/css-content/, css/css-logical/
and css/css-masking/clip/.
For layout-2020 this implies adding several additional css tests, and
also tests like dom/, js/, html/, etc.
2023-08-15 00:28:32 +00:00

1008 lines
58 KiB
INI
Vendored

[is-pseudo-containing-complex-in-has.html]
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('red') : check matches (false)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check matches (true)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check #has_scope color]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.remove('a_has_scope') : check matches (false)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check matches (true)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check #has_scope color]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.remove('a_has_scope') : check matches (false)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check matches (true)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check #has_scope color]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.remove('a_has_scope') : check matches (false)]
expected: FAIL
[[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.remove('red') : check matches (false)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('orangered') : check matches (false)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check matches (true)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check #descendant color]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.remove('a_descendant') : check matches (false)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check matches (true)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check #descendant color]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.remove('a_descendant') : check matches (false)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check matches (true)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check #descendant color]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.remove('a_descendant') : check matches (false)]
expected: FAIL
[[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.remove('orangered') : check matches (false)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('darkred') : check matches (false)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check matches (true)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.remove('a_indirect_next') : check matches (false)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check matches (true)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('a_indirect_next') : check matches (false)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check matches (true)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.remove('a_indirect_next') : check matches (false)]
expected: FAIL
[[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('darkred') : check matches (false)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('pink') : check matches (false)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('a_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('a_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.remove('a_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('pink') : check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.add('green') : check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (removal) check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.remove('c_has_scope') : check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (insertion) check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (removal) check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.remove('c_has_scope') : check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (insertion) check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.remove('c_has_scope') : check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check #has_scope color]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (removal) check matches (false)]
expected: FAIL
[[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.remove('green') : check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.add('lightgreen') : check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.remove('c_descendant') : check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (insertion) check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (removal) check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.remove('c_descendant') : check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (insertion) check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (removal) check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (removal) check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.remove('c_descendant') : check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (insertion) check #descendant color]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (removal) check matches (false)]
expected: FAIL
[[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.remove('lightgreen') : check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.add('darkgreen') : check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.remove('c_indirect_next') : check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (insertion) check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.remove('c_indirect_next') : check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (insertion) check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.remove('c_indirect_next') : check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check #indirect_next color]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (removal) check matches (false)]
expected: FAIL
[[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.remove('darkgreen') : check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('yellowgreen') : check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('c_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('c_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (insertion) check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.remove('c_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check #indirect_next_child color]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (removal) check matches (false)]
expected: FAIL
[[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('yellowgreen') : check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('blue') : check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (removal) check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.remove('f_has_scope') : check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('f_has_scope') : check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (removal) check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.remove('f_has_scope') : check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check matches (true)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check #has_scope color]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (removal) check matches (false)]
expected: FAIL
[[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('blue') : check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('skyblue') : check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (removal) check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.remove('f_descendant') : check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('f_descendant') : check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (removal) check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.remove('f_descendant') : check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check matches (true)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check #descendant color]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (removal) check matches (false)]
expected: FAIL
[[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('skyblue') : check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('lightblue') : check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.remove('f_indirect_next') : check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('f_indirect_next') : check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.remove('f_indirect_next') : check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check matches (true)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check #indirect_next color]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (removal) check matches (false)]
expected: FAIL
[[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('lightblue') : check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('darkblue') : check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('f_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (removal) check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('f_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.remove('f_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check matches (true)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check #indirect_next_child color]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (removal) check matches (false)]
expected: FAIL
[[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('darkblue') : check matches (false)]
expected: FAIL
[[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #has_scope.classList.add('yellow') : check matches (false)]
expected: FAIL
[[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check matches (true)]
expected: FAIL
[[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check #has_scope color]
expected: FAIL
[[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.remove('h_has_scope') : check matches (false)]
expected: FAIL
[[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #has_scope.classList.remove('yellow') : check matches (false)]
expected: FAIL
[[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #has_scope.classList.add('ivory') : check matches (false)]
expected: FAIL
[[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check matches (true)]
expected: FAIL
[[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check #descendant color]
expected: FAIL
[[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.remove('h_descendant') : check matches (false)]
expected: FAIL
[[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #has_scope.classList.remove('ivory') : check matches (false)]
expected: FAIL
[[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.add('greenyellow') : check matches (false)]
expected: FAIL
[[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check matches (true)]
expected: FAIL
[[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.remove('h_indirect_next') : check matches (false)]
expected: FAIL
[[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.remove('greenyellow') : check matches (false)]
expected: FAIL
[[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('khaki') : check matches (false)]
expected: FAIL
[[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('h_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('khaki') : check matches (false)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.add('purple') : check matches (false)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check matches (true)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check #has_scope color]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check #has_scope color]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.remove('j_has_scope') : check matches (false)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check #has_scope color]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.remove('purple') : check matches (false)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.add('violet') : check matches (false)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check matches (true)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check #descendant color]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check #descendant color]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.remove('j_descendant') : check matches (false)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check #descendant color]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.remove('violet') : check matches (false)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.add('orchid') : check matches (false)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check matches (true)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check #indirect_next color]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next color]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.remove('j_indirect_next') : check matches (false)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check #indirect_next color]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.remove('orchid') : check matches (false)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('plum') : check matches (false)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check matches (true)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check #indirect_next_child color]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child color]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('j_indirect_next_child') : check matches (false)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check matches (true)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child color]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check matches (false)]
expected: FAIL
[[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('plum') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('orange') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('m') : check matches (true)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('m') : check #has_scope color]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.remove('m') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('n') : check matches (true)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('n') : check #has_scope color]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.remove('n') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('m') : check matches (true)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('m') : check #has_scope color]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.remove('m') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('n') : check matches (true)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('n') : check #has_scope color]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.remove('n') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('m') : check matches (true)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('m') : check #has_scope color]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.remove('m') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('n') : check matches (true)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('n') : check #has_scope color]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.remove('n') : check matches (false)]
expected: FAIL
[[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.remove('orange') : check matches (false)]
expected: FAIL