OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE HTML> |
| 2 <meta charset=utf8> |
| 3 <title>Test for Element.closest</title> |
| 4 <script src="../../../../resources/testharness.js"></script> |
| 5 <script src="../../../../resources/testharnessreport.js"></script> |
| 6 <body id="body"> |
| 7 <div id="test8" class="div3" style="display:none"> |
| 8 <div id="test7" class="div2"> |
| 9 <div id="test6" class="div1"> |
| 10 <form id="test10" class="form2"></form> |
| 11 <form id="test5" class="form1" name="form-a"> |
| 12 <input id="test1" class="input1" required> |
| 13 <fieldset class="fieldset2" id="test2"> |
| 14 <select id="test3" class="select1" required> |
| 15 <option default id="test4" value="">Test4</option> |
| 16 <option selected id="test11">Test11</option> |
| 17 <option id="test12">Test12</option> |
| 18 <option id="test13">Test13</option> |
| 19 </select> |
| 20 <input id="test9" type="text" required> |
| 21 </fieldset> |
| 22 </form> |
| 23 </div> |
| 24 </div> |
| 25 </div> |
| 26 <div id=log></div> |
| 27 <script> |
| 28 do_test("select" , "test12", "test3"); |
| 29 do_test("fieldset" , "test13", "test2"); |
| 30 do_test("div" , "test13", "test6"); |
| 31 do_test("body" , "test3" , "body"); |
| 32 |
| 33 do_test("[default]" , "test4" , "test4"); |
| 34 do_test("[selected]" , "test4" , ""); |
| 35 do_test("[selected]" , "test11", "test11"); |
| 36 do_test('[name="form-a"]' , "test12", "test5"); |
| 37 do_test('form[name="form-a"]' , "test13", "test5"); |
| 38 do_test("input[required]" , "test9" , "test9"); |
| 39 do_test("select[required]" , "test9" , ""); |
| 40 |
| 41 do_test("div:not(.div1)" , "test13", "test7"); |
| 42 do_test("div.div3" , "test6" , "test8"); |
| 43 do_test("div#test7" , "test1" , "test7"); |
| 44 |
| 45 do_test(".div3 > .div2" , "test12", "test7"); |
| 46 do_test(".div3 > .div1" , "test12", ""); |
| 47 do_test("form > input[required]" , "test9" , ""); |
| 48 do_test("fieldset > select[required]", "test12", "test3"); |
| 49 |
| 50 do_test("input + fieldset" , "test6" , ""); |
| 51 do_test("form + form" , "test3" , "test5"); |
| 52 do_test("form + form" , "test5" , "test5"); |
| 53 |
| 54 do_test(":empty" , "test10", "test10"); |
| 55 do_test(":last-child" , "test11", "test2"); |
| 56 do_test(":first-child" , "test12", "test3"); |
| 57 do_test(":invalid" , "test11", "test2"); |
| 58 |
| 59 do_test(":scope" , "test4", "test4"); |
| 60 do_test("select > :scope" , "test4", "test4"); |
| 61 do_test("div > :scope" , "test4", ""); |
| 62 do_test(":has(> :scope)" , "test4", "test3"); |
| 63 function do_test(aSelector, aElementId, aTargetId) { |
| 64 test(function() { |
| 65 var el = document.getElementById(aElementId).closest(aSelector); |
| 66 if (el === null) { |
| 67 assert_equals("", aTargetId, aSelector); |
| 68 } else { |
| 69 assert_equals(el.id, aTargetId, aSelector); |
| 70 } |
| 71 }, "Element.closest with context node '" + aElementId + "' and selector '" + a
Selector + "'"); |
| 72 } |
| 73 </script> |
OLD | NEW |