fune/browser/components/syncedtabs/test/xpcshell/test_EventEmitter.js
Victor Porof 1f830c96da Bug 1561435 - Format browser/components/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36042

--HG--
extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
2019-07-05 09:53:32 +02:00

36 lines
934 B
JavaScript

"use strict";
let { EventEmitter } = ChromeUtils.import(
"resource:///modules/syncedtabs/EventEmitter.jsm"
);
add_task(async function testSingleListener() {
let eventEmitter = new EventEmitter();
let spy = sinon.spy();
eventEmitter.on("click", spy);
eventEmitter.emit("click", "foo", "bar");
Assert.ok(spy.calledOnce);
Assert.ok(spy.calledWith("foo", "bar"));
eventEmitter.off("click", spy);
eventEmitter.emit("click");
Assert.ok(spy.calledOnce);
});
add_task(async function testMultipleListeners() {
let eventEmitter = new EventEmitter();
let spy1 = sinon.spy();
let spy2 = sinon.spy();
eventEmitter.on("some_event", spy1);
eventEmitter.on("some_event", spy2);
eventEmitter.emit("some_event");
Assert.ok(spy1.calledOnce);
Assert.ok(spy2.calledOnce);
eventEmitter.off("some_event", spy1);
eventEmitter.emit("some_event");
Assert.ok(spy1.calledOnce);
Assert.ok(spy2.calledTwice);
});