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