diff --git a/lib/OpenLayers/Control/OverviewMap.js b/lib/OpenLayers/Control/OverviewMap.js index 86c073775f..c6085d6bd5 100644 --- a/lib/OpenLayers/Control/OverviewMap.js +++ b/lib/OpenLayers/Control/OverviewMap.js @@ -398,8 +398,12 @@ OpenLayers.Control.OverviewMap = OpenLayers.Class(OpenLayers.Control, { * minimize - {Boolean} */ showToggle: function(minimize) { - this.maximizeDiv.style.display = minimize ? '' : 'none'; - this.minimizeDiv.style.display = minimize ? 'none' : ''; + if (this.maximizeDiv) { + this.maximizeDiv.style.display = minimize ? '' : 'none'; + } + if (this.minimizeDiv) { + this.minimizeDiv.style.display = minimize ? 'none' : ''; + } }, /** diff --git a/tests/Control/OverviewMap.html b/tests/Control/OverviewMap.html index 30cac5dff0..6548e21e59 100644 --- a/tests/Control/OverviewMap.html +++ b/tests/Control/OverviewMap.html @@ -209,6 +209,37 @@ map.destroy(); } + + function test_custom_div(t) { + t.plan(3); + var div = document.createElement('div'); + + control = new OpenLayers.Control.OverviewMap({ + div: div + }); + + map = new OpenLayers.Map('map', { + layers : [new OpenLayers.Layer("layer", {isBaseLayer: true})], + controls: [control] + }); + + t.eq(control.maximizeDiv, null, + "OverviewMap does not create maximize div"); + t.eq(control.minimizeDiv, null, + "OverviewMap does not create minimize div"); + + var exc; + try { + control.maximizeControl(); + control.minimizeControl(); + } catch(e) { + exc = e; + } + + t.eq(exc, undefined, 'maximize and minimize do not trigger an exception'); + + map.destroy(); + }