New events: loaderror for Tile, tileerror for Layer.Grid.

This commit is contained in:
ahocevar
2012-03-05 14:20:01 +01:00
parent d7533096e9
commit fe63d0aa63
6 changed files with 56 additions and 6 deletions
+13 -1
View File
@@ -506,7 +506,7 @@
}
function test_Layer_Grid_addTileMonitoringHooks(t) {
t.plan(15);
t.plan(17);
layer = new OpenLayers.Layer.Grid();
layer.events = {
@@ -519,6 +519,13 @@
events: {
register: function(name, obj, func) {
g_registered[name] = [obj, func];
},
on: function(obj) {
for (var o in obj) {
if (obj.hasOwnProperty(o)) {
tile.events.register(o, obj.scope, obj[o]);
}
}
}
}
}
@@ -551,6 +558,11 @@
entry = g_registered["loadend"];
t.ok( entry && entry[0] == layer && entry[1] == tile.onLoadEnd, "loadend correctly registered");
g_events = [];
tile.onLoadError.apply(layer);
t.eq(g_events[0][0], "tileerror", "tileerror triggered");
t.ok(g_events[0][1].tile === tile, "tile passed as tile property to event object");
layer.numLoadingTiles = 2;
g_events = [];
tile.onLoadEnd.apply(layer);
+17 -2
View File
@@ -375,7 +375,7 @@
// test for https://github.com/openlayers/openlayers/pull/36
// (more an integration test than a unit test)
function test_olImageLoadError(t) {
t.plan(2);
t.plan(6);
var map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.WMS("invalid", "", {layers: 'basic'});
@@ -386,10 +386,25 @@
var bounds = new OpenLayers.Bounds(1, 2, 3, 4);
var tile = new OpenLayers.Tile.Image(layer, position, bounds, null, size);
var log = [];
tile.events.register("loaderror", this, function(e) {
log.push([
e.object.imgDiv.style.visibility,
OpenLayers.Element.hasClass(e.object.imgDiv, 'olImageLoadError')
]);
});
tile.events.register("loadend", this, function(e) {
log.push(e);
})
tile.draw();
t.delay_call(0.1, function() {
t.eq(log.length, 2, "loaderror and loadend events triggered");
t.eq(log[0][0], "hidden", "tile still hidden when loaderror is triggered");
t.eq(log[0][1], true, "tile has olImageLoadError class already when loaderror is triggered");
t.ok(log[1].object === tile, "loadend event triggered after loaderror");
// check initial state
t.ok(OpenLayers.Element.hasClass(tile.imgDiv, 'olImageLoadError'),
'tile image has the olImageLoadError class (init state)');