diff --git a/tests/Layer/Grid.html b/tests/Layer/Grid.html index 859f205c57..68a2133ad4 100644 --- a/tests/Layer/Grid.html +++ b/tests/Layer/Grid.html @@ -71,6 +71,26 @@ map.destroy(); } + + function test_queueTileDraw(t) { + t.plan(3); + OpenLayers.Layer.Grid.prototype.queueTileDraw = origQueueTileDraw; + + var map = new OpenLayers.Map('map'); + layer = new OpenLayers.Layer.WMS(name, url, params); + map.addLayer(layer); + map.setCenter([0, 0], 3); + var queued = layer.tileQueue.length; + t.ok(layer.tileQueue.length, "Tiles queued for drawing"); + map.zoomIn(); + t.eq(layer.tileQueue.length, queued, "Tile queue has same length after immediate zoom change"); + t.delay_call(1, function() { + t.eq(layer.tileQueue.length, 0, "Tiles from queue processed"); + }); + + map.destroy(); + delete OpenLayers.Layer.Grid.prototype.queueTileDraw; + } function test_Layer_Grid_clearTiles (t) { t.plan(4); diff --git a/tests/Tile.html b/tests/Tile.html index 9c0743a8d9..40905afeb9 100644 --- a/tests/Tile.html +++ b/tests/Tile.html @@ -53,6 +53,39 @@ tearDown(); } + + function test_Tile_draw(t) { + t.plan(6); + setUp(); + + var position = new OpenLayers.Pixel(10,20); + var bounds = new OpenLayers.Bounds(1,2,3,4); + var url = "bobob"; + var size = new OpenLayers.Size(5,6); + + tile = new OpenLayers.Tile(layer, position, bounds, url, size); + var log = []; + tile.clear = function() { + log.push("clear"); + } + tile.draw(); + t.eq(log.length, 1, "Tile cleared before drawing"); + + log = []; + tile.events.register("beforedraw", this, function() { + log.push("beforedraw"); + return false; + }); + var drawn = tile.draw(); + t.eq(log[0], "clear", "tile cleared"); + t.eq(log[1], "beforedraw", "beforedraw event fired"); + t.eq(drawn, false, "tile not drawn when beforedraw listener returns false"); + drawn = tile.draw(true); + t.eq(log.length, 2, "no beforedraw event fired and tile not cleared when draw called with 'deferred' argument set to true"); + t.eq(drawn, true, "tile drawn when draw called with 'deferred' argument set to true"); + + tearDown(); + } function test_Tile_destroy(t) { t.plan( 6 );