Move event emitter tests out into their own spec

This commit is contained in:
JC Brand 2014-02-12 02:02:25 +02:00
parent d0f1a6cfb9
commit e3b8a8f9dd
2 changed files with 68 additions and 0 deletions

67
spec/eventemitter.js Normal file
View File

@ -0,0 +1,67 @@
(function (root, factory) {
define([
"mock",
"utils"
], function (mock, utils) {
return factory(mock, utils);
}
);
} (this, function (mock, utils) {
return describe("The Converse Event Emitter", $.proxy(function(mock, utils) {
window.localStorage.clear();
it("allows you to subscribe to emitted events", function () {
this.callback = function () {};
spyOn(this, 'callback');
converse.on('onInitialized', this.callback);
converse.emit('onInitialized');
expect(this.callback).toHaveBeenCalled();
converse.emit('onInitialized');
expect(this.callback.callCount, 2);
converse.emit('onInitialized');
expect(this.callback.callCount, 3);
});
it("allows you to listen once for an emitted event", function () {
this.callback = function () {};
spyOn(this, 'callback');
converse.once('onInitialized', this.callback);
converse.emit('onInitialized');
expect(this.callback).toHaveBeenCalled();
converse.emit('onInitialized');
expect(this.callback.callCount, 1);
converse.emit('onInitialized');
expect(this.callback.callCount, 1);
});
it("allows you to stop listening or subscribing to an event", function () {
this.callback = function () {};
this.anotherCallback = function () {};
this.neverCalled = function () {};
spyOn(this, 'callback');
spyOn(this, 'anotherCallback');
spyOn(this, 'neverCalled');
converse.on('onInitialized', this.callback);
converse.on('onInitialized', this.anotherCallback);
converse.emit('onInitialized');
expect(this.callback).toHaveBeenCalled();
expect(this.anotherCallback).toHaveBeenCalled();
converse.off('onInitialized', this.callback);
converse.emit('onInitialized');
expect(this.callback.callCount, 1);
expect(this.anotherCallback.callCount, 2);
converse.once('onInitialized', this.neverCalled);
converse.off('onInitialized', this.neverCalled);
converse.emit('onInitialized');
expect(this.callback.callCount, 1);
expect(this.anotherCallback.callCount, 3);
expect(this.neverCalled).not.toHaveBeenCalled();
});
}, converse, mock, utils));
}));

View File

@ -115,6 +115,7 @@ require([
"jasmine-console-reporter",
"jasmine-junit-reporter",
"spec/converse",
"spec/eventemitter",
"spec/controlbox",
"spec/chatbox",
"spec/chatroom"