diff --git a/src/ol/object.js b/src/ol/object.js index e7942f8a0e..dbcf0a3e4e 100644 --- a/src/ol/object.js +++ b/src/ol/object.js @@ -6,6 +6,7 @@ */ goog.provide('ol.Object'); +goog.provide('ol.ObjectEventType'); goog.require('goog.array'); goog.require('goog.events'); @@ -13,6 +14,14 @@ goog.require('goog.events.EventTarget'); goog.require('goog.object'); +/** + * @enum {string} + */ +ol.ObjectEventType = { + CHANGED: 'changed' +}; + + /** * @enum {string} */ @@ -192,6 +201,7 @@ ol.Object.prototype.notify = function(key) { ol.Object.prototype.notifyInternal_ = function(key) { var eventType = ol.Object.getChangedEventType(key); this.dispatchEvent(eventType); + this.dispatchEvent(ol.ObjectEventType.CHANGED); }; diff --git a/test/spec/ol/object.test.js b/test/spec/ol/object.test.js index 8cfbc2c196..d445ac0e39 100644 --- a/test/spec/ol/object.test.js +++ b/test/spec/ol/object.test.js @@ -46,16 +46,19 @@ describe('ol.Object', function() { describe('notify', function() { - var listener1, listener2; + var listener1, listener2, listener3; beforeEach(function() { listener1 = jasmine.createSpy(); goog.events.listen(o, 'k_changed', listener1); + listener2 = jasmine.createSpy(); + goog.events.listen(o, 'changed', listener2); + var o2 = new ol.Object(); o2.bindTo('k', o); - listener2 = jasmine.createSpy(); - goog.events.listen(o2, 'k_changed', listener2); + listener3 = jasmine.createSpy(); + goog.events.listen(o2, 'k_changed', listener3); }); it('dispatches events', function() { @@ -63,24 +66,32 @@ describe('ol.Object', function() { expect(listener1).toHaveBeenCalled(); }); - it('dispatches events to bound objects', function() { + it('dispatches generic change events to bound objects', function() { o.notify('k'); expect(listener2).toHaveBeenCalled(); }); + + it('dispatches events to bound objects', function() { + o.notify('k'); + expect(listener3).toHaveBeenCalled(); + }); }); describe('set', function() { - var listener1, o2, listener2; + var listener1, o2, listener2, listener3; beforeEach(function() { listener1 = jasmine.createSpy(); goog.events.listen(o, 'k_changed', listener1); + listener2 = jasmine.createSpy(); + goog.events.listen(o, 'changed', listener2); + o2 = new ol.Object(); o2.bindTo('k', o); - listener2 = jasmine.createSpy(); - goog.events.listen(o2, 'k_changed', listener2); + listener3 = jasmine.createSpy(); + goog.events.listen(o2, 'k_changed', listener3); }); it('dispatches events to object', function() { @@ -88,15 +99,25 @@ describe('ol.Object', function() { expect(listener1).toHaveBeenCalled(); }); - it('dispatches events to bound object', function() { + it('dispatches generic change events to object', function() { o.set('k', 1); expect(listener2).toHaveBeenCalled(); }); + it('dispatches events to bound object', function() { + o.set('k', 1); + expect(listener3).toHaveBeenCalled(); + }); + it('dispatches events to object bound to', function() { o2.set('k', 2); expect(listener1).toHaveBeenCalled(); }); + + it('dispatches generic change events to object bound to', function() { + o2.set('k', 2); + expect(listener2).toHaveBeenCalled(); + }); }); describe('bind', function() {