diff options
Diffstat (limited to 'misc/openlayers/tests/Tile.html')
-rw-r--r-- | misc/openlayers/tests/Tile.html | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/misc/openlayers/tests/Tile.html b/misc/openlayers/tests/Tile.html new file mode 100644 index 0000000..087b320 --- /dev/null +++ b/misc/openlayers/tests/Tile.html @@ -0,0 +1,130 @@ +<html> +<head> + <script src="OLLoader.js"></script> + <script type="text/javascript"> + var tile; + + var map, layer; + function setUp() { + map = new OpenLayers.Map("map"); + layer = new OpenLayers.Layer(null, { + isBaseLayer: true + }); + map.addLayer(layer) + map.setCenter(new OpenLayers.LonLat(0, 0)); + } + + function tearDown() { + map.destroy(); + map = null; + layer = null; + } + + + function test_Tile_constructor (t) { + t.plan( 13 ); + + setUp(); + + var dummy = {}; + + 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, { + eventListeners: { + loadstart: OpenLayers.Function.False + } + }); + + t.ok(tile instanceof OpenLayers.Tile, "new OpenLayers.Tile returns Tile object"); + t.ok(tile.layer === layer, "tile.layer set correctly"); + t.ok(tile.position.equals(position), "tile.position set correctly"); + t.ok(tile.position != position, "tile.position set not by reference"); + t.ok(tile.bounds.equals(bounds), "tile.bounds set correctly"); + t.ok(tile.bounds != bounds, "tile.bounds set not by reference"); + t.eq(tile.url, url, "tile.url set correctly"); + t.ok(tile.size.equals(size), "tile.size is set correctly"); + t.ok(tile.size != size, "tile.size set not by reference"); + + t.ok(tile.id != null, "tile is given an id"); + t.ok(OpenLayers.String.startsWith(tile.id, "Tile_"), + "tile's id starts correctly"); + t.ok(tile.events != null, "tile's events initialized"); + t.ok(tile.events.listeners.loadstart.length == 1, + "tile's events initialized from eventListeners option"); + + 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, null, "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 ); + + 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); + tile.events.destroy = function() { + t.ok(true, "tile events destroy() called"); + }; + + + tile.destroy(); + + t.ok(tile.layer == null, "tile.layer set to null"); + t.ok(tile.bounds == null, "tile.bounds set to null"); + t.ok(tile.size == null, "tile.size set to null"); + t.ok(tile.position == null, "tile.position set to null"); + + t.ok(tile.events == null, "tile.events set to null"); + + tearDown(); + + } + + </script> +</head> +<body> +</body> +</html> + |