fixed dzitilesource guessing of tilesUrl.

Now the regex guessing the root url of tiles works also if the data
url (the url from which information about the tile was downloaded) does
not ends with .dzi, .xml or .js.
This commit is contained in:
Gaetano Guerriero 2016-02-03 00:27:14 +01:00
parent a15b710e31
commit d3e23a2986
3 changed files with 42 additions and 2 deletions

View File

@ -139,7 +139,8 @@ $.extend( $.DziTileSource.prototype, $.TileSource.prototype, /** @lends OpenSead
} }
if (url && !options.tilesUrl) { if (url && !options.tilesUrl) {
options.tilesUrl = url.replace(/([^\/]+)\.(dzi|xml|js)(\?.*|$)/, '$1_files/'); options.tilesUrl = url.replace(
/([^\/]+?)(\.(dzi|xml|js))?\/?(\?.*)?$/, '$1_files/');
if (url.search(/\.(dzi|xml|js)\?/) != -1) { if (url.search(/\.(dzi|xml|js)\?/) != -1) {
options.queryParams = url.match(/\?.*/); options.queryParams = url.match(/\?.*/);

View File

@ -0,0 +1,38 @@
/*global module:true, test:true, equal:true, OpenSeadragon:true*/
(function() {
module('DziTileSource', {
setup: function() {
testLog.reset();
}
});
function testImplicitTilesUrl(dziUrl, expected, msg) {
var source = new OpenSeadragon.DziTileSource();
var options = source.configure({
Image: {Size: {Width:0, Height: 0}}
}, dziUrl);
equal(options.tilesUrl, expected, msg);
}
test('test implicit tilesUrl guessed from dzi url', function() {
testImplicitTilesUrl(
'/path/my.dzi', '/path/my_files/',
'dzi extension should be stripped');
testImplicitTilesUrl(
'/path/my', '/path/my_files/',
'no extension should still produce _files path');
testImplicitTilesUrl(
'/my/', '/my_files/',
'no extension with trailing slash should preserve slash');
testImplicitTilesUrl(
'my.xml', 'my_files/',
'relative link should stay the same');
testImplicitTilesUrl(
'/p/foo.dzi?a=1&b=2', '/p/foo_files/',
'querystring in dzi url should be ignored');
});
}());

View File

@ -1,4 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
@ -37,6 +37,7 @@
<script src="/test/modules/tilecache.js"></script> <script src="/test/modules/tilecache.js"></script>
<script src="/test/modules/referencestrip.js"></script> <script src="/test/modules/referencestrip.js"></script>
<script src="/test/modules/tilesource.js"></script> <script src="/test/modules/tilesource.js"></script>
<script src="/test/modules/dztilesource.js"></script>
<script src="/test/modules/tilesourcecollection.js"></script> <script src="/test/modules/tilesourcecollection.js"></script>
<script src="/test/modules/spring.js"></script> <script src="/test/modules/spring.js"></script>
<script src="/test/modules/rectangle.js"></script> <script src="/test/modules/rectangle.js"></script>