mirror of
https://github.com/Leaflet/Leaflet.git
synced 2025-08-20 14:34:38 +00:00
Use array in L.Control.Layers to preserve layer order fixes #2086
This commit is contained in:

committed by
Per Liedman

parent
e083d41ff7
commit
0bed05d537
@ -4,6 +4,9 @@ describe("Control.Layers", function () {
|
||||
beforeEach(function () {
|
||||
map = L.map(document.createElement('div'));
|
||||
});
|
||||
afterEach(function () {
|
||||
map.remove();
|
||||
});
|
||||
|
||||
describe("baselayerchange event", function () {
|
||||
beforeEach(function () {
|
||||
@ -43,7 +46,7 @@ describe("Control.Layers", function () {
|
||||
map.setView([0, 0], 14);
|
||||
});
|
||||
|
||||
it("when an included layer is addded or removed", function () {
|
||||
it("when an included layer is added or removed from the map", function () {
|
||||
var baseLayer = L.tileLayer(),
|
||||
overlay = L.marker([0, 0]),
|
||||
layers = L.control.layers({"Base": baseLayer}, {"Overlay": overlay}).addTo(map);
|
||||
@ -57,6 +60,23 @@ describe("Control.Layers", function () {
|
||||
expect(spy.callCount).to.eql(2);
|
||||
});
|
||||
|
||||
it("when an included layer is added or removed from the map, it's (un)checked", function () {
|
||||
document.body.appendChild(map._container);
|
||||
var baseLayer = L.tileLayer(),
|
||||
overlay = L.marker([0, 0]),
|
||||
layers = L.control.layers({"Baselayer": baseLayer}, {"Overlay": overlay}).addTo(map);
|
||||
|
||||
function isChecked() {
|
||||
return !!(map._container.querySelector('.leaflet-control-layers-overlays input').checked);
|
||||
}
|
||||
|
||||
expect(isChecked()).to.not.be.ok();
|
||||
map.addLayer(overlay);
|
||||
expect(isChecked()).to.be.ok();
|
||||
map.removeLayer(overlay);
|
||||
expect(isChecked()).to.not.be.ok();
|
||||
});
|
||||
|
||||
it("not when a non-included layer is added or removed", function () {
|
||||
var baseLayer = L.tileLayer(),
|
||||
overlay = L.marker([0, 0]),
|
||||
@ -69,6 +89,17 @@ describe("Control.Layers", function () {
|
||||
|
||||
expect(spy.called).to.not.be.ok();
|
||||
});
|
||||
|
||||
it("updates when an included layer is removed from the control", function () {
|
||||
document.body.appendChild(map._container);
|
||||
var baseLayer = L.tileLayer(),
|
||||
overlay = L.marker([0, 0]),
|
||||
layers = L.control.layers({"Base": baseLayer}, {"Overlay": overlay}).addTo(map);
|
||||
|
||||
layers.removeLayer(overlay);
|
||||
expect(map._container.querySelector('.leaflet-control-layers-overlays').children.length)
|
||||
.to.be.equal(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("is removed cleanly", function () {
|
||||
@ -84,7 +115,6 @@ describe("Control.Layers", function () {
|
||||
expect(function () {
|
||||
map.removeLayer(baseLayer);
|
||||
}).to.not.throwException();
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user