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');
|