blob: 91cfd727bf11d2b800f3de9eea1031abf370b36c [file] [log] [blame]
<!doctype html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<style>
[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling] ol>li {
background-color:rgb(1,2,3);
}
[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling] div>ol>li span {
background-color:rgb(4,5,6);
}
div[style="display:none"]>[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling]>div ol>li {
color:rgb(1,2,3);
}
div[style="display:none"]>[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling]>div>ol span {
color:rgb(4,5,6);
}
</style>
</head>
<body>
<div style="display:none">
<!-- Mutli-attribute siblings matching. -->
<div charset=First align=Root></div>
<div align=root></div>
<div charset=first></div>
<div charset=Second align=First-sibling></div>
<div charset=second></div>
<div align=first-sibing></div>
<div charset=Third align=Second-sibling>
<div>
<ul>
<li></li>
</ul>
<ol>
<li id=target1><span id=target2></span></li>
</ol>
</div>
</div>
</div>
</body>
<script>
description('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.');
debug("Adjacent relations (tree modifiers), no descendant backtracking, multi-attribute match.");
shouldBeEqualToString('getComputedStyle(document.getElementById("target1")).backgroundColor', 'rgb(1, 2, 3)');
shouldBeEqualToString('getComputedStyle(document.querySelectorAll("[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling] ol>li")[0]).backgroundColor', 'rgb(1, 2, 3)');
debug("<br>Adjacent relations (tree modifiers), deep descendant backtracking, multi-attribute match.");
shouldBeEqualToString('getComputedStyle(document.getElementById("target2")).backgroundColor', 'rgb(4, 5, 6)');
shouldBeEqualToString('getComputedStyle(document.querySelectorAll("[charset=first][align=root]~[charset=second][align=first-sibling]~[charset=third][align=second-sibling] div>ol>li span")[0]).backgroundColor', 'rgb(4, 5, 6)');
debug("<br>Adjacent relations (tree modifiers) in deep descendant backtracking, multi-attribute match.");
shouldBeEqualToString('getComputedStyle(document.getElementById("target1")).color', 'rgb(1, 2, 3)');
shouldBeEqualToString('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', 'rgb(1, 2, 3)');
debug("<br>Adjacent backtracking, deep descendant backtracking, multi-attribute match.");
shouldBeEqualToString('getComputedStyle(document.getElementById("target2")).backgroundColor', 'rgb(4, 5, 6)');
shouldBeEqualToString('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', 'rgb(4, 5, 6)');
</script>
<script src="../../resources/js-test-post.js"></script>
</html>