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 @@
+