Add failing test for change event propagation

This commit is contained in:
Antoine Abt
2014-02-04 15:22:43 +01:00
parent 43e42d959d
commit ef27ed7aef

View File

@@ -9,15 +9,45 @@ describe('ol.geom.GeometryCollection', function() {
describe('constructor', function() {
var line, multi, point, poly;
beforeEach(function() {
point = new ol.geom.Point([10, 20]);
line = new ol.geom.LineString([[10, 20], [30, 40]]);
poly = new ol.geom.Polygon([outer, inner1, inner2]);
multi = new ol.geom.GeometryCollection([point, line, poly]);
});
it('creates a geometry collection from an array of geometries', function() {
var point = new ol.geom.Point([10, 20]);
var line = new ol.geom.LineString([[10, 20], [30, 40]]);
var poly = new ol.geom.Polygon([outer, inner1, inner2]);
var multi = new ol.geom.GeometryCollection([point, line, poly]);
expect(multi).to.be.a(ol.geom.GeometryCollection);
expect(multi).to.be.a(ol.geom.Geometry);
});
it('fires a change event when one of its component changes',
function(done) {
multi.on('change', function() {
done();
});
point.setCoordinates([10, 10]);
}
);
it('deregister old components', function() {
multi.setGeometries([poly]);
multi.on('change', function() {
expect().fail();
});
point.setCoordinates([10, 10]);
});
it('register new components', function(done) {
var point2 = new ol.geom.Point([10, 20]);
multi.setGeometriesArray([point2]);
multi.on('change', function() {
done();
});
point2.setCoordinates([10, 10]);
});
});
describe('#getGeometries', function() {
@@ -97,8 +127,6 @@ describe('ol.geom.GeometryCollection', function() {
it('fires a change event', function() {
var listener = sinon.spy();
multi.on('change', listener);
point.setCoordinates([15, 25]);
expect(listener.calledOnce).to.be(false);
multi.setGeometries([point, line, poly]);
expect(listener.calledOnce).to.be(true);
});
@@ -106,8 +134,6 @@ describe('ol.geom.GeometryCollection', function() {
it('updates the extent', function() {
expect(multi.getExtent()).to.eql([0, 0, 30, 40]);
line.setCoordinates([[10, 20], [300, 400]]);
expect(multi.getExtent()).to.eql([0, 0, 30, 40]);
multi.setGeometries([point, line, poly]);
expect(multi.getExtent()).to.eql([0, 0, 300, 400]);
});