diff --git a/lib/jasmine-core/jasmine-html.js b/lib/jasmine-core/jasmine-html.js
index ebe94049..6320c9dc 100644
--- a/lib/jasmine-core/jasmine-html.js
+++ b/lib/jasmine-core/jasmine-html.js
@@ -810,7 +810,10 @@ jasmineRequire.QueryString = function() {
encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop])
);
}
- return '?' + qStrPairs.join('&');
+ // include getWindowLocation() to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
+ return (
+ (options.getWindowLocation().pathname || '') + '?' + qStrPairs.join('&')
+ );
}
function queryStringToParamMap() {
diff --git a/spec/html/QueryStringSpec.js b/spec/html/QueryStringSpec.js
index de2f5721..b9303be2 100644
--- a/spec/html/QueryStringSpec.js
+++ b/spec/html/QueryStringSpec.js
@@ -48,6 +48,21 @@ describe('QueryString', function() {
expect(result).toMatch(/foo=bar/);
expect(result).toMatch(/baz=quux/);
});
+
+ it('includes url pathname with the query string including the given key/value pair', function() {
+ var windowLocation = {
+ pathname: 'debug.html',
+ search: '?foo=bar'
+ },
+ queryString = new jasmineUnderTest.QueryString({
+ getWindowLocation: function() {
+ return windowLocation;
+ }
+ });
+
+ var result = queryString.fullStringWithNewParam('baz', 'quux');
+ expect(result).toBe('debug.html?foo=bar&baz=quux');
+ });
});
describe('#getParam', function() {
diff --git a/src/html/QueryString.js b/src/html/QueryString.js
index c4ce950e..736a691c 100644
--- a/src/html/QueryString.js
+++ b/src/html/QueryString.js
@@ -26,7 +26,10 @@ jasmineRequire.QueryString = function() {
encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop])
);
}
- return '?' + qStrPairs.join('&');
+ // include getWindowLocation() to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
+ return (
+ (options.getWindowLocation().pathname || '') + '?' + qStrPairs.join('&')
+ );
}
function queryStringToParamMap() {