Merge pull request #4268 from jonataswalker/get-overlay-by-id

Add method for retrieving ol.Overlay by id
This commit is contained in:
Andreas Hocevar
2015-10-14 22:12:59 +02:00
5 changed files with 194 additions and 10 deletions

View File

@@ -315,6 +315,69 @@ describe('ol.Map', function() {
});
});
describe('#getOverlayById()', function() {
var target, map, overlay, overlay_target;
beforeEach(function() {
target = document.createElement('div');
var style = target.style;
style.position = 'absolute';
style.left = '-1000px';
style.top = '-1000px';
style.width = '360px';
style.height = '180px';
document.body.appendChild(target);
map = new ol.Map({
target: target,
view: new ol.View({
projection: 'EPSG:4326',
center: [0, 0],
resolution: 1
})
});
overlay_target = document.createElement('div');
});
afterEach(function() {
map.removeOverlay(overlay);
goog.dispose(map);
document.body.removeChild(target);
});
it('returns an overlay by id', function() {
overlay = new ol.Overlay({
id: 'foo',
element: overlay_target,
position: [0, 0]
});
map.addOverlay(overlay);
expect(map.getOverlayById('foo')).to.be(overlay);
});
it('returns null when no overlay is found', function() {
overlay = new ol.Overlay({
id: 'foo',
element: overlay_target,
position: [0, 0]
});
map.addOverlay(overlay);
expect(map.getOverlayById('bar')).to.be(null);
});
it('returns null after removing overlay', function() {
overlay = new ol.Overlay({
id: 'foo',
element: overlay_target,
position: [0, 0]
});
map.addOverlay(overlay);
expect(map.getOverlayById('foo')).to.be(overlay);
map.removeOverlay(overlay);
expect(map.getOverlayById('foo')).to.be(null);
});
});
});
});
@@ -325,6 +388,7 @@ goog.require('goog.events.BrowserEvent');
goog.require('goog.events.EventType');
goog.require('ol.Map');
goog.require('ol.MapEvent');
goog.require('ol.Overlay');
goog.require('ol.View');
goog.require('ol.interaction');
goog.require('ol.interaction.Interaction');

View File

@@ -1,6 +1,36 @@
goog.provide('ol.test.Overlay');
describe('ol.Overlay', function() {
var target, map;
var width = 360;
var height = 180;
beforeEach(function() {
target = document.createElement('div');
var style = target.style;
style.position = 'absolute';
style.left = '-1000px';
style.top = '-1000px';
style.width = width + 'px';
style.height = height + 'px';
document.body.appendChild(target);
map = new ol.Map({
target: target,
view: new ol.View({
projection: 'EPSG:4326',
center: [0, 0],
resolution: 1
})
});
});
afterEach(function() {
goog.dispose(map);
document.body.removeChild(target);
});
describe('constructor', function() {
@@ -11,6 +41,38 @@ describe('ol.Overlay', function() {
});
describe('#getId()', function() {
var overlay, target;
beforeEach(function() {
target = document.createElement('div');
});
afterEach(function() {
map.removeOverlay(overlay);
});
it('returns the overlay identifier', function() {
overlay = new ol.Overlay({
element: target,
position: [0, 0]
});
map.addOverlay(overlay);
expect(overlay.getId()).to.be(undefined);
map.removeOverlay(overlay);
overlay = new ol.Overlay({
id: 'foo',
element: target,
position: [0, 0]
});
map.addOverlay(overlay);
expect(overlay.getId()).to.be('foo');
});
});
});
goog.require('goog.dispose');
goog.require('ol.Map');
goog.require('ol.Overlay');
goog.require('ol.View');