78 lines
4.4 KiB
HTML
78 lines
4.4 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<style>
|
|
li+li+:nth-child(-5n+7)+li+li+li~li+li+li~li {
|
|
color:rgb(4, 5, 6);
|
|
}
|
|
ul>[foo=bar]:nth-child(-3n+3)+li+li+li~li+li+li~li>span.first>span.second a {
|
|
background-color:rgb(1,2,3);
|
|
}
|
|
ul>:nth-child(-3n+3)>*>* a {
|
|
opacity: 0.5;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div>
|
|
<ul style="display:none">
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
<li foo=bar><span class="first"><span class="second"><span><a href="http://www.webkit.org">WebKit!</a></span></span></span></li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
<script>
|
|
|
|
description('Test nth-child inside deep backtracking.');
|
|
|
|
// Nth-child inside two adjacent backtracking chains.
|
|
shouldBe('document.querySelectorAll("li+li+:nth-child(-5n+7)+li+li+li~li+li+li~li").length', '7');
|
|
var allItems = document.querySelectorAll('li');
|
|
shouldBe('allItems.length', '20');
|
|
var coloredItems = 0;
|
|
for (var i = 0; i < allItems.length; ++i) {
|
|
if (getComputedStyle(allItems[i]).color === 'rgb(4, 5, 6)')
|
|
coloredItems++;
|
|
}
|
|
shouldBe('coloredItems', '7');
|
|
|
|
// Nth-child inside two adjacent backtracking chains, inside one descendant backtracking chain.
|
|
shouldBe('document.querySelectorAll("ul>[foo=bar]:nth-child(-3n+3)+li+li+li~li+li+li~li>span.first>span.second a").length', '11');
|
|
var allLinks = document.querySelectorAll('a');
|
|
shouldBe('allLinks.length', '20');
|
|
var backgroundColoredCount = 0;
|
|
var nonOpaqueCount = 0;
|
|
for (var i = 0; i < allLinks.length; ++i) {
|
|
var computedStyle = getComputedStyle(allLinks[i]);
|
|
if (computedStyle.backgroundColor === 'rgb(1, 2, 3)')
|
|
backgroundColoredCount++;
|
|
if (computedStyle.opacity === '0.5')
|
|
++nonOpaqueCount;
|
|
}
|
|
shouldBe('backgroundColoredCount', '11');
|
|
|
|
shouldBe('document.querySelectorAll("ul>:nth-child(-3n+3)>*>* a").length', '1');
|
|
shouldBe('nonOpaqueCount', '1');
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</html>
|