tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_element_closest.html (3241B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1055533
      5 -->
      6 <head>
      7  <title>Test for Bug 1055533</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <script src="/tests/SimpleTest/EventUtils.js"></script>
     10  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     11 </head>
     12 <body id="body">
     13  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1055533">Mozilla Bug 1055533</a>
     14  <div id="test8" class="div3">
     15    <div id="test7" class="div2">
     16      <div id="test6" class="div1">
     17        <form id="test10" class="form2"></form>
     18        <form id="test5" class="form1" name="form-a">
     19          <input id="test1" class="input1" required>
     20          <fieldset class="fieldset2" id="test2">
     21            <select id="test3" class="select1" required>
     22              <option default id="test4" value="">Test4</option>
     23              <option selected id="test11">Test11</option>
     24              <option id="test12">Test12</option>
     25              <option id="test13">Test13</option>
     26            </select>
     27            <input id="test9" type="text" required>
     28          </fieldset>
     29        </form>
     30      </div>
     31    </div>
     32  </div>
     33 <script class="testbody" type="text/javascript">
     34  test("select"                     , "test12", "test3");
     35  test("fieldset"                   , "test13", "test2");
     36  test("div"                        , "test13", "test6");
     37  test("body"                       , "test3" , "body");
     38 
     39  test("[default]"                  , "test4" , "test4");
     40  test("[selected]"                 , "test4" , "");
     41  test("[selected]"                 , "test11", "test11");
     42  test('[name="form-a"]'            , "test12", "test5");
     43  test('form[name="form-a"]'        , "test13", "test5");
     44  test("input[required]"            , "test9" , "test9");
     45  test("select[required]"           , "test9" , "");
     46 
     47  test("div:not(.div1)"             , "test13", "test7");
     48  test("div.div3"                   , "test6" , "test8");
     49  test("div#test7"                  , "test1" , "test7");
     50 
     51  test(".div3 > .div2"              , "test12", "test7");
     52  test(".div3 > .div1"              , "test12", "");
     53  test("form > input[required]"     , "test9" , "");
     54  test("fieldset > select[required]", "test12", "test3");
     55 
     56  test("input + fieldset"           , "test6" , "");
     57  test("form + form"                , "test3" , "test5");
     58  test("form + form"                , "test5" , "test5");
     59 
     60  test(":empty"                     , "test10", "test10");
     61  test(":last-child"                , "test11", "test2");
     62  test(":first-child"               , "test12", "test3");
     63  test(":invalid"                   , "test11", "test2");
     64 
     65  test(":scope"                     , "test4",  "test4");
     66  test("select > :scope"            , "test4",  "test4");
     67  test("div > :scope"               , "test4",  "");
     68  try {
     69    test(":has(> :scope)"             , "test4",  "test3");
     70  } catch(e) {
     71    todo(false, ":has(> :scope) [:has is not implemented yet]");
     72  }
     73 function test(aSelector, aElementId, aTargetId) {
     74  var el = document.getElementById(aElementId).closest(aSelector);
     75  if (el === null) {
     76    is("", aTargetId, aSelector);
     77  } else {
     78    is(el.id, aTargetId, aSelector);
     79  }
     80 }
     81 </script>
     82 </body>
     83 </html>