mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-29 08:36:10 +03:00
Test fixes (except gl null reference error - test fails sometimes).
This commit is contained in:
parent
135fa76fde
commit
a9b50a8fdb
@ -132,23 +132,33 @@
|
||||
if (type === this._type) {
|
||||
return copy ? $.convertor.copy(this._tRef, this._data, type) : this._promise;
|
||||
}
|
||||
return this._getDataAsUnsafe(this._tRef, this._data, type, copy);
|
||||
return this._transformDataIfNeeded(this._tRef, this._data, type, copy) || this._promise;
|
||||
}
|
||||
return this._promise.then(data => this._getDataAsUnsafe(this._tRef, data, type, copy));
|
||||
return this._promise.then(data => this._transformDataIfNeeded(this._tRef, data, type, copy) || data);
|
||||
}
|
||||
|
||||
_getDataAsUnsafe(referenceTile, data, type, copy) {
|
||||
_transformDataIfNeeded(referenceTile, data, type, copy) {
|
||||
//might get destroyed in meanwhile
|
||||
if (this._destroyed) {
|
||||
return $.Promise.resolve();
|
||||
}
|
||||
|
||||
let result;
|
||||
if (type !== this._type) {
|
||||
result = $.convertor.convert(referenceTile, data, this._type, type);
|
||||
} else if (copy) { //convert does not copy data if same type, do explicitly
|
||||
result = $.convertor.copy(referenceTile, data, type);
|
||||
}
|
||||
if (result) {
|
||||
return result.then(finalData => {
|
||||
if (this._destroyed) {
|
||||
$.convertor.destroy(finalData, type);
|
||||
return undefined;
|
||||
}
|
||||
if (type !== this._type) {
|
||||
return $.convertor.convert(referenceTile, data, this._type, type);
|
||||
return finalData;
|
||||
});
|
||||
}
|
||||
if (copy) { //convert does not copy data if same type, do explicitly
|
||||
return $.convertor.copy(referenceTile, data, type);
|
||||
}
|
||||
return data;
|
||||
return false; // no conversion needed, parent function returns item as-is
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2145,13 +2145,13 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
|
||||
);
|
||||
//make sure cache data is ready for drawing, if not, request the desired format
|
||||
const cache = tile.getCache(tile.cacheKey),
|
||||
requiredTypes = _this.viewer.drawer.getSupportedDataFormats();
|
||||
requiredTypes = _this._drawer.getSupportedDataFormats();
|
||||
if (!cache) {
|
||||
$.console.warn("Tile %s not cached or not loaded at the end of tile-loaded event: tile will not be drawn - it has no data!", tile);
|
||||
resolver(tile);
|
||||
} else if (!requiredTypes.includes(cache.type)) {
|
||||
//initiate conversion as soon as possible if incompatible with the drawer
|
||||
cache.prepareForRendering(requiredTypes, _this.viewer.drawer.options.detachedCache).then(cacheRef => {
|
||||
cache.prepareForRendering(requiredTypes, _this._drawer.options.detachedCache).then(cacheRef => {
|
||||
if (!cacheRef) {
|
||||
return cache.transformTo(requiredTypes);
|
||||
}
|
||||
|
@ -543,6 +543,7 @@ $.Viewer = function( options ) {
|
||||
|
||||
// Open initial tilesources
|
||||
if (this.tileSources) {
|
||||
console.log(this);
|
||||
this.open( this.tileSources );
|
||||
}
|
||||
|
||||
@ -962,6 +963,7 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
|
||||
redrawImmediately: true,
|
||||
drawerOptions: null
|
||||
};
|
||||
console.debug("RESUEST DRAWER ", options.mainDrawer);
|
||||
options = $.extend(true, defaultOpts, options);
|
||||
const mainDrawer = options.mainDrawer;
|
||||
const redrawImmediately = options.redrawImmediately;
|
||||
|
@ -133,11 +133,13 @@
|
||||
};
|
||||
const fakeTiledImage0 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
redraw: function() {}
|
||||
};
|
||||
const fakeTiledImage1 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
redraw: function() {}
|
||||
};
|
||||
|
||||
const tile0 = createFakeTile('foo.jpg', fakeTiledImage0);
|
||||
@ -186,7 +188,8 @@
|
||||
};
|
||||
const fakeTiledImage0 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
draw: function() {}
|
||||
};
|
||||
|
||||
const tile0 = createFakeTile('different.jpg', fakeTiledImage0);
|
||||
@ -242,12 +245,14 @@
|
||||
const fakeTiledImage0 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
_tileCache: tileCache
|
||||
_tileCache: tileCache,
|
||||
redraw: function() {}
|
||||
};
|
||||
const fakeTiledImage1 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
_tileCache: tileCache
|
||||
_tileCache: tileCache,
|
||||
redraw: function() {}
|
||||
};
|
||||
|
||||
//load data
|
||||
@ -436,12 +441,14 @@
|
||||
const fakeTiledImage0 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
_tileCache: tileCache
|
||||
_tileCache: tileCache,
|
||||
redraw: function() {}
|
||||
};
|
||||
const fakeTiledImage1 = {
|
||||
viewer: fakeViewer,
|
||||
source: OpenSeadragon.TileSource.prototype,
|
||||
_tileCache: tileCache
|
||||
_tileCache: tileCache,
|
||||
redraw: function() {}
|
||||
};
|
||||
|
||||
//load data
|
||||
|
@ -214,7 +214,9 @@
|
||||
const dummyRect = new OpenSeadragon.Rect(0, 0, 0, 0, 0);
|
||||
const dummyTile = new OpenSeadragon.Tile(0, 0, 0, dummyRect, true, "",
|
||||
undefined, true, null, dummyRect, "", "key");
|
||||
dummyTile.tiledImage = {};
|
||||
dummyTile.tiledImage = {
|
||||
redraw: function () {}
|
||||
};
|
||||
const cache = new OpenSeadragon.CacheRecord();
|
||||
cache.addTile(dummyTile, "/test/data/A.png", "__TEST__url");
|
||||
|
||||
@ -263,7 +265,9 @@
|
||||
const dummyRect = new OpenSeadragon.Rect(0, 0, 0, 0, 0);
|
||||
const dummyTile = new OpenSeadragon.Tile(0, 0, 0, dummyRect, true, "",
|
||||
undefined, true, null, dummyRect, "", "key");
|
||||
dummyTile.tiledImage = {};
|
||||
dummyTile.tiledImage = {
|
||||
redraw: function () {}
|
||||
};
|
||||
const cache = new OpenSeadragon.CacheRecord();
|
||||
cache.testGetSet = async function(type) {
|
||||
const value = await cache.getDataAs(type, false);
|
||||
@ -331,19 +335,20 @@
|
||||
const dummyRect = new OpenSeadragon.Rect(0, 0, 0, 0, 0);
|
||||
const dummyTile = new OpenSeadragon.Tile(0, 0, 0, dummyRect, true, "",
|
||||
undefined, true, null, dummyRect, "", "key");
|
||||
dummyTile.tiledImage = {};
|
||||
dummyTile.tiledImage = {
|
||||
redraw: function () {}
|
||||
};
|
||||
const cache = new OpenSeadragon.CacheRecord();
|
||||
cache.addTile(dummyTile, "/test/data/A.png", "__TEST__url");
|
||||
cache.getDataAs("__TEST__longConversionProcessForTesting").then(convertedData => {
|
||||
test.equal(longConversionDestroy, 0, "Copy not destroyed.");
|
||||
test.equal(longConversionDestroy, 1, "Copy already destroyed.");
|
||||
test.notOk(cache.loaded, "Cache was destroyed.");
|
||||
test.equal(cache.data, undefined, "Already destroyed cache does not return data.");
|
||||
test.equal(urlDestroy, 1, "Url was destroyed.");
|
||||
test.notOk(conversionHappened, "Nothing happened since before us the cache was deleted.");
|
||||
|
||||
test.ok(conversionHappened, "Conversion was fired.");
|
||||
//destruction will likely happen after we finish current async callback
|
||||
setTimeout(async () => {
|
||||
test.notOk(conversionHappened, "Still no conversion.");
|
||||
test.equal(longConversionDestroy, 1, "Copy destroyed.");
|
||||
done();
|
||||
}, 25);
|
||||
});
|
||||
@ -375,7 +380,9 @@
|
||||
const dummyRect = new OpenSeadragon.Rect(0, 0, 0, 0, 0);
|
||||
const dummyTile = new OpenSeadragon.Tile(0, 0, 0, dummyRect, true, "",
|
||||
undefined, true, null, dummyRect, "", "key");
|
||||
dummyTile.tiledImage = {};
|
||||
dummyTile.tiledImage = {
|
||||
redraw: function () {}
|
||||
};
|
||||
const cache = new OpenSeadragon.CacheRecord();
|
||||
cache.addTile(dummyTile, "/test/data/A.png", "__TEST__url");
|
||||
cache.transformTo("__TEST__longConversionProcessForTesting").then(_ => {
|
||||
|
Loading…
Reference in New Issue
Block a user