| Index: LayoutTests/fast/selectors/element-closest-general.html
|
| diff --git a/LayoutTests/fast/selectors/element-closest-general.html b/LayoutTests/fast/selectors/element-closest-general.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..92b8add74a232fa1f16ef22a0ae502fa11859d3f
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/selectors/element-closest-general.html
|
| @@ -0,0 +1,105 @@
|
| +<!doctype html>
|
| +<html>
|
| +<head>
|
| +<script src="../../resources/js-test.js"></script>
|
| +<script>
|
| +if (window.testRunner)
|
| + testRunner.dumpAsText();
|
| +</script>
|
| +</head>
|
| +<body>
|
| +
|
| + <tribe>
|
| + <realm>
|
| + <throne></throne>
|
| + <ancestor id="doe" name="young" class="classic">
|
| + <target id="anotherTarget"></target>
|
| + </ancestor>
|
| + </realm>
|
| + <ancestor id="john" name="old" class="classic">
|
| + <sibling id="sibling"></sibling>
|
| + <target id="theTarget" webkit="fast"></target>
|
| + </ancestor>
|
| + </tribe>
|
| +
|
| + <foo>
|
| + <bar>
|
| + <a id="a">
|
| + <b id="b">
|
| + <c id="c">
|
| + <d id="d">
|
| + <e id="e">
|
| + <lemon id="sour"></lemon>
|
| + </e>
|
| + </d>
|
| + </c>
|
| + </b>
|
| + </a>
|
| + </bar>
|
| + </foo>
|
| +</body>
|
| +
|
| +<script>
|
| +description('This test makes sure the closest() API works correctly');
|
| +
|
| +var theTarget = document.getElementById('theTarget');
|
| +var ancestor = document.getElementById('john');
|
| +var sour = document.getElementById('sour');
|
| +var sibling = document.getElementById('sibling');
|
| +var a = document.getElementById('a');
|
| +var b = document.getElementById('b');
|
| +var c = document.getElementById('c');
|
| +var d = document.getElementById('d');
|
| +var e = document.getElementById('e');
|
| +
|
| +shouldBe('theTarget.closest("#theTarget")', 'theTarget');
|
| +shouldBe('theTarget.closest("ancestor")', 'ancestor');
|
| +shouldBe('theTarget.closest("tribe ancestor")', 'ancestor');
|
| +shouldBe('theTarget.closest("tribe > ancestor")', 'ancestor');
|
| +shouldBe('theTarget.closest("realm + ancestor")', 'ancestor');
|
| +shouldBe('theTarget.closest("realm ~ ancestor")', 'ancestor');
|
| +shouldBe('theTarget.closest("tribe, ancestor")', 'ancestor');
|
| +shouldBe('theTarget.closest("ancestor, tribe")', 'ancestor');
|
| +
|
| +shouldBeNull('theTarget.closest("tribe realm")');
|
| +shouldBeNull('theTarget.closest("tribe realm throne")');
|
| +shouldBeNull('theTarget.closest("tribe realm ancestor")');
|
| +shouldBeNull('theTarget.closest("realm > ancestor")');
|
| +shouldBeNull('theTarget.closest("throne + ancestor")');
|
| +shouldBeNull('theTarget.closest("throne ~ ancestor")');
|
| +
|
| +shouldBe('theTarget.closest(".classic")', 'ancestor');
|
| +shouldBe('theTarget.closest("#john")', 'ancestor');
|
| +shouldBeNull('theTarget.closest("doe")');
|
| +shouldBe('theTarget.closest("ancestor[name=old]")', 'ancestor');
|
| +shouldBeNull('theTarget.closest("ancestor[name=young]")');
|
| +
|
| +shouldBeNull('theTarget.closest(null)');
|
| +shouldBeNull('theTarget.closest(undefined)');
|
| +
|
| +shouldBe('sour.closest("lemon")', 'sour');
|
| +
|
| +shouldBe('sour.closest("a, b, c, d, e")', 'e');
|
| +shouldBe('sour.closest("a, b, c")', 'c');
|
| +shouldBe('sour.closest("a, b")', 'b');
|
| +shouldBe('sour.closest("e, d, c, b, a")', 'e');
|
| +shouldBe('sour.closest("d, c, b, a")', 'd');
|
| +shouldBe('sour.closest("c, b, a")', 'c');
|
| +shouldBe('sour.closest("b, a")', 'b');
|
| +shouldBe('sour.closest("a")', 'a');
|
| +
|
| +shouldBe('document.closest', 'undefined');
|
| +shouldThrow('document.closest()');
|
| +shouldThrow('theTarget.closest()');
|
| +shouldThrow('theTarget.closest("")');
|
| +shouldThrow('theTarget.closest(".123")');
|
| +shouldThrow('theTarget.closest(" ")');
|
| +shouldThrow('theTarget.closest(")")');
|
| +shouldThrow('theTarget.closest("(")');
|
| +shouldThrow('theTarget.closest("()")');
|
| +shouldThrow('theTarget.closest("^_^")');
|
| +shouldThrow('theTarget.closest("{")');
|
| +shouldThrow('theTarget.closest("}")');
|
| +shouldThrow('theTarget.closest("{}")');
|
| +</script>
|
| +</html>
|
|
|