Files
openlayers/test/spec/ol/Feature.test.js
2012-06-20 13:33:20 -04:00

80 lines
2.1 KiB
JavaScript

describe("ol.Feature", function() {
it("should be easy to make a feature", function() {
var feat = new ol.Feature();
expect(feat).toBeA(ol.Feature);
});
it("should be easy to set feature attribute", function() {
var feat = new ol.Feature();
feat.setAttribute('foo', 'bar');
expect(feat).toBeA(ol.Feature);
expect(feat.getAttribute('foo')).toBe('bar');
});
it("calling set with one argument", function() {
var feat = new ol.Feature();
feat.setAttribute('foo');
expect(feat.getAttribute('foo')).toBe(undefined);
});
it("should be easy to set feature geometry", function() {
var feat = new ol.Feature();
var point = ol.geom.point([21, 4]);
feat.setGeometry(point);
var geom = feat.getGeometry();
expect(feat).toBeA(ol.Feature);
expect(geom).toBeA(ol.geom.Geometry);
expect(geom.getX()).toBe(21);
expect(geom.getY()).toBe(4);
});
it("should be able to set attributes from object literals", function() {
var feat = new ol.Feature();
feat.setAttributes({
foo: 'bar',
two: 'deux',
size: 3,
flag: true
});
expect(feat).toBeA(ol.Feature);
expect(feat.getAttribute('foo')).toBe('bar');
expect(feat.getAttribute('two')).toBe('deux');
expect(feat.getAttribute('size')).toBe(3);
expect(feat.getAttribute('flag')).toBe(true);
});
it("should be able to set attributes keeping existing ones", function() {
var feat = new ol.Feature();
feat.setAttributes({
foo: 'bar',
size: 3
});
expect(feat).toBeA(ol.Feature);
expect(feat.getAttribute('size')).toBe(3);
feat.setAttributes({
two: 'deux',
size: -99
});
expect(feat.getAttribute('two')).toBe('deux');
expect(feat.getAttribute('foo')).toBe('bar');
expect(feat.getAttribute('size')).toBe(-99);
});
});