This moves the feature cache from ol.layer.Vector to ol.source.Vector. These are the minimum changes required to maintain the existing functionality and make tests pass. More refactoring to come.
78 lines
2.2 KiB
JavaScript
78 lines
2.2 KiB
JavaScript
goog.provide('ol.test.interaction.Select');
|
|
|
|
describe('ol.interaction.Select', function() {
|
|
var map, target, select, source, vector, features;
|
|
|
|
beforeEach(function() {
|
|
target = document.createElement('div');
|
|
target.style.width = '256px';
|
|
target.style.height = '256px';
|
|
document.body.appendChild(target);
|
|
map = new ol.Map({
|
|
target: target
|
|
});
|
|
|
|
features = [
|
|
new ol.Feature({
|
|
geometry: new ol.geom.Point([-1, 1])
|
|
}),
|
|
new ol.Feature({
|
|
geometry: new ol.geom.Point([1, -1])
|
|
})
|
|
];
|
|
|
|
source = new ol.source.Vector({});
|
|
source.addFeatures(features);
|
|
vector = new ol.layer.Vector({source: source});
|
|
select = new ol.interaction.Select({
|
|
layers: [vector]
|
|
});
|
|
map.getInteractions().push(select);
|
|
});
|
|
|
|
afterEach(function() {
|
|
goog.dispose(select);
|
|
goog.dispose(map);
|
|
document.body.removeChild(target);
|
|
select = null;
|
|
map = null;
|
|
target = null;
|
|
});
|
|
|
|
describe('#select', function() {
|
|
|
|
var selectedFeaturesFilter = function(feature) {
|
|
return feature.getRenderIntent() == 'selected';
|
|
};
|
|
|
|
it('toggles selection of features', function() {
|
|
select.select(map, [features], [vector]);
|
|
expect(source.getFeatures(selectedFeaturesFilter).length).to.be(2);
|
|
select.select(map, [features], [vector]);
|
|
expect(source.getFeatures(selectedFeaturesFilter).length).to.be(0);
|
|
});
|
|
|
|
it('can append features to an existing selection', function() {
|
|
select.select(map, [[features[0]]], [vector], true);
|
|
select.select(map, [[features[1]]], [vector]);
|
|
expect(source.getFeatures(selectedFeaturesFilter).length).to.be(2);
|
|
});
|
|
|
|
it('can clear a selection before selecting new features', function() {
|
|
select.select(map, [[features[0]]], [vector], true);
|
|
select.select(map, [[features[1]]], [vector], true);
|
|
expect(source.getFeatures(selectedFeaturesFilter).length).to.be(1);
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
goog.require('goog.dispose');
|
|
goog.require('ol.Feature');
|
|
goog.require('ol.Map');
|
|
goog.require('ol.geom.Point');
|
|
goog.require('ol.interaction.Select');
|
|
goog.require('ol.layer.Vector');
|
|
goog.require('ol.source.Vector');
|