aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/location.js2
-rw-r--r--test/ng/locationSpec.js13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ng/location.js b/src/ng/location.js
index 1accb993..b0270432 100644
--- a/src/ng/location.js
+++ b/src/ng/location.js
@@ -335,7 +335,7 @@ LocationUrl.prototype = {
if (paramValue === null) {
delete this.$$search[search];
} else {
- this.$$search[search] = encodeUriQuery(paramValue);
+ this.$$search[search] = paramValue;
}
} else {
this.$$search = isString(search) ? parseKeyValue(search) : search;
diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js
index 646a9ca0..164251ab 100644
--- a/test/ng/locationSpec.js
+++ b/test/ng/locationSpec.js
@@ -330,6 +330,19 @@ describe('$location', function() {
expect(url.search()).toEqual({'i j': '<>#'});
expect(url.hash()).toBe('x <>#');
});
+
+
+ it('should return decoded characters for search specified in URL', function() {
+ var locationUrl = new LocationUrl('http://host.com/?q=1%2F2%203');
+ expect(locationUrl.search()).toEqual({'q': '1/2 3'});
+ });
+
+
+ it('should return decoded characters for search specified with setter', function() {
+ var locationUrl = new LocationUrl('http://host.com/');
+ locationUrl.search('q', '1/2 3');
+ expect(locationUrl.search()).toEqual({'q': '1/2 3'});
+ });
});
});