Merge pull request #4711 from ahocevar/no-goog-events
Removal of goog.events.*
This commit is contained in:
@@ -32,22 +32,6 @@
|
||||
|
||||
goog.json.USE_NATIVE_JSON = true;
|
||||
|
||||
/**
|
||||
* The goog.dom.ViewportSizeMonitor (used in map.js) creates a global leak
|
||||
* by setting goog.UID_PROPERTY_ on the monitored window. In order to test
|
||||
* that we don't have other global leaks, we preemptively set the property
|
||||
* so Mocha can compare the global before and after our tests.
|
||||
*
|
||||
* In addition, calling goog.events.listen on the global object (as done
|
||||
* in deviceorientation.js) creates a second leak by setting
|
||||
* goog.events.LISTENER_MAP_PROP_ on the global object.
|
||||
*
|
||||
* We preemptively set both of these properties so Mocha can compare the
|
||||
* global before and after tests. The call to goog.events.listen also
|
||||
* calls goog.getUid.
|
||||
*/
|
||||
goog.events.listen(this, 'test', function() {});
|
||||
|
||||
var runner = mocha.run();
|
||||
if (window.console && console.log) {
|
||||
// write stacks to the console for failed tests
|
||||
|
||||
@@ -114,7 +114,7 @@ describe('ol.collection', function() {
|
||||
it('fires a remove event', function() {
|
||||
var collection = new ol.Collection([0, 1, 2]);
|
||||
var cb = sinon.spy();
|
||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb);
|
||||
ol.events.listen(collection, ol.CollectionEventType.REMOVE, cb);
|
||||
expect(collection.remove(1)).to.eql(1);
|
||||
expect(cb).to.be.called();
|
||||
expect(cb.lastCall.args[0].element).to.eql(1);
|
||||
@@ -137,10 +137,10 @@ describe('ol.collection', function() {
|
||||
it('does dispatch events', function() {
|
||||
var collection = new ol.Collection(['a', 'b']);
|
||||
var added, removed;
|
||||
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||
ol.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||
added = e.element;
|
||||
});
|
||||
goog.events.listen(
|
||||
ol.events.listen(
|
||||
collection, ol.CollectionEventType.REMOVE, function(e) {
|
||||
removed = e.element;
|
||||
});
|
||||
@@ -154,7 +154,7 @@ describe('ol.collection', function() {
|
||||
it('does dispatch events', function() {
|
||||
var collection = new ol.Collection(['a']);
|
||||
var removed;
|
||||
goog.events.listen(
|
||||
ol.events.listen(
|
||||
collection, ol.CollectionEventType.REMOVE, function(e) {
|
||||
removed = e.element;
|
||||
});
|
||||
@@ -167,7 +167,7 @@ describe('ol.collection', function() {
|
||||
it('does dispatch events', function() {
|
||||
var collection = new ol.Collection([0, 2]);
|
||||
var added;
|
||||
goog.events.listen(
|
||||
ol.events.listen(
|
||||
collection, ol.CollectionEventType.ADD, function(e) {
|
||||
added = e.element;
|
||||
});
|
||||
@@ -179,7 +179,7 @@ describe('ol.collection', function() {
|
||||
describe('setAt beyond end', function() {
|
||||
it('triggers events properly', function() {
|
||||
var added = [];
|
||||
goog.events.listen(
|
||||
ol.events.listen(
|
||||
collection, ol.CollectionEventType.ADD, function(e) {
|
||||
added.push(e.element);
|
||||
});
|
||||
@@ -200,7 +200,7 @@ describe('ol.collection', function() {
|
||||
beforeEach(function() {
|
||||
collection = new ol.Collection([0, 1, 2]);
|
||||
cb = sinon.spy();
|
||||
goog.events.listen(collection, 'change:length', cb);
|
||||
ol.events.listen(collection, 'change:length', cb);
|
||||
});
|
||||
|
||||
describe('insertAt', function() {
|
||||
@@ -229,7 +229,7 @@ describe('ol.collection', function() {
|
||||
it('triggers add when pushing', function() {
|
||||
var collection = new ol.Collection();
|
||||
var elem;
|
||||
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||
ol.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||
elem = e.element;
|
||||
});
|
||||
collection.push(1);
|
||||
@@ -246,8 +246,8 @@ describe('ol.collection', function() {
|
||||
});
|
||||
describe('setAt', function() {
|
||||
it('triggers remove', function() {
|
||||
goog.events.listen(collection, ol.CollectionEventType.ADD, cb1);
|
||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb2);
|
||||
ol.events.listen(collection, ol.CollectionEventType.ADD, cb1);
|
||||
ol.events.listen(collection, ol.CollectionEventType.REMOVE, cb2);
|
||||
collection.setAt(0, 2);
|
||||
expect(cb2.lastCall.args[0].element).to.eql(1);
|
||||
expect(cb1.lastCall.args[0].element).to.eql(2);
|
||||
@@ -255,7 +255,7 @@ describe('ol.collection', function() {
|
||||
});
|
||||
describe('pop', function() {
|
||||
it('triggers remove', function() {
|
||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb1);
|
||||
ol.events.listen(collection, ol.CollectionEventType.REMOVE, cb1);
|
||||
collection.pop();
|
||||
expect(cb1.lastCall.args[0].element).to.eql(1);
|
||||
});
|
||||
@@ -273,7 +273,7 @@ describe('ol.collection', function() {
|
||||
it('fires events', function() {
|
||||
var collection = new ol.Collection();
|
||||
var elems = [];
|
||||
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||
ol.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||
elems.push(e.element);
|
||||
});
|
||||
collection.extend([1, 2]);
|
||||
@@ -284,6 +284,6 @@ describe('ol.collection', function() {
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.CollectionEventType');
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/*global createMapDiv, disposeMap*/
|
||||
goog.provide('ol.test.control.ZoomSlider');
|
||||
|
||||
describe('ol.control.ZoomSlider', function() {
|
||||
@@ -50,10 +51,10 @@ describe('ol.control.ZoomSlider', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('dragger setup', function() {
|
||||
it('creates a goog.fx.Dragger', function() {
|
||||
expect(zoomslider.dragger_ instanceof goog.fx.Dragger).to.be(true);
|
||||
expect(zoomslider.dragger_.limits instanceof goog.math.Rect).to.be(true);
|
||||
describe('#initSlider_', function() {
|
||||
it('sets limits', function() {
|
||||
zoomslider.initSlider_();
|
||||
expect(zoomslider.limits_ instanceof goog.math.Rect).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -85,12 +86,104 @@ describe('ol.control.ZoomSlider', function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe('Pointer event handling', function() {
|
||||
var map;
|
||||
|
||||
beforeEach(function() {
|
||||
map = new ol.Map({
|
||||
target: createMapDiv(500, 100),
|
||||
view: new ol.View({
|
||||
center: [0, 0],
|
||||
resolutions: [16, 8, 4, 2, 1, 0.5, 0.25, 0.125, 0.0625]
|
||||
})
|
||||
});
|
||||
});
|
||||
afterEach(function() {
|
||||
disposeMap(map);
|
||||
});
|
||||
|
||||
it('[horizontal] handles a drag sequence', function() {
|
||||
var spy = sinon.spy(goog.Disposable.prototype, 'registerDisposable');
|
||||
var control = new ol.control.ZoomSlider();
|
||||
map.addControl(control);
|
||||
map.getView().setZoom(0);
|
||||
control.element.style.width = '500px';
|
||||
control.element.style.height = '10px';
|
||||
control.element.firstChild.style.width = '100px';
|
||||
control.element.firstChild.style.height = '10px';
|
||||
map.renderSync();
|
||||
var dragger = spy.firstCall.args[0];
|
||||
spy.restore();
|
||||
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
||||
target: control.element.firstElementChild
|
||||
});
|
||||
event.clientX = control.limits_.width;
|
||||
event.clientY = 0;
|
||||
dragger.dispatchEvent(event);
|
||||
expect(control.currentResolution_).to.be(16);
|
||||
expect(control.dragging_).to.be(true);
|
||||
expect(control.dragListenerKeys_).to.be.ok();
|
||||
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||
event.clientX = 6 * control.limits_.width / 8;
|
||||
event.clientY = 0;
|
||||
dragger.dispatchEvent(event);
|
||||
expect(control.currentResolution_).to.be(4);
|
||||
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||
event.clientX = 4 * control.limits_.width / 8;
|
||||
event.clientY = 0;
|
||||
dragger.dispatchEvent(event);
|
||||
event.type = ol.pointer.EventType.POINTERUP;
|
||||
dragger.dispatchEvent(event);
|
||||
expect(control.currentResolution_).to.be(1);
|
||||
expect(control.dragListenerKeys_).to.be(null);
|
||||
expect(control.dragging_).to.be(false);
|
||||
});
|
||||
it('[vertical] handles a drag sequence', function() {
|
||||
var spy = sinon.spy(goog.Disposable.prototype, 'registerDisposable');
|
||||
var control = new ol.control.ZoomSlider();
|
||||
control.element.style.width = '10px';
|
||||
control.element.style.height = '100px';
|
||||
control.element.firstChild.style.width = '10px';
|
||||
control.element.firstChild.style.height = '20px';
|
||||
map.addControl(control);
|
||||
map.getView().setZoom(8);
|
||||
map.renderSync();
|
||||
var dragger = spy.firstCall.args[0];
|
||||
spy.restore();
|
||||
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
||||
target: control.element.firstElementChild
|
||||
});
|
||||
event.clientX = 0;
|
||||
event.clientY = 0;
|
||||
dragger.dispatchEvent(event);
|
||||
expect(control.currentResolution_).to.be(0.0625);
|
||||
expect(control.dragging_).to.be(true);
|
||||
expect(control.dragListenerKeys_).to.be.ok();
|
||||
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||
event.clientX = 0;
|
||||
event.clientY = 2 * control.limits_.height / 8;
|
||||
dragger.dispatchEvent(event);
|
||||
expect(control.currentResolution_).to.be(0.25);
|
||||
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||
event.clientX = 0;
|
||||
event.clientY = 4 * control.limits_.height / 8;
|
||||
dragger.dispatchEvent(event);
|
||||
event.type = ol.pointer.EventType.POINTERUP;
|
||||
dragger.dispatchEvent(event);
|
||||
expect(control.currentResolution_).to.be(1);
|
||||
expect(control.dragListenerKeys_).to.be(null);
|
||||
expect(control.dragging_).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
goog.require('goog.Disposable');
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.classlist');
|
||||
goog.require('goog.fx.Dragger');
|
||||
goog.require('goog.math.Rect');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.View');
|
||||
goog.require('ol.control.ZoomSlider');
|
||||
goog.require('ol.pointer.PointerEvent');
|
||||
|
||||
216
test/spec/ol/events.test.js
Normal file
216
test/spec/ol/events.test.js
Normal file
@@ -0,0 +1,216 @@
|
||||
goog.provide('ol.test.events');
|
||||
|
||||
|
||||
describe('ol.events', function() {
|
||||
var add, remove, target;
|
||||
|
||||
beforeEach(function() {
|
||||
add = sinon.spy();
|
||||
remove = sinon.spy();
|
||||
target = {
|
||||
addEventListener: add,
|
||||
removeEventListener: remove
|
||||
};
|
||||
});
|
||||
|
||||
describe('bindListener_()', function() {
|
||||
it('binds a listener and returns a bound listener function', function() {
|
||||
var listenerObj = {
|
||||
listener: sinon.spy(),
|
||||
bindTo: {id: 1}
|
||||
};
|
||||
var boundListener = ol.events.bindListener_(listenerObj);
|
||||
expect(listenerObj.boundListener).to.equal(boundListener);
|
||||
boundListener();
|
||||
expect(listenerObj.listener.thisValues[0]).to.equal(listenerObj.bindTo);
|
||||
});
|
||||
it('binds a self-unregistering listener when callOnce is true', function() {
|
||||
var bindTo = {id: 1};
|
||||
var listener = sinon.spy();
|
||||
target.removeEventListener = function() {};
|
||||
var listenerObj = {
|
||||
type: 'foo',
|
||||
target: target,
|
||||
listener: listener,
|
||||
bindTo: bindTo,
|
||||
callOnce: true
|
||||
};
|
||||
var boundListener = ol.events.bindListener_(listenerObj);
|
||||
expect(listenerObj.boundListener).to.equal(boundListener);
|
||||
var spy = sinon.spy(ol.events, 'unlistenByKey');
|
||||
boundListener();
|
||||
expect(listener.thisValues[0]).to.equal(bindTo);
|
||||
expect(spy.firstCall.args[0]).to.eql(listenerObj);
|
||||
ol.events.unlistenByKey.restore();
|
||||
});
|
||||
});
|
||||
|
||||
describe('findListener_()', function() {
|
||||
var listener, listenerObj, listeners;
|
||||
|
||||
beforeEach(function() {
|
||||
listener = function() {};
|
||||
listenerObj = {
|
||||
type: 'foo',
|
||||
target: target,
|
||||
listener: listener
|
||||
};
|
||||
listeners = [listenerObj];
|
||||
});
|
||||
|
||||
it('searches a listener array for a specific listener', function() {
|
||||
var bindTo = {id: 1};
|
||||
var result = ol.events.findListener_(listeners, listener);
|
||||
expect(result).to.be(listenerObj);
|
||||
result = ol.events.findListener_(listeners, listener, bindTo);
|
||||
expect(result).to.be(undefined);
|
||||
listenerObj.bindTo = bindTo;
|
||||
result = ol.events.findListener_(listeners, listener);
|
||||
expect(result).to.be(undefined);
|
||||
result = ol.events.findListener_(listeners, listener, bindTo);
|
||||
expect(result).to.be(listenerObj);
|
||||
});
|
||||
it('marks the delete index on a listener object', function() {
|
||||
var result = ol.events.findListener_(listeners, listener, undefined, true);
|
||||
expect(result).to.be(listenerObj);
|
||||
expect(listenerObj.deleteIndex).to.be(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getListeners()', function() {
|
||||
it('returns listeners for a target and type', function() {
|
||||
var foo = ol.events.listen(target, 'foo', function() {});
|
||||
var bar = ol.events.listen(target, 'bar', function() {});
|
||||
expect (ol.events.getListeners(target, 'foo')).to.eql([foo]);
|
||||
expect (ol.events.getListeners(target, 'bar')).to.eql([bar]);
|
||||
});
|
||||
it('returns undefined when no listeners are registered', function() {
|
||||
expect (ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('listen()', function() {
|
||||
it('calls addEventListener on the target', function() {
|
||||
ol.events.listen(target, 'foo', function() {});
|
||||
expect(add.callCount).to.be(1);
|
||||
});
|
||||
it('returns a key', function() {
|
||||
var key = ol.events.listen(target, 'foo', function() {});
|
||||
expect(key).to.be.a(Object);
|
||||
});
|
||||
it('does not add the same listener twice', function() {
|
||||
var listener = function() {};
|
||||
var key1 = ol.events.listen(target, 'foo', listener);
|
||||
var key2 = ol.events.listen(target, 'foo', listener);
|
||||
expect(key1).to.equal(key2);
|
||||
expect(add.callCount).to.be(1);
|
||||
});
|
||||
it('only treats listeners as same when all args are equal', function() {
|
||||
var listener = function() {};
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
||||
describe('listenOnce()', function() {
|
||||
it('creates a one-off listener', function() {
|
||||
var listener = sinon.spy();
|
||||
var key = ol.events.listenOnce(target, 'foo', listener);
|
||||
expect(add.callCount).to.be(1);
|
||||
expect(key.callOnce).to.be(true);
|
||||
key.boundListener();
|
||||
expect(listener.callCount).to.be(1);
|
||||
expect(remove.callCount).to.be(1);
|
||||
});
|
||||
it('does not add the same listener twice', function() {
|
||||
var listener = function() {};
|
||||
var key1 = ol.events.listenOnce(target, 'foo', listener);
|
||||
var key2 = ol.events.listenOnce(target, 'foo', listener);
|
||||
expect(key1).to.equal(key2);
|
||||
expect(add.callCount).to.be(1);
|
||||
expect(key1.callOnce).to.be(true);
|
||||
});
|
||||
it('listen() can turn a one-off listener into a permanent one', function() {
|
||||
var listener = sinon.spy();
|
||||
var key = ol.events.listenOnce(target, 'foo', listener);
|
||||
expect(key.callOnce).to.be(true);
|
||||
key = ol.events.listen(target, 'foo', listener);
|
||||
expect(add.callCount).to.be(1);
|
||||
expect(key.callOnce).to.be(false);
|
||||
key.boundListener();
|
||||
expect(remove.callCount).to.be(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('unlisten()', function() {
|
||||
it('unregisters previously registered listeners', function() {
|
||||
var listener = function() {};
|
||||
ol.events.listen(target, 'foo', listener);
|
||||
ol.events.unlisten(target, 'foo', listener);
|
||||
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||
});
|
||||
it('works with multiple types', function() {
|
||||
var listener = function() {};
|
||||
ol.events.listen(target, ['foo', 'bar'], listener);
|
||||
ol.events.unlisten(target, ['bar', 'foo'], listener);
|
||||
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('unlistenByKey()', function() {
|
||||
it('unregisters previously registered listeners', function() {
|
||||
var key = ol.events.listen(target, 'foo', function() {});
|
||||
ol.events.unlistenByKey(key);
|
||||
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||
});
|
||||
it('works with multiple types', function() {
|
||||
var key = ol.events.listen(target, ['foo', 'bar'], function() {});
|
||||
ol.events.unlistenByKey(key);
|
||||
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('unlistenAll()', function() {
|
||||
it('unregisters all listeners registered for a target', function() {
|
||||
var keys = [
|
||||
ol.events.listen(target, 'foo', function() {}),
|
||||
ol.events.listen(target, 'bar', function() {})
|
||||
];
|
||||
ol.events.unlistenAll(target);
|
||||
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||
expect(ol.events.LISTENER_MAP_PROP_ in target).to.be(false);
|
||||
expect(keys).to.eql([{}, {}]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Compatibility with ol.events.EventTarget', 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);
|
||||
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]);
|
||||
});
|
||||
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, {});
|
||||
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]);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventTarget');
|
||||
57
test/spec/ol/events/event.test.js
Normal file
57
test/spec/ol/events/event.test.js
Normal file
@@ -0,0 +1,57 @@
|
||||
goog.provide('ol.test.events.Event');
|
||||
|
||||
|
||||
describe('ol.events.Event', function() {
|
||||
|
||||
describe('constructor', function() {
|
||||
it('takes a type as argument', function() {
|
||||
var event = new ol.events.Event('foo');
|
||||
expect(event.type).to.be('foo');
|
||||
});
|
||||
it('can be constructed with an optional 2nd target arg', function() {
|
||||
var target = {id: 1};
|
||||
var event = new ol.events.Event('foo', target);
|
||||
expect(event.target).to.equal(target);
|
||||
});
|
||||
it('does not set the propagationStopped flag', function() {
|
||||
var event = new ol.events.Event('foo');
|
||||
expect(event.propagationStopped).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#preventDefault', function() {
|
||||
it('sets the propagationStopped flag', function() {
|
||||
var event = new ol.events.Event('foo');
|
||||
event.preventDefault();
|
||||
expect(event.propagationStopped).to.be(true);
|
||||
});
|
||||
it('is the same as #stopPropagation', function() {
|
||||
var event = new ol.events.Event('foo');
|
||||
expect(event.stopPropagation).to.equal(event.preventDefault);
|
||||
});
|
||||
});
|
||||
|
||||
describe('ol.events.Event.preventDefault', function() {
|
||||
it('calls preventDefault on the event object', function() {
|
||||
var event = {
|
||||
preventDefault: sinon.spy()
|
||||
};
|
||||
ol.events.Event.preventDefault(event);
|
||||
expect(event.preventDefault.called).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('ol.events.Event.stopPropagation', function() {
|
||||
it('calls preventDefault on the event object', function() {
|
||||
var event = {
|
||||
stopPropagation: sinon.spy()
|
||||
};
|
||||
ol.events.Event.stopPropagation(event);
|
||||
expect(event.stopPropagation.called).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('ol.events.Event');
|
||||
132
test/spec/ol/events/eventtarget.test.js
Normal file
132
test/spec/ol/events/eventtarget.test.js
Normal file
@@ -0,0 +1,132 @@
|
||||
goog.provide('ol.test.events.EventTarget');
|
||||
|
||||
|
||||
describe('ol.events.EventTarget', function() {
|
||||
var called, events, eventTarget, spy1, spy2, spy3;
|
||||
|
||||
beforeEach(function() {
|
||||
called = [];
|
||||
events = [];
|
||||
function spy(evt) {
|
||||
called.push(this.id);
|
||||
events.push(evt);
|
||||
}
|
||||
spy1 = spy.bind({id: 1});
|
||||
spy2 = spy.bind({id: 2});
|
||||
spy3 = spy.bind({id: 3});
|
||||
eventTarget = new ol.events.EventTarget();
|
||||
});
|
||||
|
||||
describe('constructor', function() {
|
||||
it('creates an instance', function() {
|
||||
expect(eventTarget).to.be.a(ol.events.EventTarget);
|
||||
});
|
||||
it('creates an empty listeners_ object', function() {
|
||||
expect(Object.keys(eventTarget.listeners_)).to.have.length(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#hasListener', function() {
|
||||
it('reports any listeners when called without argument', function() {
|
||||
expect(eventTarget.hasListener()).to.be(false);
|
||||
eventTarget.listeners_['foo'] = [function() {}];
|
||||
expect(eventTarget.hasListener()).to.be(true);
|
||||
});
|
||||
it('reports listeners for the type passed as argument', function() {
|
||||
eventTarget.listeners_['foo'] = [function() {}];
|
||||
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||
expect(eventTarget.hasListener('bar')).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getListeners', function() {
|
||||
it('returns listeners for a type or undefined if none', function() {
|
||||
expect(eventTarget.getListeners('foo')).to.be(undefined);
|
||||
var listeners = [function() {}];
|
||||
eventTarget.listeners_['foo'] = listeners;
|
||||
expect(eventTarget.getListeners('foo')).to.equal(listeners);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('#addEventListener()', function() {
|
||||
it('has listeners for each registered type', function() {
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('bar', spy2);
|
||||
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||
expect(eventTarget.hasListener('bar')).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#removeEventListener()', function() {
|
||||
it('keeps the listeners registry clean', function() {
|
||||
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);
|
||||
eventTarget.addEventListener('foo', spy2);
|
||||
eventTarget.removeEventListener('foo', spy1, false);
|
||||
expect(eventTarget.getListeners('foo')).to.have.length(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#dispatchEvent()', function() {
|
||||
it('calls listeners in the correct order', function() {
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('foo', spy2);
|
||||
eventTarget.dispatchEvent('foo');
|
||||
expect(called).to.eql([1, 2]);
|
||||
});
|
||||
it('stops propagation when listeners return false', function() {
|
||||
eventTarget.addEventListener('foo', spy1);
|
||||
eventTarget.addEventListener('foo', function(evt) {
|
||||
spy2();
|
||||
return false;
|
||||
}, 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', function(evt) {
|
||||
spy2();
|
||||
evt.preventDefault();
|
||||
});
|
||||
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);
|
||||
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);
|
||||
var event = {
|
||||
type: 'foo'
|
||||
};
|
||||
eventTarget.dispatchEvent(event);
|
||||
expect(events[0]).to.equal(event);
|
||||
expect(events[0].target).to.equal(eventTarget);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#dispose()', function() {
|
||||
it('cleans up foreign references', function() {
|
||||
ol.events.listen(eventTarget, 'foo', spy1, document);
|
||||
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||
eventTarget.dispose();
|
||||
expect(eventTarget.hasListener('foo')).to.be(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.Event');
|
||||
goog.require('ol.events.EventTarget');
|
||||
@@ -462,7 +462,7 @@ describe('ol.Feature.createStyleFunction()', function() {
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.events');
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.Feature');
|
||||
goog.require('ol.geom.Point');
|
||||
|
||||
@@ -69,7 +69,7 @@ describe('ol.featureloader', function() {
|
||||
var url = 'spec/ol/data/point.json';
|
||||
var format = new ol.format.GeoJSON();
|
||||
loader = ol.featureloader.tile(url, format);
|
||||
goog.events.listen(tile, 'change', function(e) {
|
||||
ol.events.listen(tile, 'change', function(e) {
|
||||
expect(tile.getFeatures().length).to.be.greaterThan(0);
|
||||
done();
|
||||
});
|
||||
@@ -81,7 +81,7 @@ describe('ol.featureloader', function() {
|
||||
var url = 'spec/ol/data/14-8938-5680.vector.pbf';
|
||||
var format = new ol.format.MVT();
|
||||
loader = ol.featureloader.tile(url, format);
|
||||
goog.events.listen(tile, 'change', function(e) {
|
||||
ol.events.listen(tile, 'change', function(e) {
|
||||
expect(tile.getFeatures().length).to.be.greaterThan(0);
|
||||
expect(tile.getProjection().getUnits()).to.be('tile-pixels');
|
||||
done();
|
||||
@@ -93,7 +93,7 @@ describe('ol.featureloader', function() {
|
||||
|
||||
});
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.VectorTile');
|
||||
goog.require('ol.featureloader');
|
||||
goog.require('ol.format.GeoJSON');
|
||||
|
||||
@@ -1,16 +1,101 @@
|
||||
goog.provide('ol.test.interaction.DragAndDrop');
|
||||
|
||||
describe('ol.interaction.DragAndDrop', function() {
|
||||
var viewport, map, interaction;
|
||||
|
||||
beforeEach(function() {
|
||||
viewport = new ol.events.EventTarget();
|
||||
map = {
|
||||
getViewport: function() {
|
||||
return viewport;
|
||||
},
|
||||
getView: function() {
|
||||
return new ol.View()
|
||||
}
|
||||
};
|
||||
interaction = new ol.interaction.DragAndDrop({
|
||||
formatConstructors: [ol.format.GeoJSON]
|
||||
});
|
||||
});
|
||||
|
||||
describe('constructor', function() {
|
||||
|
||||
it('can be constructed without arguments', function() {
|
||||
var instance = new ol.interaction.DragAndDrop();
|
||||
expect(instance).to.be.an(ol.interaction.DragAndDrop);
|
||||
var interaction = new ol.interaction.DragAndDrop();
|
||||
expect(interaction).to.be.an(ol.interaction.DragAndDrop);
|
||||
});
|
||||
|
||||
it('sets formatConstructors on the instance', function() {
|
||||
expect(interaction.formatConstructors_).to.have.length(1);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
describe('#setMap()', function() {
|
||||
it('registers and unregisters listeners', function() {
|
||||
interaction.setMap(map);
|
||||
expect(viewport.hasListener(ol.events.EventType.DRAGENTER)).to.be(true);
|
||||
expect(viewport.hasListener(ol.events.EventType.DRAGOVER)).to.be(true);
|
||||
expect(viewport.hasListener(ol.events.EventType.DROP)).to.be(true);
|
||||
interaction.setMap(null);
|
||||
expect(viewport.hasListener(ol.events.EventType.DRAGENTER)).to.be(false);
|
||||
expect(viewport.hasListener(ol.events.EventType.DRAGOVER)).to.be(false);
|
||||
expect(viewport.hasListener(ol.events.EventType.DROP)).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#handleDrop_', function() {
|
||||
var origFileReader = goog.global.FileReader;
|
||||
|
||||
beforeEach(function() {
|
||||
FileReader = function() {
|
||||
ol.events.EventTarget.apply(this, arguments);
|
||||
this.readAsText = function(file) {
|
||||
this.result = file;
|
||||
this.dispatchEvent('load');
|
||||
};
|
||||
};
|
||||
ol.inherits(FileReader, ol.events.EventTarget);
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
goog.global.FileReader = origFileReader;
|
||||
});
|
||||
|
||||
it('reads dropped files', function(done) {
|
||||
interaction.on('addfeatures', function(evt) {
|
||||
expect(evt.features.length).to.be(1);
|
||||
done();
|
||||
});
|
||||
interaction.setMap(map);
|
||||
var event = new ol.events.Event();
|
||||
event.dataTransfer = {};
|
||||
event.type = ol.events.EventType.DRAGENTER;
|
||||
viewport.dispatchEvent(event);
|
||||
event.type = ol.events.EventType.DRAGOVER;
|
||||
viewport.dispatchEvent(event);
|
||||
event.type = ol.events.EventType.DROP;
|
||||
event.dataTransfer.files = {
|
||||
length: 1,
|
||||
item: function() {
|
||||
return JSON.stringify({
|
||||
type: 'FeatureCollection',
|
||||
features: [{type: 'Feature', id: '1'}]
|
||||
});
|
||||
}
|
||||
}
|
||||
viewport.dispatchEvent(event);
|
||||
expect(event.dataTransfer.dropEffect).to.be('copy');
|
||||
expect(event.propagationStopped).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
goog.require('ol.interaction.DragAndDrop');
|
||||
goog.require('ol.View');
|
||||
goog.require('ol.events.Event');
|
||||
goog.require('ol.events.EventTarget');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.format.GeoJSON');
|
||||
|
||||
@@ -51,11 +51,11 @@ describe('ol.interaction.Draw', function() {
|
||||
var shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false;
|
||||
var event = new ol.MapBrowserPointerEvent(type, map,
|
||||
new ol.pointer.PointerEvent(type,
|
||||
new goog.events.BrowserEvent({
|
||||
{
|
||||
clientX: position.x + x + width / 2,
|
||||
clientY: position.y + y + height / 2,
|
||||
shiftKey: shiftKey
|
||||
})));
|
||||
}));
|
||||
map.handleMapBrowserEvent(event);
|
||||
}
|
||||
|
||||
@@ -163,8 +163,8 @@ describe('ol.interaction.Draw', function() {
|
||||
it('triggers draw events', function() {
|
||||
var ds = sinon.spy();
|
||||
var de = sinon.spy();
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
simulateEvent('pointermove', 10, 20);
|
||||
simulateEvent('pointerdown', 10, 20);
|
||||
simulateEvent('pointerup', 10, 20);
|
||||
@@ -180,7 +180,7 @@ describe('ol.interaction.Draw', function() {
|
||||
end: 0,
|
||||
addfeature: 0
|
||||
};
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND,
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND,
|
||||
function() {
|
||||
expect(receivedEvents.end).to.be(0);
|
||||
expect(receivedEvents.addfeature).to.be(0);
|
||||
@@ -309,8 +309,8 @@ describe('ol.interaction.Draw', function() {
|
||||
it('triggers draw events', function() {
|
||||
var ds = sinon.spy();
|
||||
var de = sinon.spy();
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
|
||||
// first point
|
||||
simulateEvent('pointermove', 10, 20);
|
||||
@@ -467,8 +467,8 @@ describe('ol.interaction.Draw', function() {
|
||||
it('triggers draw events', function() {
|
||||
var ds = sinon.spy();
|
||||
var de = sinon.spy();
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
|
||||
// first point
|
||||
simulateEvent('pointermove', 10, 20);
|
||||
@@ -607,8 +607,8 @@ describe('ol.interaction.Draw', function() {
|
||||
it('triggers draw events', function() {
|
||||
var ds = sinon.spy();
|
||||
var de = sinon.spy();
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||
|
||||
// first point
|
||||
simulateEvent('pointermove', 10, 20);
|
||||
@@ -805,7 +805,7 @@ describe('ol.interaction.Draw', function() {
|
||||
|
||||
it('dispatches a drawstart event', function() {
|
||||
var spy = sinon.spy();
|
||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, spy);
|
||||
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, spy);
|
||||
draw.extend(feature);
|
||||
expect(spy.callCount).to.be(1);
|
||||
});
|
||||
@@ -814,8 +814,7 @@ describe('ol.interaction.Draw', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('ol.events');
|
||||
goog.require('goog.style');
|
||||
goog.require('ol.Feature');
|
||||
goog.require('ol.Map');
|
||||
|
||||
@@ -11,7 +11,7 @@ describe('ol.interaction.Interaction', function() {
|
||||
|
||||
it('creates a new interaction', function() {
|
||||
expect(interaction).to.be.a(ol.interaction.Interaction);
|
||||
expect(interaction).to.be.a(goog.events.EventTarget);
|
||||
expect(interaction).to.be.a(ol.events.EventTarget);
|
||||
});
|
||||
|
||||
it('creates an active interaction', function() {
|
||||
@@ -55,6 +55,6 @@ describe('ol.interaction.Interaction', function() {
|
||||
|
||||
});
|
||||
|
||||
goog.require('goog.events.EventTarget');
|
||||
goog.require('ol.events.EventTarget');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.interaction.Interaction');
|
||||
|
||||
58
test/spec/ol/interaction/keyboardpaninteraction.test.js
Normal file
58
test/spec/ol/interaction/keyboardpaninteraction.test.js
Normal file
@@ -0,0 +1,58 @@
|
||||
/*global createMapDiv, disposeMap*/
|
||||
goog.provide('ol.test.interaction.KeyboardPan');
|
||||
|
||||
|
||||
describe('ol.interaction.KeyboardPan', function() {
|
||||
var map;
|
||||
|
||||
beforeEach(function() {
|
||||
map = new ol.Map({
|
||||
target: createMapDiv(100, 100),
|
||||
view: new ol.View({
|
||||
center: [0, 0],
|
||||
resolutions: [1],
|
||||
zoom: 0
|
||||
})
|
||||
});
|
||||
map.renderSync();
|
||||
});
|
||||
afterEach(function() {
|
||||
disposeMap(map);
|
||||
});
|
||||
|
||||
describe('handleEvent()', function() {
|
||||
it('pans on arrow keys', function() {
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'pan');
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.KEYDOWN, map, {
|
||||
type: ol.events.EventType.KEYDOWN,
|
||||
target: map.getTargetElement(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.originalEvent.keyCode = ol.events.KeyCode.DOWN;
|
||||
map.handleMapBrowserEvent(event);
|
||||
event.originalEvent.keyCode = ol.events.KeyCode.UP;
|
||||
map.handleMapBrowserEvent(event);
|
||||
event.originalEvent.keyCode = ol.events.KeyCode.LEFT;
|
||||
map.handleMapBrowserEvent(event);
|
||||
event.originalEvent.keyCode = ol.events.KeyCode.RIGHT;
|
||||
map.handleMapBrowserEvent(event);
|
||||
expect(spy.getCall(0).args[2]).to.eql([0, -128]);
|
||||
expect(spy.getCall(1).args[2]).to.eql([0, 128]);
|
||||
expect(spy.getCall(2).args[2]).to.eql([-128, 0]);
|
||||
expect(spy.getCall(3).args[2]).to.eql([128, 0]);
|
||||
ol.interaction.Interaction.pan.restore();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.MapBrowserEvent');
|
||||
goog.require('ol.View');
|
||||
goog.require('ol.events.Event');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.events.KeyCode');
|
||||
goog.require('ol.interaction.Interaction');
|
||||
goog.require('ol.interaction.KeyboardPan');
|
||||
51
test/spec/ol/interaction/keyboardzoominteraction.test.js
Normal file
51
test/spec/ol/interaction/keyboardzoominteraction.test.js
Normal file
@@ -0,0 +1,51 @@
|
||||
/*global createMapDiv, disposeMap*/
|
||||
goog.provide('ol.test.interaction.KeyboardZoom');
|
||||
|
||||
|
||||
describe('ol.interaction.KeyboardZoom', function() {
|
||||
var map;
|
||||
|
||||
beforeEach(function() {
|
||||
map = new ol.Map({
|
||||
target: createMapDiv(100, 100),
|
||||
view: new ol.View({
|
||||
center: [0, 0],
|
||||
resolutions: [1],
|
||||
zoom: 0
|
||||
})
|
||||
});
|
||||
map.renderSync();
|
||||
});
|
||||
afterEach(function() {
|
||||
disposeMap(map);
|
||||
});
|
||||
|
||||
describe('handleEvent()', function() {
|
||||
it('zooms on + and - keys', function() {
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'zoomByDelta');
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.KEYDOWN, map, {
|
||||
type: ol.events.EventType.KEYDOWN,
|
||||
target: map.getTargetElement(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.originalEvent.charCode = '+'.charCodeAt(0);
|
||||
map.handleMapBrowserEvent(event);
|
||||
event.originalEvent.charCode = '-'.charCodeAt(0);
|
||||
map.handleMapBrowserEvent(event);
|
||||
expect(spy.getCall(0).args[2]).to.eql(1);
|
||||
expect(spy.getCall(1).args[2]).to.eql(-1);
|
||||
ol.interaction.Interaction.zoomByDelta.restore();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.MapBrowserEvent');
|
||||
goog.require('ol.View');
|
||||
goog.require('ol.events.Event');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.interaction.Interaction');
|
||||
goog.require('ol.interaction.KeyboardZoom');
|
||||
@@ -68,13 +68,13 @@ describe('ol.interaction.Modify', function() {
|
||||
var shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false;
|
||||
var event = new ol.MapBrowserPointerEvent(type, map,
|
||||
new ol.pointer.PointerEvent(type,
|
||||
new goog.events.BrowserEvent({
|
||||
{
|
||||
type: type,
|
||||
button: button,
|
||||
clientX: position.x + x + width / 2,
|
||||
clientY: position.y + y + height / 2,
|
||||
shiftKey: shiftKey
|
||||
})));
|
||||
}));
|
||||
event.pointerEvent.pointerId = 1;
|
||||
map.handleMapBrowserEvent(event);
|
||||
}
|
||||
@@ -327,10 +327,10 @@ describe('ol.interaction.Modify', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
getListeners = function(feature, modify) {
|
||||
var listeners = goog.events.getListeners(
|
||||
feature, goog.events.EventType.CHANGE, false);
|
||||
var listeners = ol.events.getListeners(
|
||||
feature, 'change');
|
||||
return listeners.filter(function(listener) {
|
||||
return listener.handler == modify;
|
||||
return listener.bindTo === modify;
|
||||
});
|
||||
};
|
||||
});
|
||||
@@ -377,9 +377,7 @@ describe('ol.interaction.Modify', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('ol.events');
|
||||
goog.require('goog.style');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.Feature');
|
||||
|
||||
136
test/spec/ol/interaction/mousewheelzoominteraction.test.js
Normal file
136
test/spec/ol/interaction/mousewheelzoominteraction.test.js
Normal file
@@ -0,0 +1,136 @@
|
||||
/*global createMapDiv, disposeMap*/
|
||||
goog.provide('ol.test.interaction.MouseWheelZoom');
|
||||
|
||||
|
||||
describe('ol.interaction.MouseWheelZoom', function() {
|
||||
var map;
|
||||
|
||||
beforeEach(function() {
|
||||
map = new ol.Map({
|
||||
target: createMapDiv(100, 100),
|
||||
view: new ol.View({
|
||||
center: [0, 0],
|
||||
resolutions: [2, 1, 0.5],
|
||||
zoom: 1
|
||||
})
|
||||
});
|
||||
map.renderSync();
|
||||
});
|
||||
afterEach(function() {
|
||||
disposeMap(map);
|
||||
});
|
||||
|
||||
describe('handleEvent()', function() {
|
||||
it('[wheel] works on Firefox in DOM_DELTA_PIXEL mode', function(done) {
|
||||
var origHasFirefox = ol.has.FIREFOX;
|
||||
ol.has.FIREFOX = true;
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'zoomByDelta');
|
||||
map.once('postrender', function() {
|
||||
expect(spy.getCall(0).args[2]).to.be(-1);
|
||||
expect(spy.getCall(0).args[3]).to.eql([0, 0]);
|
||||
ol.interaction.Interaction.zoomByDelta.restore();
|
||||
ol.has.FIREFOX = origHasFirefox;
|
||||
done();
|
||||
});
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.WHEEL, map, {
|
||||
type: ol.events.EventType.WHEEL,
|
||||
deltaMode: WheelEvent.DOM_DELTA_PIXEL,
|
||||
deltaY: ol.has.DEVICE_PIXEL_RATIO,
|
||||
target: map.getViewport(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.coordinate = [0, 0];
|
||||
map.handleMapBrowserEvent(event);
|
||||
});
|
||||
it('[wheel] works in DOM_DELTA_PIXEL mode', function(done) {
|
||||
var origHasFirefox = ol.has.FIREFOX;
|
||||
ol.has.FIREFOX = false;
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'zoomByDelta');
|
||||
map.once('postrender', function() {
|
||||
expect(spy.getCall(0).args[2]).to.be(-1);
|
||||
expect(spy.getCall(0).args[3]).to.eql([0, 0]);
|
||||
ol.interaction.Interaction.zoomByDelta.restore();
|
||||
ol.has.FIREFOX = origHasFirefox;
|
||||
done();
|
||||
});
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.WHEEL, map, {
|
||||
type: ol.events.EventType.WHEEL,
|
||||
deltaMode: WheelEvent.DOM_DELTA_PIXEL,
|
||||
deltaY: 1,
|
||||
target: map.getViewport(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.coordinate = [0, 0];
|
||||
map.handleMapBrowserEvent(event);
|
||||
});
|
||||
it('[wheel] works in DOM_DELTA_LINE mode', function(done) {
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'zoomByDelta');
|
||||
map.once('postrender', function() {
|
||||
expect(spy.getCall(0).args[2]).to.be(-1);
|
||||
expect(spy.getCall(0).args[3]).to.eql([0, 0]);
|
||||
ol.interaction.Interaction.zoomByDelta.restore();
|
||||
done();
|
||||
});
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.WHEEL, map, {
|
||||
type: ol.events.EventType.WHEEL,
|
||||
deltaMode: WheelEvent.DOM_DELTA_LINE,
|
||||
deltaY: 1 / 40,
|
||||
target: map.getViewport(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.coordinate = [0, 0];
|
||||
map.handleMapBrowserEvent(event);
|
||||
});
|
||||
it('[mousewheel] works on Safari', function(done) {
|
||||
var origHasSafari = ol.has.SAFARI;
|
||||
ol.has.SAFARI = true;
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'zoomByDelta');
|
||||
map.once('postrender', function() {
|
||||
expect(spy.getCall(0).args[2]).to.be(-1);
|
||||
expect(spy.getCall(0).args[3]).to.eql([0, 0]);
|
||||
ol.interaction.Interaction.zoomByDelta.restore();
|
||||
ol.has.SAFARI = origHasSafari;
|
||||
done();
|
||||
});
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.MOUSEWHEEL, map, {
|
||||
type: ol.events.EventType.MOUSEWHEEL,
|
||||
wheelDeltaY: -3,
|
||||
target: map.getViewport(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.coordinate = [0, 0];
|
||||
map.handleMapBrowserEvent(event);
|
||||
});
|
||||
it('[mousewheel] works on other browsers', function(done) {
|
||||
var origHasSafari = ol.has.SAFARI;
|
||||
ol.has.SAFARI = false;
|
||||
var spy = sinon.spy(ol.interaction.Interaction, 'zoomByDelta');
|
||||
map.once('postrender', function() {
|
||||
expect(spy.getCall(0).args[2]).to.be(-1);
|
||||
expect(spy.getCall(0).args[3]).to.eql([0, 0]);
|
||||
ol.interaction.Interaction.zoomByDelta.restore();
|
||||
ol.has.SAFARI = origHasSafari;
|
||||
done();
|
||||
});
|
||||
var event = new ol.MapBrowserEvent(ol.events.EventType.MOUSEWHEEL, map, {
|
||||
type: ol.events.EventType.MOUSEWHEEL,
|
||||
wheelDeltaY: -1,
|
||||
target: map.getViewport(),
|
||||
preventDefault: ol.events.Event.prototype.preventDefault
|
||||
});
|
||||
event.coordinate = [0, 0];
|
||||
map.handleMapBrowserEvent(event);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.MapBrowserEvent');
|
||||
goog.require('ol.View');
|
||||
goog.require('ol.events.Event');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.interaction.Interaction');
|
||||
goog.require('ol.interaction.MouseWheelZoom');
|
||||
@@ -82,11 +82,11 @@ describe('ol.interaction.Select', function() {
|
||||
var shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false;
|
||||
var event = new ol.MapBrowserPointerEvent(type, map,
|
||||
new ol.pointer.PointerEvent(type,
|
||||
new goog.events.BrowserEvent({
|
||||
{
|
||||
clientX: position.x + x + width / 2,
|
||||
clientY: position.y + y + height / 2,
|
||||
shiftKey: shiftKey
|
||||
})));
|
||||
}));
|
||||
map.handleMapBrowserEvent(event);
|
||||
}
|
||||
|
||||
@@ -333,8 +333,6 @@ describe('ol.interaction.Select', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('goog.style');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.Feature');
|
||||
|
||||
@@ -56,12 +56,11 @@ describe('ol.interaction.Translate', function() {
|
||||
var position = goog.style.getClientPosition(viewport);
|
||||
var shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false;
|
||||
var event = new ol.MapBrowserPointerEvent(type, map,
|
||||
new ol.pointer.PointerEvent(type,
|
||||
new goog.events.BrowserEvent({
|
||||
new ol.pointer.PointerEvent(type, {
|
||||
clientX: position.x + x + width / 2,
|
||||
clientY: position.y + y + height / 2,
|
||||
shiftKey: shiftKey
|
||||
})));
|
||||
}));
|
||||
map.handleMapBrowserEvent(event);
|
||||
}
|
||||
|
||||
@@ -110,8 +109,6 @@ describe('ol.interaction.Translate', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('goog.style');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.Feature');
|
||||
|
||||
@@ -68,14 +68,14 @@ describe('ol.layer.Group', function() {
|
||||
});
|
||||
|
||||
it('is dispatched by the group when layer opacity changes', function() {
|
||||
group.on(goog.events.EventType.CHANGE, listener);
|
||||
group.on(ol.events.EventType.CHANGE, listener);
|
||||
|
||||
layer.setOpacity(0.5);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
|
||||
it('is dispatched by the group when layer visibility changes', function() {
|
||||
group.on(goog.events.EventType.CHANGE, listener);
|
||||
group.on(ol.events.EventType.CHANGE, listener);
|
||||
|
||||
layer.setVisible(false);
|
||||
expect(listener.callCount).to.be(1);
|
||||
@@ -286,14 +286,14 @@ describe('ol.layer.Group', function() {
|
||||
|
||||
var listeners = layerGroup.listenerKeys_[goog.getUid(layer)];
|
||||
expect(listeners.length).to.eql(2);
|
||||
expect(listeners[0]).to.be.a(goog.events.Listener);
|
||||
expect(listeners[1]).to.be.a(goog.events.Listener);
|
||||
expect(typeof listeners[0]).to.be('object');
|
||||
expect(typeof listeners[1]).to.be('object');
|
||||
|
||||
// remove the layer from the group
|
||||
layers.pop();
|
||||
expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(0);
|
||||
expect(listeners[0].removed).to.eql(true);
|
||||
expect(listeners[1].removed).to.eql(true);
|
||||
expect(listeners[0].listener).to.be(undefined);
|
||||
expect(listeners[1].listener).to.be(undefined);
|
||||
});
|
||||
|
||||
});
|
||||
@@ -491,8 +491,8 @@ describe('ol.layer.Group', function() {
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('goog.events.Listener');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.ObjectEventType');
|
||||
goog.require('ol.extent');
|
||||
|
||||
@@ -147,11 +147,14 @@ describe('ol.Map', function() {
|
||||
document.body.removeChild(target);
|
||||
});
|
||||
|
||||
it('results in an postrender event', function(done) {
|
||||
it('calls renderFrame_ and results in an postrender event', function(done) {
|
||||
|
||||
var spy = sinon.spy(map, 'renderFrame_');
|
||||
map.render();
|
||||
map.once('postrender', function(event) {
|
||||
expect(event).to.be.a(ol.MapEvent);
|
||||
expect(typeof spy.firstCall.args[0]).to.be('number');
|
||||
spy.restore();
|
||||
var frameState = event.frameState;
|
||||
expect(frameState).not.to.be(null);
|
||||
done();
|
||||
@@ -159,6 +162,30 @@ describe('ol.Map', function() {
|
||||
|
||||
});
|
||||
|
||||
it('uses the same render frame for subsequent calls', function(done) {
|
||||
var id1, id2;
|
||||
map.render();
|
||||
id1 = map.animationDelayKey_;
|
||||
map.once('postrender', function() {
|
||||
expect(id2).to.be(id1);
|
||||
done();
|
||||
});
|
||||
map.render();
|
||||
id2 = map.animationDelayKey_;
|
||||
});
|
||||
|
||||
it('creates a new render frame after renderSync()', function(done) {
|
||||
var id1, id2;
|
||||
map.render();
|
||||
id1 = map.animationDelayKey_;
|
||||
map.once('postrender', function() {
|
||||
expect(id2).to.not.be(id1);
|
||||
done();
|
||||
});
|
||||
map.renderSync();
|
||||
id2 = map.animationDelayKey_;
|
||||
});
|
||||
|
||||
it('results in an postrender event (for zero height map)', function(done) {
|
||||
target.style.height = '0px';
|
||||
map.updateSize();
|
||||
@@ -202,6 +229,11 @@ describe('ol.Map', function() {
|
||||
goog.dispose(map);
|
||||
expect(goog.dom.getParentElement(map.getViewport())).to.be(null);
|
||||
});
|
||||
|
||||
it('removes window listeners', function() {
|
||||
goog.dispose(map);
|
||||
expect(map.handleResize_).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#setTarget', function() {
|
||||
@@ -211,17 +243,13 @@ describe('ol.Map', function() {
|
||||
map = new ol.Map({
|
||||
target: document.createElement('div')
|
||||
});
|
||||
var viewportResizeListeners = map.viewportSizeMonitor_.getListeners(
|
||||
goog.events.EventType.RESIZE, false);
|
||||
expect(viewportResizeListeners).to.have.length(1);
|
||||
expect(map.handleResize_).to.be.ok();
|
||||
});
|
||||
|
||||
describe('call setTarget with null', function() {
|
||||
it('unregisters the viewport resize listener', function() {
|
||||
map.setTarget(null);
|
||||
var viewportResizeListeners = map.viewportSizeMonitor_.getListeners(
|
||||
goog.events.EventType.RESIZE, false);
|
||||
expect(viewportResizeListeners).to.have.length(0);
|
||||
expect(map.handleResize_).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -229,9 +257,7 @@ describe('ol.Map', function() {
|
||||
it('registers a viewport resize listener', function() {
|
||||
map.setTarget(null);
|
||||
map.setTarget(document.createElement('div'));
|
||||
var viewportResizeListeners = map.viewportSizeMonitor_.getListeners(
|
||||
goog.events.EventType.RESIZE, false);
|
||||
expect(viewportResizeListeners).to.have.length(1);
|
||||
expect(map.handleResize_).to.be.ok();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -316,15 +342,15 @@ describe('ol.Map', function() {
|
||||
target: target
|
||||
});
|
||||
|
||||
var browserEvent = new goog.events.BrowserEvent({
|
||||
var browserEvent = {
|
||||
type: 'touchend',
|
||||
target: target,
|
||||
changedTouches: [{
|
||||
clientX: 100,
|
||||
clientY: 200
|
||||
}]
|
||||
});
|
||||
var position = map.getEventPixel(browserEvent.getBrowserEvent());
|
||||
};
|
||||
var position = map.getEventPixel(browserEvent);
|
||||
// 80 = clientX - target.style.left
|
||||
expect(position[0]).to.eql(80);
|
||||
// 190 = clientY - target.style.top
|
||||
@@ -401,8 +427,6 @@ describe('ol.Map', function() {
|
||||
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.MapEvent');
|
||||
goog.require('ol.Overlay');
|
||||
|
||||
@@ -17,13 +17,13 @@ describe('ol.MapBrowserEventHandler', function() {
|
||||
}));
|
||||
|
||||
clickSpy = sinon.spy();
|
||||
goog.events.listen(handler, 'click', clickSpy);
|
||||
ol.events.listen(handler, 'click', clickSpy);
|
||||
|
||||
singleclickSpy = sinon.spy();
|
||||
goog.events.listen(handler, 'singleclick', singleclickSpy);
|
||||
ol.events.listen(handler, 'singleclick', singleclickSpy);
|
||||
|
||||
dblclickSpy = sinon.spy();
|
||||
goog.events.listen(handler, 'dblclick', dblclickSpy);
|
||||
ol.events.listen(handler, 'dblclick', dblclickSpy);
|
||||
|
||||
});
|
||||
|
||||
@@ -32,24 +32,22 @@ describe('ol.MapBrowserEventHandler', function() {
|
||||
});
|
||||
|
||||
it('emulates click', function() {
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown',
|
||||
new goog.events.BrowserEvent({
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
})));
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown', {
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
}));
|
||||
expect(clickSpy.called).to.be.ok();
|
||||
});
|
||||
|
||||
it('emulates singleclick', function() {
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown',
|
||||
new goog.events.BrowserEvent({
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
})));
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown', {
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
}));
|
||||
expect(singleclickSpy.called).to.not.be.ok();
|
||||
expect(dblclickSpy.called).to.not.be.ok();
|
||||
|
||||
@@ -57,35 +55,32 @@ describe('ol.MapBrowserEventHandler', function() {
|
||||
expect(singleclickSpy.calledOnce).to.be.ok();
|
||||
expect(dblclickSpy.called).to.not.be.ok();
|
||||
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown',
|
||||
new goog.events.BrowserEvent({
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
})));
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown', {
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
}));
|
||||
expect(singleclickSpy.calledOnce).to.be.ok();
|
||||
expect(dblclickSpy.called).to.not.be.ok();
|
||||
});
|
||||
|
||||
it('emulates dblclick', function() {
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown',
|
||||
new goog.events.BrowserEvent({
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
})));
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown', {
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
}));
|
||||
expect(singleclickSpy.called).to.not.be.ok();
|
||||
expect(dblclickSpy.called).to.not.be.ok();
|
||||
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown',
|
||||
new goog.events.BrowserEvent({
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
})));
|
||||
handler.emulateClick_(new ol.pointer.PointerEvent('pointerdown', {
|
||||
type: 'mousedown',
|
||||
target: target,
|
||||
clientX: 0,
|
||||
clientY: 0
|
||||
}));
|
||||
expect(singleclickSpy.called).to.not.be.ok();
|
||||
expect(dblclickSpy.calledOnce).to.be.ok();
|
||||
|
||||
@@ -108,8 +103,7 @@ describe('ol.MapBrowserEventHandler', function() {
|
||||
});
|
||||
|
||||
it('is an event after handlePointerDown_ has been called', function() {
|
||||
var event = new ol.pointer.PointerEvent('pointerdown',
|
||||
new goog.events.BrowserEvent({}));
|
||||
var event = new ol.pointer.PointerEvent('pointerdown', {});
|
||||
handler.handlePointerDown_(event);
|
||||
expect(handler.down_).to.be(event);
|
||||
});
|
||||
@@ -118,8 +112,7 @@ describe('ol.MapBrowserEventHandler', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.MapBrowserEventHandler');
|
||||
goog.require('ol.pointer.PointerEvent');
|
||||
|
||||
80
test/spec/ol/net.test.js
Normal file
80
test/spec/ol/net.test.js
Normal file
@@ -0,0 +1,80 @@
|
||||
goog.provide('ol.test.net');
|
||||
|
||||
|
||||
describe('ol.net', function() {
|
||||
|
||||
describe('jsonp()', function() {
|
||||
var head = goog.global.document.getElementsByTagName('head')[0];
|
||||
var origAppendChild = head.appendChild;
|
||||
var origCreateElement = document.createElement;
|
||||
var origSetTimeout = goog.global.setTimeout;
|
||||
var key, removeChild;
|
||||
|
||||
function createCallback(url, done) {
|
||||
removeChild = sinon.spy();
|
||||
var callback = function(data) {
|
||||
expect(data).to.be(url + key);
|
||||
expect(removeChild.called).to.be(true);
|
||||
done();
|
||||
};
|
||||
key = 'olc_' + goog.getUid(callback);
|
||||
return callback;
|
||||
}
|
||||
|
||||
beforeEach(function() {
|
||||
document.createElement = function() {
|
||||
return {}
|
||||
};
|
||||
head.appendChild = function(element) {
|
||||
element.parentNode = {
|
||||
removeChild: removeChild
|
||||
};
|
||||
origSetTimeout(function() {
|
||||
goog.global[key](element.src);
|
||||
}, 0);
|
||||
};
|
||||
goog.global.setTimeout = function(fn, time) {
|
||||
origSetTimeout(fn, 100);
|
||||
};
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
document.createElement = origCreateElement;
|
||||
head.appendChild = origAppendChild;
|
||||
goog.global.setTimeout = origSetTimeout;
|
||||
});
|
||||
|
||||
it('appends callback param to url, cleans up after call', function(done) {
|
||||
ol.net.jsonp('foo', createCallback('foo?callback=', done));
|
||||
});
|
||||
it('appends correct callback param to a url with query', function(done) {
|
||||
var callback = createCallback('http://foo/bar?baz&callback=', done);
|
||||
ol.net.jsonp('http://foo/bar?baz', callback);
|
||||
});
|
||||
it('calls errback when jsonp is not executed, cleans up', function(done) {
|
||||
head.appendChild = function(element) {
|
||||
element.parentNode = {
|
||||
removeChild: removeChild
|
||||
};
|
||||
};
|
||||
function callback() {
|
||||
expect.fail();
|
||||
}
|
||||
function errback() {
|
||||
expect(goog.global[key]).to.be(undefined);
|
||||
expect(removeChild.called).to.be(true);
|
||||
done();
|
||||
}
|
||||
ol.net.jsonp('foo', callback, errback);
|
||||
});
|
||||
it('accepts a custom callback param', function(done) {
|
||||
var callback = createCallback('foo?mycallback=', done);
|
||||
ol.net.jsonp('foo', callback, undefined, 'mycallback');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
goog.require('ol.net');
|
||||
@@ -113,10 +113,10 @@ describe('ol.Object', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
listener1 = sinon.spy();
|
||||
goog.events.listen(o, 'change:k', listener1);
|
||||
ol.events.listen(o, 'change:k', listener1);
|
||||
|
||||
listener2 = sinon.spy();
|
||||
goog.events.listen(o, ol.ObjectEventType.PROPERTYCHANGE, listener2);
|
||||
ol.events.listen(o, ol.ObjectEventType.PROPERTYCHANGE, listener2);
|
||||
});
|
||||
|
||||
it('dispatches events', function() {
|
||||
@@ -146,10 +146,10 @@ describe('ol.Object', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
listener1 = sinon.spy();
|
||||
goog.events.listen(o, 'change:k', listener1);
|
||||
ol.events.listen(o, 'change:k', listener1);
|
||||
|
||||
listener2 = sinon.spy();
|
||||
goog.events.listen(o, ol.ObjectEventType.PROPERTYCHANGE, listener2);
|
||||
ol.events.listen(o, ol.ObjectEventType.PROPERTYCHANGE, listener2);
|
||||
});
|
||||
|
||||
it('dispatches events to object', function() {
|
||||
@@ -222,9 +222,9 @@ describe('ol.Object', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
listener1 = sinon.spy();
|
||||
goog.events.listen(o, 'change:k', listener1);
|
||||
ol.events.listen(o, 'change:k', listener1);
|
||||
listener2 = sinon.spy();
|
||||
goog.events.listen(o, 'change:K', listener2);
|
||||
ol.events.listen(o, 'change:K', listener2);
|
||||
});
|
||||
|
||||
it('dispatches the expected event', function() {
|
||||
@@ -239,6 +239,6 @@ describe('ol.Object', function() {
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.ObjectEventType');
|
||||
|
||||
@@ -7,7 +7,7 @@ describe('ol.Observable', function() {
|
||||
it('creates a new observable', function() {
|
||||
var observable = new ol.Observable();
|
||||
expect(observable).to.be.a(ol.Observable);
|
||||
expect(observable).to.be.a(goog.events.EventTarget);
|
||||
expect(observable).to.be.a(ol.events.EventTarget);
|
||||
});
|
||||
|
||||
});
|
||||
@@ -51,7 +51,7 @@ describe('ol.Observable', function() {
|
||||
it('returns a listener key', function() {
|
||||
var key = observable.on('foo', listener);
|
||||
|
||||
expect(key).to.be.a(goog.events.Listener);
|
||||
expect(typeof key).to.be('object');
|
||||
});
|
||||
|
||||
});
|
||||
@@ -101,7 +101,7 @@ describe('ol.Observable', function() {
|
||||
it('returns a listener key', function() {
|
||||
var key = observable.once('foo', listener);
|
||||
|
||||
expect(key).to.be.a(goog.events.Listener);
|
||||
expect(typeof key).to.be('object');
|
||||
});
|
||||
|
||||
});
|
||||
@@ -167,6 +167,5 @@ describe('ol.Observable', function() {
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.events.EventTarget');
|
||||
goog.require('goog.events.Listener');
|
||||
goog.require('ol.events.EventTarget');
|
||||
goog.require('ol.Observable');
|
||||
|
||||
@@ -8,7 +8,7 @@ describe('ol.pointer.MouseSource', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
clock = sinon.useFakeTimers();
|
||||
target = goog.dom.createElement('DIV');
|
||||
target = new ol.events.EventTarget();
|
||||
|
||||
// make sure that a mouse and touch event source is used
|
||||
ol.has.POINTER = false;
|
||||
@@ -26,7 +26,7 @@ describe('ol.pointer.MouseSource', function() {
|
||||
|
||||
describe('simulated mouse events', function() {
|
||||
it('prevents simulated mouse events', function() {
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
|
||||
// simulates that a mouse event is triggered from a touch
|
||||
simulateTouchEvent('touchstart', 10, 20);
|
||||
@@ -37,7 +37,7 @@ describe('ol.pointer.MouseSource', function() {
|
||||
});
|
||||
|
||||
it('dispatches real mouse events', function() {
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
|
||||
// the two events are at different positions
|
||||
simulateTouchEvent('touchstart', 10, 20);
|
||||
@@ -50,7 +50,7 @@ describe('ol.pointer.MouseSource', function() {
|
||||
// set the timeout to a lower value, to speed up the tests
|
||||
ol.pointer.TouchSource.DEDUP_TIMEOUT = 100;
|
||||
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
|
||||
// first simulate a touch event, then a mouse event
|
||||
// at the same position after a timeout
|
||||
@@ -70,28 +70,28 @@ describe('ol.pointer.MouseSource', function() {
|
||||
target: target
|
||||
}];
|
||||
|
||||
var event = new goog.events.BrowserEvent({
|
||||
var event = {
|
||||
type: type,
|
||||
touches: touches,
|
||||
changedTouches: touches
|
||||
});
|
||||
goog.events.fireListeners(target, type, false, event);
|
||||
};
|
||||
target.dispatchEvent(event);
|
||||
}
|
||||
|
||||
function simulateEvent(type, x, y) {
|
||||
var event = new goog.events.BrowserEvent({
|
||||
var event = {
|
||||
type: type,
|
||||
clientX: x,
|
||||
clientY: y,
|
||||
target: target
|
||||
});
|
||||
goog.events.fireListeners(target, type, false, event);
|
||||
};
|
||||
target.dispatchEvent(event);
|
||||
}
|
||||
});
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventTarget');
|
||||
goog.require('ol.has');
|
||||
goog.require('ol.pointer.MouseSource');
|
||||
goog.require('ol.pointer.PointerEvent');
|
||||
|
||||
@@ -6,7 +6,7 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
var eventSpy;
|
||||
|
||||
beforeEach(function() {
|
||||
target = goog.dom.createElement('DIV');
|
||||
target = new ol.events.EventTarget();
|
||||
|
||||
// make sure that a mouse event source is used
|
||||
ol.has.POINTER = false;
|
||||
@@ -29,18 +29,18 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
});
|
||||
|
||||
function simulateEvent(type, x, y) {
|
||||
var event = new goog.events.BrowserEvent({
|
||||
var event = {
|
||||
type: type,
|
||||
clientX: x,
|
||||
clientY: y,
|
||||
target: target
|
||||
});
|
||||
goog.events.fireListeners(target, type, false, event);
|
||||
};
|
||||
target.dispatchEvent(event);
|
||||
}
|
||||
|
||||
describe('pointer down', function() {
|
||||
it('fires pointerdown events', function() {
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
simulateEvent('mousedown', 0, 0);
|
||||
expect(eventSpy.calledOnce).to.be.ok();
|
||||
|
||||
@@ -54,7 +54,7 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
|
||||
describe('pointer up', function() {
|
||||
it('fires pointerup events', function() {
|
||||
goog.events.listen(handler, 'pointerup', eventSpy);
|
||||
ol.events.listen(handler, 'pointerup', eventSpy);
|
||||
simulateEvent('mousedown', 0, 0);
|
||||
simulateEvent('mouseup', 0, 0);
|
||||
expect(eventSpy.calledOnce).to.be.ok();
|
||||
@@ -63,7 +63,7 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
|
||||
describe('pointer move', function() {
|
||||
it('fires pointermove events', function() {
|
||||
goog.events.listen(handler, 'pointermove', eventSpy);
|
||||
ol.events.listen(handler, 'pointermove', eventSpy);
|
||||
simulateEvent('mousemove', 0, 0);
|
||||
expect(eventSpy.calledOnce).to.be.ok();
|
||||
});
|
||||
@@ -74,8 +74,8 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
var enterEventSpy = sinon.spy();
|
||||
var overEventSpy = sinon.spy();
|
||||
|
||||
goog.events.listen(handler, 'pointerenter', enterEventSpy);
|
||||
goog.events.listen(handler, 'pointerover', overEventSpy);
|
||||
ol.events.listen(handler, 'pointerenter', enterEventSpy);
|
||||
ol.events.listen(handler, 'pointerover', overEventSpy);
|
||||
|
||||
simulateEvent('mouseover', 0, 0);
|
||||
|
||||
@@ -89,8 +89,8 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
var leaveEventSpy = sinon.spy();
|
||||
var outEventSpy = sinon.spy();
|
||||
|
||||
goog.events.listen(handler, 'pointerleave', leaveEventSpy);
|
||||
goog.events.listen(handler, 'pointerout', outEventSpy);
|
||||
ol.events.listen(handler, 'pointerleave', leaveEventSpy);
|
||||
ol.events.listen(handler, 'pointerout', outEventSpy);
|
||||
|
||||
simulateEvent('mouseout', 0, 0);
|
||||
|
||||
@@ -107,7 +107,7 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
clientX: 1,
|
||||
clientY: 2
|
||||
};
|
||||
var browserEvent = new goog.events.BrowserEvent(event);
|
||||
var browserEvent = event;
|
||||
|
||||
var eventClone = handler.cloneEvent(browserEvent, event);
|
||||
|
||||
@@ -136,7 +136,7 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
clientX: 1,
|
||||
clientY: 2
|
||||
};
|
||||
var browserEvent = new goog.events.BrowserEvent(event);
|
||||
var browserEvent = event;
|
||||
|
||||
var eventClone = handler.cloneEvent(browserEvent, event);
|
||||
var pointerEvent = handler.makeEvent('pointerdown',
|
||||
@@ -161,8 +161,8 @@ describe('ol.pointer.PointerEventHandler', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventTarget');
|
||||
goog.require('ol.has');
|
||||
goog.require('ol.pointer.MouseSource');
|
||||
goog.require('ol.pointer.PointerEvent');
|
||||
|
||||
@@ -8,7 +8,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
var eventSpy;
|
||||
|
||||
beforeEach(function() {
|
||||
target = goog.dom.createElement('DIV');
|
||||
target = new ol.events.EventTarget();
|
||||
|
||||
// make sure that a mouse and touch event source is used
|
||||
ol.has.POINTER = false;
|
||||
@@ -25,7 +25,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
|
||||
describe('pointer event creation', function() {
|
||||
it('generates pointer events for each touch contact', function() {
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
|
||||
simulateTouchEvent('touchstart', [
|
||||
{identifier: 3, clientX: 10, clientY: 11},
|
||||
@@ -52,7 +52,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
});
|
||||
|
||||
it('creates the right pointer events', function() {
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
|
||||
// first touch
|
||||
simulateTouchEvent('touchstart', [
|
||||
@@ -71,7 +71,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
|
||||
// first touch moves
|
||||
var moveEventSpy = sinon.spy();
|
||||
goog.events.listen(handler, 'pointermove', moveEventSpy);
|
||||
ol.events.listen(handler, 'pointermove', moveEventSpy);
|
||||
|
||||
simulateTouchEvent('touchmove', [
|
||||
{identifier: 3, clientX: 15, clientY: 16}
|
||||
@@ -81,7 +81,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
|
||||
// and then both touches go up
|
||||
var upEventSpy = sinon.spy();
|
||||
goog.events.listen(handler, 'pointerup', upEventSpy);
|
||||
ol.events.listen(handler, 'pointerup', upEventSpy);
|
||||
|
||||
simulateTouchEvent('touchend', [
|
||||
{identifier: 3, clientX: 15, clientY: 16},
|
||||
@@ -93,7 +93,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
});
|
||||
|
||||
it('handles flawed touches', function() {
|
||||
goog.events.listen(handler, 'pointerdown', eventSpy);
|
||||
ol.events.listen(handler, 'pointerdown', eventSpy);
|
||||
|
||||
// first touch
|
||||
simulateTouchEvent('touchstart', [
|
||||
@@ -104,7 +104,7 @@ describe('ol.pointer.TouchSource', function() {
|
||||
|
||||
// second touch, but the first touch has disappeared
|
||||
var cancelEventSpy = sinon.spy();
|
||||
goog.events.listen(handler, 'pointercancel', cancelEventSpy);
|
||||
ol.events.listen(handler, 'pointercancel', cancelEventSpy);
|
||||
simulateTouchEvent('touchstart', [
|
||||
{identifier: 4, clientX: 30, clientY: 45}
|
||||
], [{identifier: 4}]
|
||||
@@ -120,18 +120,19 @@ describe('ol.pointer.TouchSource', function() {
|
||||
function simulateTouchEvent(type, changedTouches, touches) {
|
||||
touches = touches !== undefined ? touches : changedTouches;
|
||||
|
||||
var event = new goog.events.BrowserEvent({
|
||||
type: type,
|
||||
var event = new ol.events.Event(type);
|
||||
goog.object.extend(event, {
|
||||
touches: touches,
|
||||
changedTouches: changedTouches
|
||||
});
|
||||
goog.events.fireListeners(target, type, false, event);
|
||||
target.dispatchEvent(event);
|
||||
}
|
||||
});
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.BrowserEvent');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.Event');
|
||||
goog.require('ol.events.EventTarget');
|
||||
goog.require('ol.has');
|
||||
goog.require('ol.pointer.PointerEvent');
|
||||
goog.require('ol.pointer.PointerEventHandler');
|
||||
|
||||
@@ -39,8 +39,8 @@ describe('ol.renderer.vector', function() {
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
|
||||
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
||||
listeners = goog.events.getListeners(
|
||||
iconStyle.iconImage_, goog.events.EventType.CHANGE, false);
|
||||
listeners = ol.events.getListeners(
|
||||
iconStyle.iconImage_, ol.events.EventType.CHANGE);
|
||||
expect(listeners.length).to.eql(1);
|
||||
|
||||
// call #2
|
||||
@@ -48,8 +48,8 @@ describe('ol.renderer.vector', function() {
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
|
||||
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
||||
listeners = goog.events.getListeners(
|
||||
iconStyle.iconImage_, goog.events.EventType.CHANGE, false);
|
||||
listeners = ol.events.getListeners(
|
||||
iconStyle.iconImage_, ol.events.EventType.CHANGE);
|
||||
expect(listeners.length).to.eql(1);
|
||||
});
|
||||
|
||||
@@ -155,8 +155,8 @@ describe('ol.renderer.vector', function() {
|
||||
});
|
||||
});
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.geom.LineString');
|
||||
goog.require('ol.geom.Point');
|
||||
goog.require('ol.geom.Polygon');
|
||||
|
||||
@@ -2,7 +2,7 @@ goog.provide('ol.test.renderer.Layer');
|
||||
|
||||
describe('ol.renderer.Layer', function() {
|
||||
var renderer;
|
||||
var eventType = goog.events.EventType.CHANGE;
|
||||
var eventType = ol.events.EventType.CHANGE;
|
||||
|
||||
beforeEach(function() {
|
||||
var layer = new ol.layer.Layer({});
|
||||
@@ -79,7 +79,7 @@ describe('ol.renderer.Layer', function() {
|
||||
});
|
||||
});
|
||||
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.Image');
|
||||
goog.require('ol.ImageState');
|
||||
goog.require('ol.layer.Layer');
|
||||
|
||||
@@ -18,7 +18,7 @@ describe('ol.reproj.Image', function() {
|
||||
it('changes state as expected', function(done) {
|
||||
var image = createImage(1);
|
||||
expect(image.getState()).to.be(ol.ImageState.IDLE);
|
||||
image.listen('change', function() {
|
||||
ol.events.listen(image, 'change', function() {
|
||||
if (image.getState() == ol.ImageState.LOADED) {
|
||||
done();
|
||||
}
|
||||
@@ -28,7 +28,7 @@ describe('ol.reproj.Image', function() {
|
||||
|
||||
it('returns correct canvas size', function(done) {
|
||||
var image = createImage(1);
|
||||
image.listen('change', function() {
|
||||
ol.events.listen(image, 'change', function() {
|
||||
if (image.getState() == ol.ImageState.LOADED) {
|
||||
var canvas = image.getImage();
|
||||
expect(canvas.width).to.be(36);
|
||||
@@ -41,7 +41,7 @@ describe('ol.reproj.Image', function() {
|
||||
|
||||
it('respects pixelRatio', function(done) {
|
||||
var image = createImage(2);
|
||||
image.listen('change', function() {
|
||||
ol.events.listen(image, 'change', function() {
|
||||
if (image.getState() == ol.ImageState.LOADED) {
|
||||
var canvas = image.getImage();
|
||||
expect(canvas.width).to.be(72);
|
||||
@@ -56,5 +56,6 @@ describe('ol.reproj.Image', function() {
|
||||
|
||||
goog.require('ol.Image');
|
||||
goog.require('ol.ImageState');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.reproj.Image');
|
||||
|
||||
@@ -34,7 +34,7 @@ describe('ol.reproj.Tile', function() {
|
||||
it('changes state as expected', function(done) {
|
||||
var tile = createTile(1);
|
||||
expect(tile.getState()).to.be(ol.TileState.IDLE);
|
||||
tile.listen('change', function() {
|
||||
ol.events.listen(tile, 'change', function() {
|
||||
if (tile.getState() == ol.TileState.LOADED) {
|
||||
done();
|
||||
}
|
||||
@@ -68,7 +68,7 @@ describe('ol.reproj.Tile', function() {
|
||||
|
||||
it('respects tile size of target tile grid', function(done) {
|
||||
var tile = createTile(1, [100, 40]);
|
||||
tile.listen('change', function() {
|
||||
ol.events.listen(tile, 'change', function() {
|
||||
if (tile.getState() == ol.TileState.LOADED) {
|
||||
var canvas = tile.getImage();
|
||||
expect(canvas.width).to.be(100);
|
||||
@@ -81,7 +81,7 @@ describe('ol.reproj.Tile', function() {
|
||||
|
||||
it('respects pixelRatio', function(done) {
|
||||
var tile = createTile(3, [60, 20]);
|
||||
tile.listen('change', function() {
|
||||
ol.events.listen(tile, 'change', function() {
|
||||
if (tile.getState() == ol.TileState.LOADED) {
|
||||
var canvas = tile.getImage();
|
||||
expect(canvas.width).to.be(180);
|
||||
@@ -96,5 +96,6 @@ describe('ol.reproj.Tile', function() {
|
||||
|
||||
goog.require('ol.ImageTile');
|
||||
goog.require('ol.TileState');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.reproj.Tile');
|
||||
|
||||
@@ -7,24 +7,21 @@ describe('ol.source.BingMaps', function() {
|
||||
var source, tileGrid;
|
||||
|
||||
beforeEach(function(done) {
|
||||
var googNetJsonp = goog.net.Jsonp;
|
||||
// mock goog.net.Jsonp (used in the ol.source.TileJSON constructor)
|
||||
goog.net.Jsonp = function() {
|
||||
this.send = function() {
|
||||
var callback = arguments[1];
|
||||
var client = new XMLHttpRequest();
|
||||
client.open('GET', 'spec/ol/data/bing_aerialwithlabels.json', true);
|
||||
client.onload = function() {
|
||||
callback(JSON.parse(client.responseText));
|
||||
};
|
||||
client.send();
|
||||
var olNetJsonp = ol.net.jsonp;
|
||||
// mock ol.net.Jsonp (used in the ol.source.TileJSON constructor)
|
||||
ol.net.jsonp = function(url, callback) {
|
||||
var client = new XMLHttpRequest();
|
||||
client.open('GET', 'spec/ol/data/bing_aerialwithlabels.json', true);
|
||||
client.onload = function() {
|
||||
callback(JSON.parse(client.responseText));
|
||||
};
|
||||
client.send();
|
||||
};
|
||||
source = new ol.source.BingMaps({
|
||||
imagerySet: 'AerialWithLabels',
|
||||
key: ''
|
||||
});
|
||||
goog.net.Jsonp = googNetJsonp;
|
||||
ol.net.jsonp = olNetJsonp;
|
||||
var key = source.on('change', function() {
|
||||
if (source.getState() === 'ready') {
|
||||
ol.Observable.unByKey(key);
|
||||
@@ -75,7 +72,7 @@ describe('ol.source.BingMaps', function() {
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.net.Jsonp');
|
||||
goog.require('ol.net');
|
||||
goog.require('ol.source.BingMaps');
|
||||
goog.require('ol.tilecoord');
|
||||
goog.require('ol.Observable');
|
||||
|
||||
@@ -124,7 +124,7 @@ describe('ol.source.TileImage', function() {
|
||||
var tile = source.getTile(0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
expect(tile).to.be.a(ol.reproj.Tile);
|
||||
|
||||
tile.listen('change', function() {
|
||||
ol.events.listen(tile, 'change', function() {
|
||||
if (tile.getState() == ol.TileState.LOADED) {
|
||||
done();
|
||||
}
|
||||
@@ -143,7 +143,7 @@ describe('ol.source.TileImage', function() {
|
||||
var tile = source.getTile(0, 0, -1, 1, proj);
|
||||
expect(tile).to.be.a(ol.reproj.Tile);
|
||||
|
||||
tile.listen('change', function() {
|
||||
ol.events.listen(tile, 'change', function() {
|
||||
if (tile.getState() == ol.TileState.LOADED) {
|
||||
done();
|
||||
}
|
||||
@@ -157,6 +157,7 @@ goog.require('ol.ImageTile');
|
||||
goog.require('ol.Tile');
|
||||
goog.require('ol.TileState');
|
||||
goog.require('ol.TileUrlFunction');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.proj.Projection');
|
||||
goog.require('ol.reproj.Tile');
|
||||
|
||||
@@ -11,7 +11,7 @@ describe('ol.source.TileJSON', function() {
|
||||
var source = new ol.source.TileJSON({
|
||||
url: 'invalid.jsonp'
|
||||
});
|
||||
goog.events.listen(source, 'change', changeSpy);
|
||||
ol.events.listen(source, 'change', changeSpy);
|
||||
});
|
||||
|
||||
});
|
||||
@@ -73,7 +73,7 @@ describe('ol.source.TileJSON', function() {
|
||||
|
||||
});
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.source.State');
|
||||
goog.require('ol.source.TileJSON');
|
||||
goog.require('ol.Observable');
|
||||
|
||||
@@ -57,7 +57,7 @@ describe('ol.source.Vector', function() {
|
||||
|
||||
it('fires a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'change', listener);
|
||||
ol.events.listen(vectorSource, 'change', listener);
|
||||
vectorSource.addFeature(pointFeature);
|
||||
expect(listener).to.be.called();
|
||||
});
|
||||
@@ -98,11 +98,11 @@ describe('ol.source.Vector', function() {
|
||||
|
||||
it('removes all features using fast path', function() {
|
||||
var changeSpy = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'change', changeSpy);
|
||||
ol.events.listen(vectorSource, 'change', changeSpy);
|
||||
var removeFeatureSpy = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'removefeature', removeFeatureSpy);
|
||||
ol.events.listen(vectorSource, 'removefeature', removeFeatureSpy);
|
||||
var clearSourceSpy = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'clear', clearSourceSpy);
|
||||
ol.events.listen(vectorSource, 'clear', clearSourceSpy);
|
||||
vectorSource.clear(true);
|
||||
expect(vectorSource.getFeatures()).to.eql([]);
|
||||
expect(vectorSource.isEmpty()).to.be(true);
|
||||
@@ -116,11 +116,11 @@ describe('ol.source.Vector', function() {
|
||||
|
||||
it('removes all features using slow path', function() {
|
||||
var changeSpy = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'change', changeSpy);
|
||||
ol.events.listen(vectorSource, 'change', changeSpy);
|
||||
var removeFeatureSpy = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'removefeature', removeFeatureSpy);
|
||||
ol.events.listen(vectorSource, 'removefeature', removeFeatureSpy);
|
||||
var clearSourceSpy = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'clear', clearSourceSpy);
|
||||
ol.events.listen(vectorSource, 'clear', clearSourceSpy);
|
||||
vectorSource.clear();
|
||||
expect(vectorSource.getFeatures()).to.eql([]);
|
||||
expect(vectorSource.isEmpty()).to.be(true);
|
||||
@@ -184,7 +184,7 @@ describe('ol.source.Vector', function() {
|
||||
|
||||
it('fires a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'change', listener);
|
||||
ol.events.listen(vectorSource, 'change', listener);
|
||||
vectorSource.removeFeature(features[0]);
|
||||
expect(listener).to.be.called();
|
||||
});
|
||||
@@ -270,7 +270,7 @@ describe('ol.source.Vector', function() {
|
||||
var feature = new ol.Feature(new ol.geom.Point([1, 1]));
|
||||
vectorSource.addFeature(feature);
|
||||
var listener = sinon.spy();
|
||||
goog.events.listen(vectorSource, 'change', listener);
|
||||
ol.events.listen(vectorSource, 'change', listener);
|
||||
feature.set('foo', 'bar');
|
||||
expect(listener).to.be.called();
|
||||
});
|
||||
@@ -554,7 +554,7 @@ describe('ol.source.Vector', function() {
|
||||
});
|
||||
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.Collection');
|
||||
goog.require('ol.Feature');
|
||||
goog.require('ol.geom.Point');
|
||||
|
||||
@@ -194,14 +194,14 @@ describe('ol.style.IconImageCache', function() {
|
||||
|
||||
src = '0';
|
||||
iconImage = new ol.style.IconImage_(src, null);
|
||||
goog.events.listen(iconImage, goog.events.EventType.CHANGE,
|
||||
ol.events.listen(iconImage, ol.events.EventType.CHANGE,
|
||||
ol.nullFunction, false);
|
||||
cache.set(src, null, null, iconImage);
|
||||
expect(cache.cacheSize_).to.eql(4);
|
||||
|
||||
src = '4';
|
||||
iconImage = new ol.style.IconImage_(src, null);
|
||||
goog.events.listen(iconImage, goog.events.EventType.CHANGE,
|
||||
ol.events.listen(iconImage, ol.events.EventType.CHANGE,
|
||||
ol.nullFunction, false);
|
||||
cache.set(src, null, null, iconImage);
|
||||
expect(cache.cacheSize_).to.eql(5);
|
||||
@@ -217,6 +217,6 @@ describe('ol.style.IconImageCache', function() {
|
||||
});
|
||||
});
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.style.IconImageCache');
|
||||
|
||||
Reference in New Issue
Block a user