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:
parent
55581b162e
commit
7fd3db9977
17 changed files with 510 additions and 151 deletions
|
@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue