From 0377e4a32256c1db3aba75e300460897c9dc5319 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Tue, 8 Mar 2016 16:52:54 +0100 Subject: [PATCH] Add tests for corner cases --- test/spec/ol/events/eventtarget.test.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/spec/ol/events/eventtarget.test.js b/test/spec/ol/events/eventtarget.test.js index af5cbc3add..2d0cd19653 100644 --- a/test/spec/ol/events/eventtarget.test.js +++ b/test/spec/ol/events/eventtarget.test.js @@ -130,6 +130,23 @@ describe('ol.events.EventTarget', function() { expect(called).to.eql([3]); expect(eventTarget.getListeners('foo')).to.have.length(1); }); + it('is safe to do weird things in listeners', function() { + eventTarget.addEventListener('foo', spy2); + eventTarget.addEventListener('foo', function weird(evt) { + eventTarget.removeEventListener('foo', weird); + eventTarget.removeEventListener('foo', spy1); + eventTarget.dispatchEvent('foo'); + eventTarget.removeEventListener('foo', spy2); + eventTarget.dispatchEvent('foo'); + evt.preventDefault(); + }); + eventTarget.addEventListener('foo', spy1); + expect(function() { + eventTarget.dispatchEvent('foo'); + }).not.to.throwException(); + expect(called).to.eql([2, 2]); + expect(eventTarget.getListeners('foo')).to.be(undefined); + }); }); describe('#dispose()', function() {