Merge remote-tracking branch 'openlayers/master' into vector-api
This commit is contained in:
@@ -212,7 +212,7 @@ describe('ol.layer.Layer', function() {
|
||||
|
||||
it('triggers a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||
layer.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
layer.setBrightness(0.5);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
@@ -247,7 +247,7 @@ describe('ol.layer.Layer', function() {
|
||||
|
||||
it('triggers a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||
layer.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
layer.setContrast(43);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
@@ -293,7 +293,7 @@ describe('ol.layer.Layer', function() {
|
||||
|
||||
it('triggers a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||
layer.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
layer.setHue(0.5);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
@@ -324,7 +324,7 @@ describe('ol.layer.Layer', function() {
|
||||
|
||||
it('triggers a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||
layer.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
layer.setOpacity(0.4);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
@@ -360,7 +360,7 @@ describe('ol.layer.Layer', function() {
|
||||
|
||||
it('triggers a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||
layer.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
layer.setSaturation(42);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
@@ -393,7 +393,7 @@ describe('ol.layer.Layer', function() {
|
||||
|
||||
it('fires a change event', function() {
|
||||
var listener = sinon.spy();
|
||||
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||
layer.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
|
||||
layer.setVisible(false);
|
||||
expect(listener.callCount).to.be(1);
|
||||
|
||||
@@ -63,7 +63,7 @@ describe('ol.layer.Group', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('change event', function() {
|
||||
describe('generic change event', function() {
|
||||
|
||||
var layer, group, listener;
|
||||
beforeEach(function() {
|
||||
@@ -84,14 +84,14 @@ describe('ol.layer.Group', function() {
|
||||
});
|
||||
|
||||
it('is dispatched by the group when layer opacity changes', function() {
|
||||
group.on(ol.ObjectEventType.CHANGE, listener);
|
||||
group.on(goog.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(ol.ObjectEventType.CHANGE, listener);
|
||||
group.on(goog.events.EventType.CHANGE, listener);
|
||||
|
||||
layer.setVisible(false);
|
||||
expect(listener.callCount).to.be(1);
|
||||
@@ -102,6 +102,45 @@ describe('ol.layer.Group', function() {
|
||||
|
||||
});
|
||||
|
||||
describe('property change event', function() {
|
||||
|
||||
var layer, group, listener;
|
||||
beforeEach(function() {
|
||||
layer = new ol.layer.Layer({
|
||||
source: new ol.source.Source({
|
||||
projection: 'EPSG:4326'
|
||||
})
|
||||
});
|
||||
group = new ol.layer.Group({
|
||||
layers: [layer]
|
||||
});
|
||||
listener = sinon.spy();
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
goog.dispose(group);
|
||||
goog.dispose(layer);
|
||||
});
|
||||
|
||||
it('is dispatched by the group when group opacity changes', function() {
|
||||
group.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
|
||||
group.setOpacity(0.5);
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
});
|
||||
|
||||
it('is dispatched by the group when group visibility changes', function() {
|
||||
group.on(ol.ObjectEventType.PROPERTYCHANGE, listener);
|
||||
|
||||
group.setVisible(false);
|
||||
expect(listener.callCount).to.be(1);
|
||||
|
||||
group.setVisible(true);
|
||||
expect(listener.callCount).to.be(2);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('constructor (options)', function() {
|
||||
|
||||
it('accepts options', function() {
|
||||
@@ -352,6 +391,7 @@ describe('ol.layer.Group', function() {
|
||||
});
|
||||
|
||||
goog.require('goog.dispose');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.ObjectEventType');
|
||||
goog.require('ol.layer.Layer');
|
||||
goog.require('ol.layer.Group');
|
||||
|
||||
@@ -106,7 +106,7 @@ describe('ol.Object', function() {
|
||||
goog.events.listen(o, 'change:k', listener1);
|
||||
|
||||
listener2 = sinon.spy();
|
||||
goog.events.listen(o, 'change', listener2);
|
||||
goog.events.listen(o, ol.ObjectEventType.PROPERTYCHANGE, listener2);
|
||||
|
||||
var o2 = new ol.Object();
|
||||
o2.bindTo('k', o);
|
||||
@@ -121,7 +121,11 @@ describe('ol.Object', function() {
|
||||
|
||||
it('dispatches generic change events to bound objects', function() {
|
||||
o.notify('k');
|
||||
expect(listener2).to.be.called();
|
||||
expect(listener2.calledOnce).to.be(true);
|
||||
var args = listener2.firstCall.args;
|
||||
expect(args).to.have.length(1);
|
||||
var event = args[0];
|
||||
expect(event.getKey()).to.be('k');
|
||||
});
|
||||
|
||||
it('dispatches events to bound objects', function() {
|
||||
@@ -139,7 +143,7 @@ describe('ol.Object', function() {
|
||||
goog.events.listen(o, 'change:k', listener1);
|
||||
|
||||
listener2 = sinon.spy();
|
||||
goog.events.listen(o, 'change', listener2);
|
||||
goog.events.listen(o, ol.ObjectEventType.PROPERTYCHANGE, listener2);
|
||||
|
||||
o2 = new ol.Object();
|
||||
o2.bindTo('k', o);
|
||||
@@ -157,7 +161,25 @@ describe('ol.Object', function() {
|
||||
|
||||
it('dispatches generic change events to object', function() {
|
||||
o.set('k', 1);
|
||||
expect(listener2).to.be.called();
|
||||
expect(listener2.calledOnce).to.be(true);
|
||||
var args = listener2.firstCall.args;
|
||||
expect(args).to.have.length(1);
|
||||
var event = args[0];
|
||||
expect(event.getKey()).to.be('k');
|
||||
});
|
||||
|
||||
it('dispatches beforechange events to object', function() {
|
||||
o.set('k', 1);
|
||||
|
||||
var oldValue;
|
||||
var beforeListener = sinon.spy(function(event) {
|
||||
oldValue = o2.get(event.getKey());
|
||||
});
|
||||
o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
|
||||
|
||||
o.set('k', 2);
|
||||
expect(beforeListener.calledOnce).to.be(true);
|
||||
expect(oldValue).to.be(1);
|
||||
});
|
||||
|
||||
it('dispatches events to bound object', function() {
|
||||
@@ -175,8 +197,80 @@ describe('ol.Object', function() {
|
||||
|
||||
it('dispatches generic change events to object bound to', function() {
|
||||
o2.set('k', 2);
|
||||
expect(listener2).to.be.called();
|
||||
expect(listener2.calledOnce).to.be(true);
|
||||
var args = listener2.firstCall.args;
|
||||
expect(args).to.have.length(1);
|
||||
var event = args[0];
|
||||
expect(event.getKey()).to.be('k');
|
||||
});
|
||||
|
||||
it('dispatches beforechange before changing bound objects', function() {
|
||||
o2.set('k', 1);
|
||||
|
||||
var oldValue;
|
||||
var beforeListener = sinon.spy(function(event) {
|
||||
oldValue = o2.get(event.getKey());
|
||||
});
|
||||
o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
|
||||
|
||||
o2.set('k', 2);
|
||||
expect(beforeListener.calledOnce).to.be(true);
|
||||
var args = beforeListener.firstCall.args;
|
||||
expect(args).to.have.length(1);
|
||||
var event = args[0];
|
||||
expect(event.getKey()).to.be('k');
|
||||
|
||||
expect(oldValue).to.be(1);
|
||||
});
|
||||
|
||||
it('relays beforechange events from bound objects', function() {
|
||||
var target = new ol.Object({
|
||||
foo: 'original value'
|
||||
});
|
||||
var object = new ol.Object();
|
||||
object.bindTo('foo', target);
|
||||
|
||||
var oldValue;
|
||||
var beforeListener = sinon.spy(function(event) {
|
||||
oldValue = object.get(event.getKey());
|
||||
});
|
||||
object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
|
||||
|
||||
target.set('foo', 'new value');
|
||||
expect(beforeListener.calledOnce).to.be(true);
|
||||
var args = beforeListener.firstCall.args;
|
||||
expect(args).to.have.length(1);
|
||||
var event = args[0];
|
||||
expect(event.getKey()).to.be('foo');
|
||||
|
||||
expect(oldValue).to.be('original value');
|
||||
expect(object.get('foo')).to.be('new value');
|
||||
});
|
||||
|
||||
it('relays beforechange events when bound with a new key', function() {
|
||||
var target = new ol.Object({
|
||||
foo: 'original value'
|
||||
});
|
||||
var object = new ol.Object();
|
||||
object.bindTo('bar', target, 'foo');
|
||||
|
||||
var oldValue;
|
||||
var beforeListener = sinon.spy(function(event) {
|
||||
oldValue = object.get(event.getKey());
|
||||
});
|
||||
object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
|
||||
|
||||
target.set('foo', 'new value');
|
||||
expect(beforeListener.calledOnce).to.be(true);
|
||||
var args = beforeListener.firstCall.args;
|
||||
expect(args).to.have.length(1);
|
||||
var event = args[0];
|
||||
expect(event.getKey()).to.be('bar');
|
||||
|
||||
expect(oldValue).to.be('original value');
|
||||
expect(object.get('bar')).to.be('new value');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('bind', function() {
|
||||
@@ -256,6 +350,59 @@ describe('ol.Object', function() {
|
||||
expect(o.get('k')).to.eql(1);
|
||||
expect(o2.get('k')).to.eql(2);
|
||||
});
|
||||
|
||||
it('stops relaying beforechange events', function() {
|
||||
var target = new ol.Object({
|
||||
foo: 'original value'
|
||||
});
|
||||
var object = new ol.Object();
|
||||
object.bindTo('foo', target);
|
||||
|
||||
var listener = sinon.spy();
|
||||
object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, listener);
|
||||
|
||||
target.set('foo', 'new value');
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
var call = listener.firstCall;
|
||||
expect(call.args).to.have.length(1);
|
||||
expect(call.args[0].getKey()).to.be('foo');
|
||||
|
||||
object.unbind('foo');
|
||||
target.set('foo', 'another new value');
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
|
||||
expect(object.get('foo')).to.be('new value');
|
||||
});
|
||||
|
||||
it('selectively stops relaying beforechange events', function() {
|
||||
var target = new ol.Object({
|
||||
foo: 'original foo',
|
||||
bar: 'original bar'
|
||||
});
|
||||
var object = new ol.Object();
|
||||
object.bindTo('foo', target);
|
||||
object.bindTo('bar', target);
|
||||
|
||||
var listener = sinon.spy();
|
||||
object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, listener);
|
||||
|
||||
target.set('foo', 'new foo');
|
||||
expect(listener.calledOnce).to.be(true);
|
||||
|
||||
target.set('bar', 'new bar');
|
||||
expect(listener.callCount).to.be(2);
|
||||
|
||||
object.unbind('foo');
|
||||
target.set('foo', 'another new foo');
|
||||
expect(listener.callCount).to.be(2);
|
||||
|
||||
target.set('bar', 'another new bar');
|
||||
expect(listener.callCount).to.be(3);
|
||||
var lastCall = listener.getCall(2);
|
||||
expect(lastCall.args).to.have.length(1);
|
||||
expect(lastCall.args[0].getKey()).to.be('bar');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('unbindAll', function() {
|
||||
@@ -567,3 +714,4 @@ describe('ol.Object', function() {
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.ObjectEventType');
|
||||
|
||||
Reference in New Issue
Block a user