tor-browser

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

Event-dispatch-propagation-stopped.html (1754B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <title> Calling stopPropagation() prior to dispatchEvent() </title>
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 </head>
      8 <body>
      9 <div id=log></div>
     10 
     11 <table id="table" border="1" style="display: none">
     12    <tbody id="table-body">
     13    <tr id="table-row">
     14        <td id="table-cell">Shady Grove</td>
     15        <td>Aeolian</td>
     16    </tr>
     17    <tr id="parent">
     18        <td id="target">Over the river, Charlie</td>
     19        <td>Dorian</td>
     20    </tr>
     21    </tbody>
     22 </table>
     23 
     24 <script>
     25 test(function() {
     26    var event = "foo";
     27    var target = document.getElementById("target");
     28    var parent = document.getElementById("parent");
     29    var tbody = document.getElementById("table-body");
     30    var table = document.getElementById("table");
     31    var body = document.body;
     32    var html = document.documentElement;
     33    var current_targets = [window, document, html, body, table, tbody, parent, target];
     34    var expected_targets = [];
     35    var actual_targets = [];
     36    var expected_phases = [];
     37    var actual_phases = [];
     38 
     39    var test_event = function(evt) {
     40        actual_targets.push(evt.currentTarget);
     41        actual_phases.push(evt.eventPhase);
     42    };
     43 
     44    for (var i = 0; i < current_targets.length; ++i) {
     45        current_targets[i].addEventListener(event, test_event, true);
     46        current_targets[i].addEventListener(event, test_event, false);
     47    }
     48 
     49    var evt = document.createEvent("Event");
     50    evt.initEvent(event, true, true);
     51    evt.stopPropagation();
     52    target.dispatchEvent(evt);
     53 
     54    assert_array_equals(actual_targets, expected_targets, "actual_targets");
     55    assert_array_equals(actual_phases, expected_phases, "actual_phases");
     56 });
     57 </script>
     58 </body>
     59 </html>