Proper getAttributes method

With a59aa9bb37 we can now provide an object with user set attributes.
This commit is contained in:
Tim Schaub
2013-02-20 10:32:51 -07:00
parent 0f2f26969d
commit 7ce89f1fbe
2 changed files with 33 additions and 11 deletions

View File

@@ -28,17 +28,15 @@ goog.inherits(ol.Feature, ol.Object);
* @return {Object} Attributes object.
*/
ol.Feature.prototype.getAttributes = function() {
// TODO: see https://github.com/openlayers/ol3/pull/217
// var keys = this.getKeys(),
// len = keys.length,
// attributes = {},
// i, key
// for (var i = 0; i < len; ++ i) {
// key = keys[i];
// attributes[key] = this.get(key);
// }
// return attributes;
return this;
var keys = this.getKeys(),
len = keys.length,
attributes = {},
i, key;
for (i = 0; i < len; ++ i) {
key = keys[i];
attributes[key] = this.get(key);
}
return attributes;
};

View File

@@ -52,6 +52,29 @@ describe('ol.Feature', function() {
});
describe('#getAttributes()', function() {
it('returns an object with all attributes', function() {
var point = new ol.geom.Point([15, 30]);
var feature = new ol.Feature({
foo: 'bar',
ten: 10,
loc: point
});
var attributes = feature.getAttributes();
var keys = goog.object.getKeys(attributes);
expect(keys.sort()).toEqual(['foo', 'loc', 'ten']);
expect(attributes.foo).toBe('bar');
expect(attributes.loc).toBe(point);
expect(attributes.ten).toBe(10);
});
});
describe('#getGeometry()', function() {
var point = new ol.geom.Point([15, 30]);
@@ -157,5 +180,6 @@ describe('ol.Feature', function() {
});
goog.require('goog.object');
goog.require('ol.Feature');
goog.require('ol.geom.Point');