diff --git a/src/ol/index.js b/src/ol/index.js index 697b11a25f..3ab01ab195 100644 --- a/src/ol/index.js +++ b/src/ol/index.js @@ -270,8 +270,8 @@ ol.nullFunction = function() {}; /** * Gets a unique ID for an object. This mutates the object so that further calls - * with the same object as a parameter returns the same value. Adapted from - * goog.getUid. + * with the same object as a parameter returns the same value. Unique IDs are generated + * as a strictly increasing sequence. Adapted from goog.getUid. * * @param {Object} obj The object to get the unique ID for. * @return {number} The unique ID for the object. diff --git a/test/spec/ol/index.test.js b/test/spec/ol/index.test.js new file mode 100644 index 0000000000..8b38580612 --- /dev/null +++ b/test/spec/ol/index.test.js @@ -0,0 +1,23 @@ +goog.provide('ol.test'); +goog.require('ol'); + +describe('getUid()', function() { + it('is constant once generated', function() { + var a = {}; + expect(ol.getUid(a)).to.be(ol.getUid(a)); + }); + + it('generates a strictly increasing sequence', function() { + var a = {} , b = {}, c = {}; + ol.getUid(a); + ol.getUid(c); + ol.getUid(b); + + //uid order should be a < c < b + expect(ol.getUid(a)).to.be.lessThan(ol.getUid(c)); + expect(ol.getUid(c)).to.be.lessThan(ol.getUid(b)); + expect(ol.getUid(a)).to.be.lessThan(ol.getUid(b)); + }); +}); + +