OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <script src="../../../resources/testharness.js"></script> |
| 3 <script src="../../../resources/testharnessreport.js"></script> |
| 4 |
| 5 <div id=outer> |
| 6 <div id=div1></div> |
| 7 <div id=div2 dir=ltr> |
| 8 <div id=div2_1></div> |
| 9 <div id=div2_2 dir=ltr></div> |
| 10 <div id=div2_3 dir=rtl></div> |
| 11 </div> |
| 12 <div id=div3 dir=rtl> |
| 13 <div id=div3_1> |
| 14 <div id=div3_1_1></div> |
| 15 </div> |
| 16 <div id=div3_2 dir=ltr></div> |
| 17 <div id=div3_3 dir=rtl></div> |
| 18 </div> |
| 19 <div id=div4 dir=lol></div> |
| 20 <div id=div5 dir=auto></div> |
| 21 </div> |
| 22 |
| 23 <script> |
| 24 test(() => { |
| 25 assert_equals(document.querySelector(":dir(lol)"), null); |
| 26 assert_equals(document.querySelector(":dir(lol )"), null); |
| 27 assert_equals(document.querySelector(":dir( auto)"), null); |
| 28 assert_equals(document.querySelector(":dir(\nauto\t)"), null); |
| 29 }, ":dir() allows any ident value but strings other than ltr/rtl don't match"); |
| 30 |
| 31 test(() => { |
| 32 assert_throws("SYNTAX_ERR", () => { document.querySelector(":dir()"); }); |
| 33 assert_throws("SYNTAX_ERR", () => { document.querySelector(":dir(ltr, rtl)");
}); |
| 34 assert_throws("SYNTAX_ERR", () => { document.querySelector(":dir('ltr')"); }); |
| 35 }, ":dir() requires exactly an ident argument"); |
| 36 |
| 37 test(() => { |
| 38 assert_equals(document.querySelector(":dir(rtl)"), div2_3); |
| 39 assert_equals(document.querySelector("*:dir(rtl)"), div2_3); |
| 40 assert_equals(document.querySelector("div:dir(ltr)"), outer); |
| 41 assert_equals(document.querySelector("div:dir(ltr):dir(ltr)"), outer); |
| 42 assert_equals(document.querySelector(":dir(rtl)#div3_3"), div3_3); |
| 43 assert_equals(document.querySelector(":nth-child(2):dir(rtl)"), null); |
| 44 assert_equals(document.querySelector(":nth-child(3):dir(rtl)"), div2_3); |
| 45 assert_equals(document.querySelector(":nth-child(4):dir(ltr)"), div4); |
| 46 assert_equals(document.querySelector(":nth-last-child(3):dir(rtl)"), div3); |
| 47 }, ":dir() works in compound selectors"); |
| 48 |
| 49 test(() => { |
| 50 assert_equals(document.querySelector("#div2 :dir(ltr)"), div2_1); |
| 51 assert_equals(document.querySelector(":dir(rtl) div"), div3_1); |
| 52 assert_equals(document.querySelector("div + :dir(ltr)"), div2); |
| 53 assert_equals(document.querySelector(":dir(ltr) + :dir(rtl)"), div2_3); |
| 54 assert_equals(document.querySelector(":dir(rtl) :dir(rtl)"), div3_1); |
| 55 assert_equals(document.querySelector(":dir(rtl) + :dir(ltr)"), div3_2); |
| 56 assert_equals(document.querySelector(":dir(rtl) ~ :dir(rtl)"), div3_3); |
| 57 assert_equals(document.querySelector(":dir(rtl) :dir(ltr)"), div3_2); |
| 58 assert_equals(document.querySelector("* :dir(rtl) *"), div3_1); |
| 59 assert_equals(document.querySelector("div :dir(rtl) div"), div3_1); |
| 60 assert_equals(document.querySelector(":dir(ltr) :dir(rtl) + :dir(ltr)"), div3_
2); |
| 61 assert_equals(document.querySelector(":dir(ltr) + :dir(rtl) + * + *"), div5); |
| 62 assert_equals(document.querySelector(":dir(rtl) > * > :dir(rtl)"), div3_1_1); |
| 63 }, ":dir() works in complex selectors"); |
| 64 </script> |
OLD | NEW |