| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <meta charset=utf8> | 2 <meta charset=utf8> |
| 3 <title>Test for Element.closest</title> | 3 <title>Test for Element.closest</title> |
| 4 <script src="/resources/testharness.js"></script> | 4 <script src="/resources/testharness.js"></script> |
| 5 <script src="/resources/testharnessreport.js"></script> | 5 <script src="/resources/testharnessreport.js"></script> |
| 6 <body id="body"> | 6 <body id="body"> |
| 7 <div id="test8" class="div3" style="display:none"> | 7 <div id="test8" class="div3" style="display:none"> |
| 8 <div id="test7" class="div2"> | 8 <div id="test7" class="div2"> |
| 9 <div id="test6" class="div1"> | 9 <div id="test6" class="div1"> |
| 10 <form id="test10" class="form2"></form> | 10 <form id="test10" class="form2"></form> |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 | 49 |
| 50 do_test("input + fieldset" , "test6" , ""); | 50 do_test("input + fieldset" , "test6" , ""); |
| 51 do_test("form + form" , "test3" , "test5"); | 51 do_test("form + form" , "test3" , "test5"); |
| 52 do_test("form + form" , "test5" , "test5"); | 52 do_test("form + form" , "test5" , "test5"); |
| 53 | 53 |
| 54 do_test(":empty" , "test10", "test10"); | 54 do_test(":empty" , "test10", "test10"); |
| 55 do_test(":last-child" , "test11", "test2"); | 55 do_test(":last-child" , "test11", "test2"); |
| 56 do_test(":first-child" , "test12", "test3"); | 56 do_test(":first-child" , "test12", "test3"); |
| 57 do_test(":invalid" , "test11", "test2"); | 57 do_test(":invalid" , "test11", "test2"); |
| 58 | 58 |
| 59 do_test(":scope" , "test4", "test4"); | 59 do_scope_test(":scope" , "test4"); |
| 60 do_test("select > :scope" , "test4", "test4"); | 60 do_scope_test("select > :scope" , "test4"); |
| 61 do_test("div > :scope" , "test4", ""); | 61 do_scope_test("div > :scope" , "test4"); |
| 62 do_test(":has(> :scope)" , "test4", "test3"); | 62 do_scope_test(":has(> :scope)" , "test4"); |
| 63 |
| 63 function do_test(aSelector, aElementId, aTargetId) { | 64 function do_test(aSelector, aElementId, aTargetId) { |
| 64 test(function() { | 65 test(function() { |
| 65 var el = document.getElementById(aElementId).closest(aSelector); | 66 var el = document.getElementById(aElementId).closest(aSelector); |
| 66 if (el === null) { | 67 if (el === null) { |
| 67 assert_equals("", aTargetId, aSelector); | 68 assert_equals("", aTargetId, aSelector); |
| 68 } else { | 69 } else { |
| 69 assert_equals(el.id, aTargetId, aSelector); | 70 assert_equals(el.id, aTargetId, aSelector); |
| 70 } | 71 } |
| 71 }, "Element.closest with context node '" + aElementId + "' and selector '" + a
Selector + "'"); | 72 }, "Element.closest with context node '" + aElementId + "' and selector '" + a
Selector + "'"); |
| 72 } | 73 } |
| 74 |
| 75 function do_scope_test(aSelector, aElementId) { |
| 76 test(function() { |
| 77 var el = document.getElementById(aElementId); |
| 78 assert_throws("SYNTAX_ERR", function() { |
| 79 el.closest(aSelector); |
| 80 }); |
| 81 }, "Element.closest with context node '" + aElementId + "' and selector '" + a
Selector + "' should throw"); |
| 82 } |
| 73 </script> | 83 </script> |
| OLD | NEW |