Test that the style of elements is invalidated correctly when a class changes inside :not() can affect its style. Elements are only invalidate if the class changed affects the style. It is important to account nested selector lists.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 1, 2)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 1, 2)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(3, 4, 5)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(3, 4, 5)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(6, 7, 8)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(6, 7, 8)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(9, 10, 11)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(9, 10, 11)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(12, 13, 14)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(12, 13, 14)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 0, 0)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(0, 1, 2)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(0, 1, 2)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(3, 4, 5)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(3, 4, 5)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(6, 7, 8)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(6, 7, 8)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(9, 10, 11)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(9, 10, 11)"
PASS getComputedStyle(document.querySelectorAll("target")[0]).color is "rgb(12, 13, 14)"
PASS getComputedStyle(document.querySelectorAll("target")[1]).color is "rgb(12, 13, 14)"
PASS successfullyParsed is true

TEST COMPLETE

