Add some tests for events. Refs #200

This commit is contained in:
danzel
2013-06-24 10:23:16 +12:00
parent 3fd7a52a7d
commit 6694a00fad
2 changed files with 110 additions and 3 deletions
+8 -3
View File
@@ -31,18 +31,23 @@
<script type="text/javascript" src="suites/LeafletSpec.js"></script>
<script type="text/javascript" src="suites/AddLayer.SingleSpec.js"></script>
<script type="text/javascript" src="suites/AddLayer.MultipleSpec.js"></script>
<script type="text/javascript" src="suites/AddLayer.SingleSpec.js"></script>
<script type="text/javascript" src="suites/AddLayersSpec.js"></script>
<script type="text/javascript" src="suites/RemoveLayerSpec.js"></script>
<script type="text/javascript" src="suites/ChildChangingIconSupportSpec.js"></script>
<script type="text/javascript" src="suites/CircleMarkerSupportSpec.js"></script>
<script type="text/javascript" src="suites/CircleSupportSpec.js"></script>
<script type="text/javascript" src="suites/ChildChangingIconSupportSpec.js"></script>
<script type="text/javascript" src="suites/clearLayersSpec.js"></script>
<script type="text/javascript" src="suites/eachLayerSpec.js"></script>
<script type="text/javascript" src="suites/eventsSpec.js"></script>
<script type="text/javascript" src="suites/getBoundsSpec.js"></script>
<script type="text/javascript" src="suites/NonPointSpec.js"></script>
<script type="text/javascript" src="suites/RemoveLayerSpec.js"></script>
<script>
(window.mochaPhantomJS || window.mocha).run();
+102
View File
@@ -0,0 +1,102 @@
describe('events', function() {
var map, div;
beforeEach(function() {
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() {
document.body.removeChild(div);
});
it('is fired for a single child marker', function () {
var callback = sinon.spy();
var group = new L.MarkerClusterGroup();
var marker = new L.Marker([1.5, 1.5]);
group.on('click', callback);
group.addLayer(marker);
map.addLayer(group);
marker.fire('click');
expect(callback.called).to.be(true);
});
it('is fired for a child polygon', function () {
var callback = sinon.spy();
var group = new L.MarkerClusterGroup();
var polygon = new L.Polygon([[1.5, 1.5], [2.0, 1.5], [2.0, 2.0], [1.5, 2.0]]);
group.on('click', callback);
group.addLayer(polygon);
map.addLayer(group);
polygon.fire('click');
expect(callback.called).to.be(true);
});
it('fires events for nonpoint data after being removed and re-added to the map', function () {
var callback = sinon.spy();
var group = new L.MarkerClusterGroup();
var polygon = new L.Polygon([[1.5, 1.5], [2.0, 1.5], [2.0, 2.0], [1.5, 2.0]]);
group.on('click', callback);
group.addLayer(polygon);
map.addLayer(group);
map.removeLayer(group);
map.addLayer(group);
polygon.fire('click');
expect(callback.called).to.be(true);
});
it('fires events for point data after being removed and re-added to the map', function () {
var callback = sinon.spy();
var group = new L.MarkerClusterGroup();
var marker = new L.Marker([1.5, 1.5]);
group.on('click', callback);
group.addLayer(marker);
map.addLayer(group);
map.removeLayer(group);
map.addLayer(group);
marker.fire('click');
expect(callback.called).to.be(true);
});
/*
//No normal events can be fired by a clustered marker, so probably don't need this.
it('is fired for a clustered child marker', function() {
var callback = sinon.spy();
var group = new L.MarkerClusterGroup();
var marker = new L.Marker([1.5, 1.5]);
var marker2 = new L.Marker([1.5, 1.5]);
group.on('click', callback);
group.addLayers([marker, marker2]);
map.addLayer(group);
marker.fire('click');
expect(callback.called).to.be(true);
});
*/
});