Some rules modify tree properties on matching. This test the robustness of complex selectors of that type for attribute value matching that requires case insensitive match.

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


Adjacent relations (tree modifiers), no descendant backtracking, multi-attribute match.
PASS getComputedStyle(document.getElementById("target1")).backgroundColor is "rgb(1, 2, 3)"
PASS getComputedStyle(document.querySelectorAll("[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling] ol>li")[0]).backgroundColor is "rgb(1, 2, 3)"

Adjacent relations (tree modifiers), deep descendant backtracking, multi-attribute match.
PASS getComputedStyle(document.getElementById("target2")).backgroundColor is "rgb(4, 5, 6)"
PASS getComputedStyle(document.querySelectorAll("[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling] div>ol>li span")[0]).backgroundColor is "rgb(4, 5, 6)"

Adjacent relations (tree modifiers) in deep descendant backtracking, multi-attribute match.
PASS getComputedStyle(document.getElementById("target1")).color is "rgb(1, 2, 3)"
PASS getComputedStyle(document.querySelectorAll("div[style='display:none']>[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling]>div ol>li")[0]).color is "rgb(1, 2, 3)"

Adjacent backtracking, deep descendant backtracking, multi-attribute match.
PASS getComputedStyle(document.getElementById("target2")).backgroundColor is "rgb(4, 5, 6)"
PASS getComputedStyle(document.querySelectorAll("div[style='display:none']>[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling]>div>ol span")[0]).backgroundColor is "rgb(4, 5, 6)"
PASS successfullyParsed is true

TEST COMPLETE

