tor-browser

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

test_EventEmitter.js (946B)


      1 "use strict";
      2 
      3 let { EventEmitter } = ChromeUtils.importESModule(
      4  "resource:///modules/syncedtabs/EventEmitter.sys.mjs"
      5 );
      6 
      7 add_task(async function testSingleListener() {
      8  let eventEmitter = new EventEmitter();
      9  let spy = sinon.spy();
     10 
     11  eventEmitter.on("click", spy);
     12  eventEmitter.emit("click", "foo", "bar");
     13  Assert.ok(spy.calledOnce);
     14  Assert.ok(spy.calledWith("foo", "bar"));
     15 
     16  eventEmitter.off("click", spy);
     17  eventEmitter.emit("click");
     18  Assert.ok(spy.calledOnce);
     19 });
     20 
     21 add_task(async function testMultipleListeners() {
     22  let eventEmitter = new EventEmitter();
     23  let spy1 = sinon.spy();
     24  let spy2 = sinon.spy();
     25 
     26  eventEmitter.on("some_event", spy1);
     27  eventEmitter.on("some_event", spy2);
     28  eventEmitter.emit("some_event");
     29  Assert.ok(spy1.calledOnce);
     30  Assert.ok(spy2.calledOnce);
     31 
     32  eventEmitter.off("some_event", spy1);
     33  eventEmitter.emit("some_event");
     34  Assert.ok(spy1.calledOnce);
     35  Assert.ok(spy2.calledTwice);
     36 });