diff --git a/spec/index.html b/spec/index.html index 42ad45b74..a68feeefe 100644 --- a/spec/index.html +++ b/spec/index.html @@ -1,4 +1,4 @@ - + @@ -52,6 +52,7 @@ + diff --git a/spec/suites/removeLayersSpec.js b/spec/suites/removeLayersSpec.js new file mode 100644 index 000000000..0ff840a60 --- /dev/null +++ b/spec/suites/removeLayersSpec.js @@ -0,0 +1,68 @@ +describe('removeLayers', function () { + var map, div, clock; + beforeEach(function () { + clock = sinon.useFakeTimers(); + div = document.createElement('div'); + div.style.width = '200px'; + div.style.height = '200px'; + document.body.appendChild(div); + + map = L.map(div, { maxZoom: 18 }); + + map.fitBounds(new L.LatLngBounds([ + [1, 1], + [2, 2] + ])); + }); + afterEach(function () { + clock.restore(); + document.body.removeChild(div); + }); + + it('removes all the layer given to it', function () { + + var group = new L.MarkerClusterGroup(); + var markers = [ + new L.Marker([1.5, 1.5]), + new L.Marker([1.5, 1.5]), + new L.Marker([1.5, 1.5]) + ]; + + map.addLayer(group); + + group.addLayers(markers); + + group.removeLayers(markers); + + expect(group.hasLayer(markers[0])).to.be(false); + expect(group.hasLayer(markers[1])).to.be(false); + expect(group.hasLayer(markers[2])).to.be(false); + + expect(group.getLayers().length).to.be(0); + }); + + + it('doesnt break if we are spiderfied', function () { + + var group = new L.MarkerClusterGroup(); + var markers = [ + new L.Marker([1.5, 1.5]), + new L.Marker([1.5, 1.5]), + new L.Marker([1.5, 1.5]) + ]; + + map.addLayer(group); + + group.addLayers(markers); + + markers[0].__parent.spiderfy(); + + group.removeLayers(markers); + + expect(group.hasLayer(markers[0])).to.be(false); + expect(group.hasLayer(markers[1])).to.be(false); + expect(group.hasLayer(markers[2])).to.be(false); + + expect(group.getLayers().length).to.be(0); + }); +}); \ No newline at end of file