diff --git a/src/util.js b/src/util.js index 75190f653..ad915b03f 100644 --- a/src/util.js +++ b/src/util.js @@ -57,6 +57,8 @@ function assert(cond, msg) { error(msg); } +// Combines two URLs. The baseUrl shall be absolute URL. If the url is an +// absolute URL, it will be returned as is. function combineUrl(baseUrl, url) { if (url.indexOf(':') >= 0) return url; @@ -67,10 +69,13 @@ function combineUrl(baseUrl, url) { return baseUrl.substring(0, i) + url; } else { // relative path - var i = baseUrl.lastIndexOf('#'); - i = baseUrl.lastIndexOf('?', i < 0 ? baseUrl.length : i); - i = baseUrl.lastIndexOf('/', i < 0 ? baseUrl.length : i); - return baseUrl.substring(0, i + 1) + url; + var pathLength = baseUrl.length, i; + i = baseUrl.lastIndexOf('#'); + pathLength = i >= 0 ? i : pathLength; + i = baseUrl.lastIndexOf('?', pathLength); + pathLength = i >= 0 ? i : pathLength; + var prefixLength = baseUrl.lastIndexOf('/', pathLength); + return baseUrl.substring(0, prefixLength + 1) + url; } } PDFJS.combineUrl = combineUrl; diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index 5b068fbb9..e1e0a318d 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -6,7 +6,7 @@ describe('api', function() { // TODO run with worker enabled PDFJS.disableWorker = true; - var basicApiUrl = '../pdfs/basicapi.pdf'; + var basicApiUrl = combineUrl(window.location.href, '../pdfs/basicapi.pdf'); function waitsForPromise(promise) { waitsFor(function() { return promise.isResolved || promise.isRejected; diff --git a/test/unit/unit_test.html b/test/unit/unit_test.html index ca0a1aed1..0291f1a0f 100644 --- a/test/unit/unit_test.html +++ b/test/unit/unit_test.html @@ -43,6 +43,7 @@ +