eventlistener
Version:
Super-simple wrapper around addEventListener and attachEvent (old IE). Does not handle different Event-objects.
35 lines (31 loc) • 1.3 kB
JavaScript
suite('eventListener', function () {
var callback = function () {};
suite('add', function () {
test('should use addEventListener when it exists', function () {
var el = {addEventListener: sinon.spy()};
eventListener.add(el, 'click', callback, false);
assert(el.addEventListener.calledOnce);
assert(el.addEventListener.calledWith('click', callback, false));
});
test('should fallback to attachEvent when addEventListener is missing', function () {
var el = {attachEvent: sinon.spy()};
eventListener.add(el, 'click', callback, false);
assert(el.attachEvent.calledOnce);
assert(el.attachEvent.calledWith('onclick', callback));
});
});
suite('remove', function () {
test('should use removeEventListener when it exists', function () {
var el = {removeEventListener: sinon.spy()};
eventListener.remove(el, 'click', callback, false);
assert(el.removeEventListener.calledOnce);
assert(el.removeEventListener.calledWith('click', callback, false));
});
test('should fallback to detachEvent when removeEventListener is missing', function () {
var el = {detachEvent: sinon.spy()};
eventListener.remove(el, 'click', callback, false);
assert(el.detachEvent.calledOnce);
assert(el.detachEvent.calledWith('onclick', callback));
});
});
});