Hit-detect skipped features, but not on unmanaged layer

This commit is contained in:
Andreas Hocevar
2016-02-17 00:42:44 +01:00
parent c836f97ec3
commit 9f0fefd42d
9 changed files with 40 additions and 47 deletions

View File

@@ -55,13 +55,30 @@ describe('ol.renderer.canvas.Map', function() {
expect(cb.firstCall.args[1]).to.be(layer);
});
it('calls callback with null for unmanaged layers', function() {
it('calls callback for unmanaged layers', function() {
layer.setMap(map);
map.renderSync();
var cb = sinon.spy();
map.forEachFeatureAtPixel(map.getPixelFromCoordinate([0, 0]), cb);
expect(cb).to.be.called();
expect(cb.firstCall.args[1]).to.be(null);
expect(cb.firstCall.args[1]).to.be(layer);
});
it('calls callback with main layer when skipped feature on unmanaged layer', function() {
var feature = layer.getSource().getFeatures()[0];
var managedLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [feature]
})
});
map.addLayer(managedLayer);
map.skipFeature(feature);
layer.setMap(map);
map.renderSync();
var cb = sinon.spy();
map.forEachFeatureAtPixel(map.getPixelFromCoordinate([0, 0]), cb);
expect(cb.callCount).to.be(1);
expect(cb.firstCall.args[1]).to.be(managedLayer);
});
it('filters managed layers', function() {