tor-browser

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

observable-event-target.window.js (1460B)


      1 test(() => {
      2  // See https://dom.spec.whatwg.org/#dom-event-eventphase.
      3  const CAPTURING_PHASE = 1;
      4  const BUBBLING_PHASE = 3;
      5 
      6  // First, create a div underneath the `<body>` element. It will be the
      7  // dispatch target for synthetic click events.
      8  const target =
      9      document.querySelector('body').appendChild(document.createElement('div'));
     10 
     11  const body = document.querySelector('body');
     12  const captureObservable = body.when('click', {capture: true});
     13  const bubbleObservable = body.when('click', {capture: false});
     14 
     15  const results = [];
     16  captureObservable.subscribe(e => results.push(e.eventPhase));
     17  bubbleObservable.subscribe(e => results.push(e.eventPhase));
     18 
     19  target.dispatchEvent(new MouseEvent('click', {bubbles: true}));
     20 
     21  assert_array_equals(results, [CAPTURING_PHASE, BUBBLING_PHASE]);
     22 }, "EventTarget Observables can listen for events in the capturing or bubbling phase");
     23 
     24 test(() => {
     25  const target = new EventTarget();
     26 
     27  const observable = target.when('event', {passive: true});
     28  observable.subscribe(event => {
     29    assert_false(event.defaultPrevented);
     30    // Should do nothing, since `observable` is "passive".
     31    event.preventDefault();
     32    assert_false(event.defaultPrevented);
     33  });
     34 
     35  // Create a cancelable event which ordinarily would be able to have its
     36  // "default" prevented.
     37  const event = new Event('event', {cancelable: true});
     38  target.dispatchEvent(event);
     39 }, "EventTarget Observables can be 'passive'");