3e3f9e89c4
* [LayerGroup] use eachLayer method instead of for...in * [LayerGroup] use eachLayer method in getLayers method * [LayerGroup] use eachLayer method in onAdd & onRemove methods * [LayerGroup] invoke method fix - use `eachLayer` method instead of for...in - add unit test for `invoke` method * revert invoke method change
112 lines
2.6 KiB
JavaScript
112 lines
2.6 KiB
JavaScript
describe('LayerGroup', function () {
|
|
describe("#hasLayer", function () {
|
|
it("returns false when passed undefined, null, or false", function () {
|
|
var lg = L.layerGroup();
|
|
expect(lg.hasLayer(undefined)).to.equal(false);
|
|
expect(lg.hasLayer(null)).to.equal(false);
|
|
expect(lg.hasLayer(false)).to.equal(false);
|
|
});
|
|
});
|
|
|
|
describe("#addLayer", function () {
|
|
it('adds a layer', function () {
|
|
var lg = L.layerGroup(),
|
|
marker = L.marker([0, 0]);
|
|
|
|
expect(lg.addLayer(marker)).to.eql(lg);
|
|
|
|
expect(lg.hasLayer(marker)).to.be(true);
|
|
});
|
|
});
|
|
|
|
describe("#removeLayer", function () {
|
|
it('removes a layer', function () {
|
|
var lg = L.layerGroup(),
|
|
marker = L.marker([0, 0]);
|
|
|
|
lg.addLayer(marker);
|
|
expect(lg.removeLayer(marker)).to.eql(lg);
|
|
|
|
expect(lg.hasLayer(marker)).to.be(false);
|
|
});
|
|
});
|
|
|
|
describe("#clearLayers", function () {
|
|
it('removes all layers', function () {
|
|
var lg = L.layerGroup(),
|
|
marker = L.marker([0, 0]);
|
|
|
|
lg.addLayer(marker);
|
|
expect(lg.clearLayers()).to.eql(lg);
|
|
|
|
expect(lg.hasLayer(marker)).to.be(false);
|
|
});
|
|
});
|
|
|
|
describe("#getLayers", function () {
|
|
it('gets all layers', function () {
|
|
var lg = L.layerGroup(),
|
|
marker = L.marker([0, 0]);
|
|
|
|
lg.addLayer(marker);
|
|
|
|
expect(lg.getLayers()).to.eql([marker]);
|
|
});
|
|
});
|
|
|
|
describe("#eachLayer", function () {
|
|
it('iterates over all layers', function () {
|
|
var lg = L.layerGroup(),
|
|
marker = L.marker([0, 0]),
|
|
ctx = {foo: 'bar'};
|
|
|
|
lg.addLayer(marker);
|
|
|
|
lg.eachLayer(function (layer) {
|
|
expect(layer).to.eql(marker);
|
|
expect(this).to.eql(ctx);
|
|
}, ctx);
|
|
});
|
|
});
|
|
|
|
describe("#toGeoJSON", function () {
|
|
it('should return valid GeoJSON for a layer with a FeatureCollection', function () {
|
|
var geoJSON = {
|
|
"type":"FeatureCollection",
|
|
"features":[
|
|
{
|
|
"type":"Feature",
|
|
"properties":{},
|
|
"geometry": {
|
|
"type":"Point",
|
|
"coordinates": [78.3984375, 56.9449741808516]
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
var layerGroup = L.layerGroup();
|
|
var layer = L.geoJSON(geoJSON);
|
|
layerGroup.addLayer(layer);
|
|
|
|
L.geoJson(layerGroup.toGeoJSON());
|
|
});
|
|
});
|
|
|
|
describe("#invoke", function () {
|
|
it('should invoke `setOpacity` method on every layer', function () {
|
|
var layers = [
|
|
L.marker([0, 0]),
|
|
L.marker([1, 1])
|
|
];
|
|
var lg = L.layerGroup(layers);
|
|
var opacity = 0.5;
|
|
|
|
expect(layers[0].options.opacity).to.not.eql(opacity);
|
|
lg.invoke('setOpacity', opacity);
|
|
expect(layers[0].options.opacity).to.eql(opacity);
|
|
expect(layers[1].options.opacity).to.eql(opacity);
|
|
});
|
|
});
|
|
});
|