From 77f227ffedf4a0587e7ac395aed42ef56766d67f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 4 Jan 2012 21:01:46 +0100 Subject: [PATCH] more Grid tests, for delayed back buffer removal --- tests/Layer/Grid.html | 74 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/tests/Layer/Grid.html b/tests/Layer/Grid.html index eae762735c..50d64768d9 100644 --- a/tests/Layer/Grid.html +++ b/tests/Layer/Grid.html @@ -949,7 +949,7 @@ } function test_applyBackBuffer(t) { - t.plan(13); + t.plan(16); var map = new OpenLayers.Map('map2'); var layer = new OpenLayers.Layer.WMS('', '', {}, { @@ -1012,6 +1012,24 @@ t.eq(layer.backBuffer.style.top, '295%', 'back buffer has correct top'); + // test #4 + // and a back buffer in the layer and do as if back buffer removal + // has been scheduled, and test that applyBackBuffer removes the + // back buffer and clears the timer + layer.createBackBuffer = function() { + return; + }; + backBuffer = document.createElement('div'); + layer.div.insertBefore(backBuffer, layer.div.firstChild); + layer.backBuffer = backBuffer; + layer.backBufferTimerId = 'fake'; + layer.applyBackBuffer(2); + t.ok(backBuffer.parentNode !== layer.div, + 'back buffer is not child node of layer div'); + t.eq(layer.backBuffer, null, + 'back buffer not set in layer'); + t.eq(layer.backBufferTimerId, null, + 'back buffer timer cleared'); map.destroy(); } @@ -1058,7 +1076,7 @@ } function test_removeBackBuffer(t) { - t.plan(3); + t.plan(4); var map = new OpenLayers.Map('map'); var layer = new OpenLayers.Layer.WMS('', '', {}, {isBaseLayer: true}); @@ -1070,12 +1088,17 @@ layer.div.appendChild(backBuffer); layer.backBufferResolution = 32; + // add a fake back buffer removal timer + layer.backBufferTimerId = 'fake'; + layer.removeBackBuffer(); t.eq(layer.backBuffer, null, 'backBuffer set to null in layer'); t.eq(layer.backBufferResolution, null, 'backBufferResolution set to null in layer'); t.ok(backBuffer.parentNode !== layer.div, 'back buffer removed from layer'); + t.eq(layer.backBufferTimerId, null, + 'backBufferTimerId set to null in layer'); map.destroy(); } @@ -1215,6 +1238,53 @@ map.destroy(); } + + function test_delayed_back_buffer_removal(t) { + + // + // Test that the delaying of the back buffer removal behaves + // as expected. + // + + t.plan(5); + + // set up + + var map = new OpenLayers.Map('map', { + resolutions: [32, 16, 8, 4, 2, 1] + }); + var layer = new OpenLayers.Layer.WMS('', '', {}, { + isBaseLayer: true, + transitionEffect: 'resize' + }); + map.addLayer(layer); + map.setCenter(new OpenLayers.LonLat(0, 0), 0); + + map.zoomTo(1); + + t.delay_call(1, function() { + + t.ok(layer.backBuffer.parentNode === layer.div, + '[a] back buffer is a child of layer div'); + t.ok(layer.backBufferTimerId !== null, + '[a] back buffer scheduled for removal'); + + var backBuffer = layer.backBuffer; + + map.zoomTo(2); + + t.ok(layer.backBuffer !== backBuffer, + '[b] a new back buffer was created'); + t.ok(layer.backBuffer.parentNode === layer.div, + '[b] back buffer is a child of layer div'); + t.ok(layer.backBufferTimerId === null, + '[b] back buffer no longer scheduled for removal'); + + // tear down + + map.destroy(); + }); + }