tor-browser

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

test_inner_reorder.html (3540B)


      1 <!DOCTYPE html>
      2 <html>
      3 
      4 <head>
      5  <title>Test accessible delayed removal</title>
      6 
      7  <link rel="stylesheet" type="text/css"
      8        href="chrome://mochikit/content/tests/SimpleTest/test.css" />
      9 
     10 
     11  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     12 
     13  <script type="application/javascript"
     14          src="../common.js"></script>
     15  <script type="application/javascript"
     16          src="../role.js"></script>
     17  <script type="application/javascript"
     18          src="../promisified-events.js"></script>
     19 
     20  <script type="application/javascript">
     21 
     22    async function testInnerReorder() {
     23      window.windowUtils.advanceTimeAndRefresh(100);
     24 
     25      let events = waitForOrderedEvents([
     26          [EVENT_HIDE, "c1.1.1"],
     27          [EVENT_SHOW, "c1.1.1"],
     28          [EVENT_INNER_REORDER, "c1.1"],
     29          [EVENT_REORDER, "c1"],
     30        ], "events yay");
     31 
     32      let child = getNode("c1.1.1");
     33      child.remove();
     34      getNode("c1").appendChild(child);
     35 
     36      window.windowUtils.restoreNormalRefresh();
     37 
     38      await events;
     39    }
     40 
     41    async function testInnerReorderEntry() {
     42      window.windowUtils.advanceTimeAndRefresh(100);
     43 
     44      let events = waitForOrderedEvents([
     45          [EVENT_HIDE, e => e.accessible.name == "hello"],
     46          [EVENT_HIDE, "c2.2"],
     47          [EVENT_INNER_REORDER, "c2.1"],
     48          [EVENT_REORDER, "c2"],
     49          [EVENT_TEXT_VALUE_CHANGE, "c2.1"],
     50        ], "events yay");
     51 
     52      getNode("c2.1.1").remove();
     53      getNode("c2.2").remove();
     54 
     55      window.windowUtils.restoreNormalRefresh();
     56 
     57      await events;
     58    }
     59 
     60    async function testInnerReorderAriaOwns() {
     61      let events = waitForOrderedEvents([
     62          [EVENT_HIDE, "c3.1.1"],
     63          [EVENT_SHOW, "c3.1.1"],
     64          [EVENT_INNER_REORDER, "c3.1"],
     65          [EVENT_REORDER, "c3"],
     66        ], "events yay");
     67 
     68      getNode("c3").setAttribute("aria-owns", "c3.1.1");
     69 
     70      await events;
     71 
     72      events = waitForOrderedEvents([
     73          [EVENT_HIDE, "c3.1.1"],
     74          [EVENT_SHOW, "c3.1.1"],
     75          [EVENT_INNER_REORDER, "c3.1"],
     76          [EVENT_REORDER, "c3"],
     77        ], "events yay");
     78 
     79      getNode("c3").removeAttribute("aria-owns");
     80 
     81      await events;
     82    }
     83 
     84    async function testInnerContainerRemoved() {
     85      window.windowUtils.advanceTimeAndRefresh(100);
     86 
     87      let events = waitForOrderedEvents([
     88          [EVENT_HIDE, "c4.1"],
     89          [EVENT_SHOW, "c4.1.1"],
     90          [EVENT_REORDER, "c4"],
     91        ], "events yay");
     92 
     93      let child = getNode("c4.1.1");
     94      child.remove();
     95      getNode("c1").appendChild(child);
     96      getNode("c4.1").remove();
     97 
     98      window.windowUtils.restoreNormalRefresh();
     99 
    100      await events;
    101    }
    102 
    103 
    104    async function doTest() {
    105      await testInnerReorder();
    106 
    107      await testInnerReorderEntry();
    108 
    109      await testInnerReorderAriaOwns();
    110 
    111      await testInnerContainerRemoved();
    112 
    113      SimpleTest.finish();
    114    }
    115 
    116    SimpleTest.waitForExplicitFinish();
    117    addA11yLoadEvent(doTest);
    118  </script>
    119 </head>
    120 <body>
    121 
    122  <p id="display"></p>
    123  <div id="content" style="display: none"></div>
    124  <pre id="test">
    125  </pre>
    126 
    127  <div id="c1">
    128    <div id="c1.1"><div id="c1.1.1">hello</div></div>
    129  </div>
    130 
    131  <div id="c2">
    132    <div role="textbox" contenteditable="true" id="c2.1">
    133      <span id="c2.1.1">hello</span>
    134    </div>
    135    <input type="submit" id="c2.2">
    136  </div>
    137 
    138  <div id="c3">
    139    <div id="c3.1"><div id="c3.1.1"></div></div>
    140  </div>
    141 
    142  <div id="c4">
    143    <div id="c4.1"><div id="c4.1.1">hello</div></div>
    144  </div>
    145 
    146  <div id="eventdump"></div>
    147 </body>
    148 </html>