<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
<style>
span.c1:nth-of-type(2n -1){ color: red; }
span.c1:nth-of-type(2n){ color: green; }
span.c2:nth-of-type(odd){ color: red; }
span.c2:nth-of-type(even){ color: green; }
span.c3:nth-of-type(n3){ color: red; }
span.c3:nth-of-type(foo){ color: green; }
span.c4:nth-of-type(2n3){ color: red; }
span.c4:nth-of-type(foon + bar ){ color: green; }
</style>
</head>
<body>
<p id="description"></p>
debug("These spans should alternate red and green");
<div id="test1"></div>
debug("These spans should alternate red and green");
<div id="test2"></div>
debug("These spans should be black");
<div id="test3"></div>
debug("These spans should be black");
<div id="test4"></div>
<br>
<script>
var i=1;
for(; i < 5; i++) {
var str = "";
var j=1;
for (; j < 9; j++) {
str += '<span class="c' + i + '" id="span' + i + j + '"> span </span>';
}
document.getElementById("test"+i).innerHTML = str;
}
</script>
<div id="console"></div>
<script>
description('This test passes if the nth-of-type can accept a parameter that is an+b, odd or even. But it does not accept any other parameter.');
el = document.querySelector("span.c1:nth-of-type(2n -1)");
shouldBe("document.defaultView.getComputedStyle(el, null).getPropertyValue('color')", "'rgb(255, 0, 0)'");
el = document.querySelector("span.c1:nth-of-type(2n)");
shouldBe("document.defaultView.getComputedStyle(el, null).getPropertyValue('color')", "'rgb(0, 128, 0)'");
el = document.querySelector("span.c2:nth-of-type(odd)");
shouldBe("document.defaultView.getComputedStyle(el, null).getPropertyValue('color')", "'rgb(255, 0, 0)'");
el = document.querySelector("span.c2:nth-of-type(even)");
shouldBe("document.defaultView.getComputedStyle(el, null).getPropertyValue('color')", "'rgb(0, 128, 0)'");
shouldThrow('document.querySelector("span.c3:nth-of-type(n3)")', '"SyntaxError: Failed to execute \'querySelector\' on \'Document\': \'span.c3:nth-of-type(n3)\' is not a valid selector."');
shouldThrow('document.querySelector("span.c3:nth-of-type(foo)")', '"SyntaxError: Failed to execute \'querySelector\' on \'Document\': \'span.c3:nth-of-type(foo)\' is not a valid selector."');
shouldThrow('document.querySelector("span.c3:nth-of-type(2n3)")', '"SyntaxError: Failed to execute \'querySelector\' on \'Document\': \'span.c3:nth-of-type(2n3)\' is not a valid selector."');
shouldThrow('document.querySelector("span.c3:nth-of-type(foon + bar)")', '"SyntaxError: Failed to execute \'querySelector\' on \'Document\': \'span.c3:nth-of-type(foon + bar)\' is not a valid selector."');
</script>
</body>
</html>