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