Test decluttered hit detection

This commit is contained in:
Andreas Hocevar
2017-10-22 14:30:35 +02:00
parent 53a2cf55f1
commit 912e908032
+15 -4
View File
@@ -477,10 +477,11 @@ describe('ol.rendering.layer.Vector', function() {
}); });
map.addLayer(layer); map.addLayer(layer);
source.addFeature(new ol.Feature({ var centerFeature = new ol.Feature({
geometry: new ol.geom.Point(center), geometry: new ol.geom.Point(center),
text: 'center' text: 'center'
})); });
source.addFeature(centerFeature);
source.addFeature(new ol.Feature({ source.addFeature(new ol.Feature({
geometry: new ol.geom.Point([center[0] - 550, center[1]]), geometry: new ol.geom.Point([center[0] - 550, center[1]]),
text: 'west' text: 'west'
@@ -501,6 +502,9 @@ describe('ol.rendering.layer.Vector', function() {
}); });
map.once('postrender', function() { map.once('postrender', function() {
var hitDetected = map.getFeaturesAtPixel([42, 42]);
expect(hitDetected).to.have.length(1);
expect(hitDetected[0]).to.equal(centerFeature);
expectResemble(map, 'rendering/ol/layer/expected/vector-canvas-declutter.png', expectResemble(map, 'rendering/ol/layer/expected/vector-canvas-declutter.png',
2.2, done); 2.2, done);
}); });
@@ -553,9 +557,10 @@ describe('ol.rendering.layer.Vector', function() {
}); });
map.addLayer(layer); map.addLayer(layer);
source.addFeature(new ol.Feature({ var centerFeature = new ol.Feature({
geometry: new ol.geom.Point(center) geometry: new ol.geom.Point(center)
})); });
source.addFeature(centerFeature);
source.addFeature(new ol.Feature({ source.addFeature(new ol.Feature({
geometry: new ol.geom.Point([center[0] - 550, center[1]]) geometry: new ol.geom.Point([center[0] - 550, center[1]])
})); }));
@@ -576,6 +581,9 @@ describe('ol.rendering.layer.Vector', function() {
}); });
map.once('postrender', function() { map.once('postrender', function() {
var hitDetected = map.getFeaturesAtPixel([40, 40]);
expect(hitDetected).to.have.length(1);
expect(hitDetected[0]).to.equal(centerFeature);
expectResemble(map, 'rendering/ol/layer/expected/vector-canvas-declutter-image.png', expectResemble(map, 'rendering/ol/layer/expected/vector-canvas-declutter-image.png',
IMAGE_TOLERANCE, done); IMAGE_TOLERANCE, done);
}); });
@@ -747,6 +755,9 @@ describe('ol.rendering.layer.Vector', function() {
layer.setDeclutter(true); layer.setDeclutter(true);
map.once('postrender', function() { map.once('postrender', function() {
var hitDetected = map.getFeaturesAtPixel([35, 46]);
expect(hitDetected).to.have.length(1);
expect(hitDetected[0]).to.equal(line);
expectResemble(map, 'rendering/ol/layer/expected/vector-canvas-declutter-line-zindex.png', expectResemble(map, 'rendering/ol/layer/expected/vector-canvas-declutter-line-zindex.png',
4.1, done); 4.1, done);
}); });