From cad717b1171affc3d540cea372576c70b0cb2295 Mon Sep 17 00:00:00 2001 From: Caitlin Potter Date: Fri, 24 Jan 2014 16:25:40 -0500 Subject: fix($location): parse query string when path is empty in hashbang mode Before this fix, search queries in hashbang mode were ignored if the hash was not present in the url. This patch corrects this by ensuring that the search query is available to be parsed by urlResolve when the hashbang is not present. Closes #5964 --- test/ng/locationSpec.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test') diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index ff823d30..8ff5da30 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -1487,6 +1487,30 @@ describe('$location', function() { expect(location.url()).toBe('/not-starting-with-slash'); expect(location.absUrl()).toBe('http://server/pre/index.html#/not-starting-with-slash'); }); + + describe("search()", function() { + it("should return a populated search object for search query when path is empty", function() { + location = new LocationHashbangUrl('http://server/pre/index.html', '!'); + + location.$$parse('http://server/pre/?foo=1&bar=2&baz=3'); + expect(location.path()).toBe(''); + expect(location.absUrl()).toBe('http://server/pre/index.html?foo=1&bar=2&baz=3') + expect(location.search()).toEqual({ + foo: '1', + bar: '2', + baz: '3' + }); + + location.$$parse('http://server/pre/index.html?foo=1&bar=2&baz=3'); + expect(location.path()).toBe(''); + expect(location.absUrl()).toBe('http://server/pre/index.html?foo=1&bar=2&baz=3') + expect(location.search()).toEqual({ + foo: '1', + bar: '2', + baz: '3' + }); + }); + }); }); -- cgit v1.2.3