Chromium Code Reviews| 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..075f797c3b399ee87120c77e53f13bd74e6bdf71 |
| --- /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> |
|
pdr.
2014/11/12 03:13:18
Please fix the indentation here so foo and bar are
Paritosh Kumar
2014/11/12 04:44:09
Done.
|
| +<a id="a"> |
| + <b id="b"> |
| + <c id="c"> |
| + <d id="d"> |
| + <e id="e"> |
| + <lemon id="sour"></lemon> |
| + <e/> |
|
pdr.
2014/11/12 03:13:17
Lets go ahead and fix this: <e/> should be <e/>, s
Paritosh Kumar
2014/11/12 04:44:09
Done.
|
| + </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]")', 'ancestor'); |
|
pdr.
2014/11/12 03:13:17
shouldBeNull doesn't take a second argument. This
|
| + |
| +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> |