Verify the nth-child() pseudo class matcher always test for the parent element. Some :nth-child pseudo selectors can skip counting the siblings, but they should never skip the parent check.

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


PASS document.querySelectorAll("html:nth-child(1)").length is 0
PASS document.querySelectorAll("html:nth-child(n)").length is 0
PASS document.querySelectorAll("html:nth-child(n+1)").length is 0
PASS document.querySelectorAll(":root:nth-child(1)").length is 0
PASS document.querySelectorAll(":root:nth-child(n)").length is 0
PASS document.querySelectorAll(":root:nth-child(n+1)").length is 0
PASS getComputedStyle(document.documentElement).backgroundColor is "rgb(255, 255, 255)"
PASS document.querySelectorAll("svg:root").length is 0
PASS document.querySelectorAll("svg:nth-child(1)").length is 1
PASS document.querySelectorAll("svg:nth-child(n)").length is 1
PASS getComputedStyle(document.querySelector("svg")).backgroundColor is "rgb(1, 2, 3)"
PASS successfullyParsed is true

TEST COMPLETE

