108 lines
2.9 KiB
JavaScript
108 lines
2.9 KiB
JavaScript
describe('pixi/utils/EventTarget', function () {
|
|
'use strict';
|
|
|
|
var expect = chai.expect;
|
|
var EventTarget = PIXI.EventTarget;
|
|
|
|
it('Module exists', function () {
|
|
expect(EventTarget).to.be.a('function');
|
|
});
|
|
|
|
it('Confirm new instance', function () {
|
|
var obj = {};
|
|
|
|
EventTarget.call(obj);
|
|
pixi_utils_EventTarget_like(obj);
|
|
});
|
|
|
|
it('addEventListener and dispatchEvent works', function (done) {
|
|
var myData = {},
|
|
obj = {};
|
|
|
|
EventTarget.call(obj);
|
|
|
|
obj.addEventListener('myevent', function (event) {
|
|
expect(event).to.be.an('object');
|
|
expect(event).to.have.property('type', 'myevent');
|
|
expect(event).to.have.property('data', myData);
|
|
done();
|
|
});
|
|
|
|
obj.dispatchEvent({type: 'myevent', data: myData});
|
|
});
|
|
|
|
it('removeEventListener works', function (done) {
|
|
var obj = {};
|
|
|
|
EventTarget.call(obj);
|
|
|
|
function onMyEvent() {
|
|
done(new Error('addEventListener should not have been called'));
|
|
}
|
|
|
|
obj.addEventListener('myevent', onMyEvent);
|
|
obj.removeEventListener('myevent', onMyEvent);
|
|
obj.dispatchEvent({type: 'myevent'});
|
|
done();
|
|
});
|
|
|
|
it('multiple dispatches', function () {
|
|
var called = 0,
|
|
obj = {};
|
|
|
|
EventTarget.call(obj);
|
|
|
|
function onMyEvent() {
|
|
called++;
|
|
}
|
|
|
|
obj.addEventListener('myevent', onMyEvent);
|
|
obj.dispatchEvent({type: 'myevent'});
|
|
obj.dispatchEvent({type: 'myevent'});
|
|
obj.dispatchEvent({type: 'myevent'});
|
|
obj.dispatchEvent({type: 'myevent'});
|
|
expect(called).to.equal(4);
|
|
});
|
|
|
|
it('multiple events', function () {
|
|
var called = 0,
|
|
obj = {};
|
|
|
|
EventTarget.call(obj);
|
|
|
|
function onMyEvent() {
|
|
called++;
|
|
}
|
|
|
|
obj.addEventListener('myevent1', onMyEvent);
|
|
obj.addEventListener('myevent2', onMyEvent);
|
|
obj.addEventListener('myevent3', onMyEvent);
|
|
obj.dispatchEvent({type: 'myevent1'});
|
|
obj.dispatchEvent({type: 'myevent2'});
|
|
obj.dispatchEvent({type: 'myevent3'});
|
|
expect(called).to.equal(3);
|
|
});
|
|
|
|
it('multiple events one removed', function () {
|
|
var called = 0,
|
|
obj = {};
|
|
|
|
EventTarget.call(obj);
|
|
|
|
function onMyEvent() {
|
|
called++;
|
|
}
|
|
|
|
obj.addEventListener('myevent1', onMyEvent);
|
|
obj.addEventListener('myevent2', onMyEvent);
|
|
obj.addEventListener('myevent3', onMyEvent);
|
|
obj.dispatchEvent({type: 'myevent1'});
|
|
obj.dispatchEvent({type: 'myevent2'});
|
|
obj.dispatchEvent({type: 'myevent3'});
|
|
obj.removeEventListener('myevent2', onMyEvent);
|
|
obj.dispatchEvent({type: 'myevent1'});
|
|
obj.dispatchEvent({type: 'myevent2'});
|
|
obj.dispatchEvent({type: 'myevent3'});
|
|
expect(called).to.equal(5);
|
|
});
|
|
});
|