Remove support for useCapture
This commit is contained in:
committed by
Andreas Hocevar
parent
80df1f5ae8
commit
c62e76ab67
@@ -52,8 +52,7 @@ describe('ol.events', function() {
|
||||
var listenerObj = {
|
||||
type: 'foo',
|
||||
target: target,
|
||||
listener: listener,
|
||||
useCapture: false
|
||||
listener: listener
|
||||
};
|
||||
var listenerArray = [listenerObj];
|
||||
var result = ol.events.findListener_(listenerArray, listener);
|
||||
@@ -105,9 +104,9 @@ describe('ol.events', function() {
|
||||
});
|
||||
it('only treats listeners as same when all args are equal', function() {
|
||||
var listener = function() {};
|
||||
ol.events.listen(target, 'foo', listener, {}, false);
|
||||
ol.events.listen(target, 'foo', listener, {}, true);
|
||||
ol.events.listen(target, 'foo', listener, undefined, true);
|
||||
ol.events.listen(target, 'foo', listener, {});
|
||||
ol.events.listen(target, 'foo', listener, {});
|
||||
ol.events.listen(target, 'foo', listener, undefined);
|
||||
expect(add.callCount).to.be(3);
|
||||
});
|
||||
});
|
||||
@@ -184,22 +183,23 @@ describe('ol.events', function() {
|
||||
});
|
||||
|
||||
describe('Compatibility with ol.events.EventTarget', function() {
|
||||
it('works despite different meaning of the useCapture arg', function() {
|
||||
it('does not register duplicated listeners', function() {
|
||||
var target = new ol.events.EventTarget();
|
||||
var listener = function() {};
|
||||
var key1 = ol.events.listen(target, 'foo', listener, undefined, undefined,
|
||||
false);
|
||||
var key1 = ol.events.listen(target, 'foo', listener);
|
||||
expect(target.getListeners('foo')).to.eql([key1.boundListener]);
|
||||
var key2 = ol.events.listen(target, 'foo', listener);
|
||||
expect(key2.boundListener).to.equal(key1.boundListener);
|
||||
expect(target.getListeners('foo')).to.eql([key1.boundListener]);
|
||||
var key2 = ol.events.listen(target, 'foo', listener, undefined, undefined,
|
||||
true);
|
||||
expect(target.getListeners('foo')).to.eql(
|
||||
[key1.boundListener, key2.boundListener]);
|
||||
});
|
||||
it('because the created bound listeners are different', function() {
|
||||
it('registers multiple listeners if this object is different', function() {
|
||||
var target = new ol.events.EventTarget();
|
||||
var listener = function() {};
|
||||
var key1 = ol.events.listen(target, 'foo', listener, {}, false);
|
||||
var key2 = ol.events.listen(target, 'foo', listener, {}, true);
|
||||
var key1 = ol.events.listen(target, 'foo', listener, {});
|
||||
var key2 = ol.events.listen(target, 'foo', listener, {});
|
||||
expect(key1.boundListener).to.not.equal(key2.boundListener);
|
||||
expect(target.getListeners('foo')).to.eql(
|
||||
[key2.boundListener, key1.boundListener]);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -51,88 +51,62 @@ describe('ol.events.EventTarget', function() {
|
||||
|
||||
describe('#addEventListener()', function() {
|
||||
it('has listeners for each registered type', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('bar', spy2, false);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('bar', spy2);
|
||||
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||
expect(eventTarget.hasListener('bar')).to.be(true);
|
||||
});
|
||||
it('registers listeners in the order determined by useCapture', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy2, false);
|
||||
eventTarget.addEventListener('foo', spy3, true);
|
||||
expect(eventTarget.getListeners('foo')).to.eql([spy2, spy1, spy3]);
|
||||
});
|
||||
it('does not re-add existing listeners, ignoring useCapture', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy2, false);
|
||||
eventTarget.addEventListener('foo', spy3, true);
|
||||
eventTarget.addEventListener('foo', spy2);
|
||||
eventTarget.addEventListener('foo', spy1, true);
|
||||
eventTarget.addEventListener('foo', spy3, false);
|
||||
expect(eventTarget.getListeners('foo')).to.eql([spy2, spy1, spy3]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#removeEventListener()', function() {
|
||||
it('keeps the listeners registry clean', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.removeEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.removeEventListener('foo', spy1);
|
||||
expect(eventTarget.hasListener('foo')).to.be(false);
|
||||
});
|
||||
it('removes added listeners from the listeners registry', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy2, false);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('foo', spy2);
|
||||
eventTarget.removeEventListener('foo', spy1, false);
|
||||
expect(eventTarget.getListeners('foo')).to.have.length(1);
|
||||
});
|
||||
it('ignores the useCapture setting when removing listeners', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy2, false);
|
||||
eventTarget.addEventListener('foo', spy3, true);
|
||||
eventTarget.removeEventListener('foo', spy1, true);
|
||||
eventTarget.removeEventListener('foo', spy2);
|
||||
eventTarget.removeEventListener('foo', spy3, false);
|
||||
expect(eventTarget.getListeners('foo')).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#dispatchEvent()', function() {
|
||||
it('calls listeners in the correct order', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy2, false);
|
||||
eventTarget.addEventListener('foo', spy3, true);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('foo', spy2);
|
||||
eventTarget.dispatchEvent('foo');
|
||||
expect(called).to.eql([3, 1, 2]);
|
||||
expect(called).to.eql([1, 2]);
|
||||
});
|
||||
it('stops propagation when listeners return false', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('foo', function(evt) {
|
||||
spy2();
|
||||
return false;
|
||||
}, false);
|
||||
eventTarget.addEventListener('foo', spy3, false);
|
||||
eventTarget.addEventListener('foo', spy3);
|
||||
eventTarget.dispatchEvent('foo');
|
||||
expect(called).to.eql([1, 2]);
|
||||
});
|
||||
it('stops propagation when listeners call preventDefault()', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', function(evt) {
|
||||
spy2();
|
||||
evt.preventDefault();
|
||||
}, true);
|
||||
eventTarget.addEventListener('foo', spy3, false);
|
||||
});
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.dispatchEvent('foo');
|
||||
expect(called).to.eql([2]);
|
||||
});
|
||||
it('passes a default ol.events.Event object to listeners', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.dispatchEvent('foo');
|
||||
expect(events[0]).to.be.a(ol.events.Event);
|
||||
expect(events[0].type).to.be('foo');
|
||||
expect(events[0].target).to.equal(eventTarget);
|
||||
});
|
||||
it('passes a custom event object with target to listeners', function() {
|
||||
eventTarget.addEventListener('foo', spy1, false);
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
var event = {
|
||||
type: 'foo'
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user