mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-29 08:36:10 +03:00
96 lines
3.2 KiB
JavaScript
96 lines
3.2 KiB
JavaScript
|
// Test-wide mocks for more test stability: tests might require calling functions that expect
|
||
|
// presence of certain mock properties. It is better to include maintened mock props than to copy
|
||
|
// over all the place
|
||
|
|
||
|
window.MockSeadragon = {
|
||
|
/**
|
||
|
* Get mocked tile: loaded state, cutoff such that it is not kept in cache by force,
|
||
|
* level: 1, x: 0, y: 0, all coords: [x0 y0 w0 h0]
|
||
|
*
|
||
|
* Requires TiledImage referece (mock or real)
|
||
|
* @return {OpenSeadragon.Tile}
|
||
|
*/
|
||
|
getTile(url, tiledImage, props={}) {
|
||
|
const dummyRect = new OpenSeadragon.Rect(0, 0, 0, 0, 0);
|
||
|
//default cutoof = 0 --> use level 1 to not to keep caches from unloading (cutoff = navigator data, kept in cache)
|
||
|
const dummyTile = new OpenSeadragon.Tile(1, 0, 0, dummyRect, true, url,
|
||
|
undefined, true, null, dummyRect, null, url);
|
||
|
dummyTile.tiledImage = tiledImage;
|
||
|
//by default set as ready
|
||
|
dummyTile.loaded = true;
|
||
|
dummyTile.loading = false;
|
||
|
//override anything we need
|
||
|
OpenSeadragon.extend(tiledImage, props);
|
||
|
return dummyTile;
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Get mocked viewer: it has not all props that might be required. If your
|
||
|
* tests fails because they do not find some props on a viewer, add them here.
|
||
|
*
|
||
|
* Requires a drawer reference (mock or real). Automatically created if not provided.
|
||
|
* @return {OpenSeadragon.Viewer}
|
||
|
*/
|
||
|
getViewer(drawer=null, props={}) {
|
||
|
drawer = drawer || this.getDrawer();
|
||
|
return OpenSeadragon.extend(new class extends OpenSeadragon.EventSource {
|
||
|
forceRedraw () {}
|
||
|
drawer = drawer
|
||
|
tileCache = new OpenSeadragon.TileCache()
|
||
|
}, props);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Get mocked viewer: it has not all props that might be required. If your
|
||
|
* tests fails because they do not find some props on a viewer, add them here.
|
||
|
* @return {OpenSeadragon.Viewer}
|
||
|
*/
|
||
|
getDrawer(props={}) {
|
||
|
return OpenSeadragon.extend({
|
||
|
getType: function () {
|
||
|
return "mock";
|
||
|
}
|
||
|
}, props);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Get mocked tiled image: it has not all props that might be required. If your
|
||
|
* tests fails because they do not find some props on a tiled image, add them here.
|
||
|
*
|
||
|
* Requires viewer reference (mock or real). Automatically created if not provided.
|
||
|
* @return {OpenSeadragon.TiledImage}
|
||
|
*/
|
||
|
getTiledImage(viewer=null, props={}) {
|
||
|
viewer = viewer || this.getViewer();
|
||
|
return OpenSeadragon.extend({
|
||
|
viewer: viewer,
|
||
|
source: OpenSeadragon.TileSource.prototype,
|
||
|
redraw: function() {},
|
||
|
_tileCache: viewer.tileCache
|
||
|
}, props);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Get mocked tile source
|
||
|
* @return {OpenSeadragon.TileSource}
|
||
|
*/
|
||
|
getTileSource(props={}) {
|
||
|
return new OpenSeadragon.TileSource(OpenSeadragon.extend({
|
||
|
width: 1500,
|
||
|
height: 1000,
|
||
|
tileWidth: 200,
|
||
|
tileHeight: 150,
|
||
|
tileOverlap: 0
|
||
|
}, props));
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Get mocked cache record
|
||
|
* @return {OpenSeadragon.CacheRecord}
|
||
|
*/
|
||
|
getCacheRecord(props={}) {
|
||
|
return OpenSeadragon.extend(new OpenSeadragon.CacheRecord(), props);
|
||
|
}
|
||
|
};
|
||
|
|