tor-browser

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

Event-dispatch-omitted-capture.html (2113B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>EventTarget.addEventListener: capture argument omitted</title>
      4 <link rel="help" href="https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener">
      5 <link rel="help" href="https://dom.spec.whatwg.org/#concept-event-dispatch">
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <div id=log></div>
      9 <table id="table" border="1" style="display: none">
     10    <tbody id="table-body">
     11    <tr id="table-row">
     12        <td id="table-cell">Shady Grove</td>
     13        <td>Aeolian</td>
     14    </tr>
     15    <tr id="parent">
     16        <td id="target">Over the river, Charlie</td>
     17        <td>Dorian</td>
     18    </tr>
     19    </tbody>
     20 </table>
     21 <script>
     22 test(function() {
     23    var event_type = "foo";
     24    var target = document.getElementById("target");
     25    var targets = [
     26        target,
     27        document.getElementById("parent"),
     28        document.getElementById("table-body"),
     29        document.getElementById("table"),
     30        document.body,
     31        document.documentElement,
     32        document,
     33        window
     34    ];
     35    var phases = [
     36        Event.AT_TARGET,
     37        Event.BUBBLING_PHASE,
     38        Event.BUBBLING_PHASE,
     39        Event.BUBBLING_PHASE,
     40        Event.BUBBLING_PHASE,
     41        Event.BUBBLING_PHASE,
     42        Event.BUBBLING_PHASE,
     43        Event.BUBBLING_PHASE
     44    ];
     45 
     46    var actual_targets = [], actual_phases = [];
     47    var test_event = function(evt) {
     48        actual_targets.push(evt.currentTarget);
     49        actual_phases.push(evt.eventPhase);
     50    }
     51 
     52    for (var i = 0; i < targets.length; i++) {
     53        targets[i].addEventListener(event_type, test_event);
     54    }
     55 
     56    var evt = document.createEvent("Event");
     57    evt.initEvent(event_type, true, true);
     58 
     59    target.dispatchEvent(evt);
     60 
     61    for (var i = 0; i < targets.length; i++) {
     62        targets[i].removeEventListener(event_type, test_event);
     63    }
     64 
     65    target.dispatchEvent(evt);
     66 
     67    assert_array_equals(actual_targets, targets, "targets");
     68    assert_array_equals(actual_phases, phases, "phases");
     69 }, "EventTarget.addEventListener with the capture argument omitted");
     70 </script>