diff options
| -rw-r--r-- | src/ng/location.js | 2 | ||||
| -rw-r--r-- | test/ng/locationSpec.js | 13 |
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'}); + }); }); }); |
