1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 23:28:06 +02:00

Adds EventBus.

This commit is contained in:
Yury Delendik 2016-04-25 17:57:15 -05:00
parent 55581b162e
commit 7fd3db9977
17 changed files with 510 additions and 151 deletions

View file

@ -1,4 +1,4 @@
/* globals expect, it, describe, binarySearchFirstItem */
/* globals expect, it, describe, binarySearchFirstItem, EventBus */
'use strict';
@ -30,5 +30,91 @@ describe('ui_utils', function() {
expect(binarySearchFirstItem([4, 5, 6], isGreater3)).toEqual(0);
});
});
describe('EventBus', function () {
it('dispatch event', function () {
var eventBus = new EventBus();
var count = 0;
eventBus.on('test', function () {
count++;
});
eventBus.dispatch('test');
expect(count).toEqual(1);
});
it('dispatch different event', function () {
var eventBus = new EventBus();
var count = 0;
eventBus.on('test', function () {
count++;
});
eventBus.dispatch('nottest');
expect(count).toEqual(0);
});
it('dispatch event multiple times', function () {
var eventBus = new EventBus();
var count = 0;
eventBus.dispatch('test');
eventBus.on('test', function () {
count++;
});
eventBus.dispatch('test');
eventBus.dispatch('test');
expect(count).toEqual(2);
});
it('dispatch event to multiple handlers', function () {
var eventBus = new EventBus();
var count = 0;
eventBus.on('test', function () {
count++;
});
eventBus.on('test', function () {
count++;
});
eventBus.dispatch('test');
expect(count).toEqual(2);
});
it('dispatch to detached', function () {
var eventBus = new EventBus();
var count = 0;
var listener = function () {
count++;
};
eventBus.on('test', listener);
eventBus.dispatch('test');
eventBus.off('test', listener);
eventBus.dispatch('test');
expect(count).toEqual(1);
});
it('dispatch to wrong detached', function () {
var eventBus = new EventBus();
var count = 0;
eventBus.on('test', function () {
count++;
});
eventBus.dispatch('test');
eventBus.off('test', function () {
count++;
});
eventBus.dispatch('test');
expect(count).toEqual(2);
});
it('dispatch to detached during handling', function () {
var eventBus = new EventBus();
var count = 0;
var listener1 = function () {
eventBus.off('test', listener2);
count++;
};
var listener2 = function () {
eventBus.off('test', listener1);
count++;
};
eventBus.on('test', listener1);
eventBus.on('test', listener2);
eventBus.dispatch('test');
eventBus.dispatch('test');
expect(count).toEqual(2);
});
});
});