fix($location): allow empty string URLs to reset path, search, and hash

Currently, providing '' to $location#url will only reset the hash, but otherwise has no effect. This
change brings the behaviour of $location#url more inline with window.location.href, which when
assigned to an empty string loads the page's base href.

Before:
$location.url() // http://www.example.com/path
$location.url('') // http://www.example.com/path

After:
$location.url() // http://www.example.com/path
$location.url('') // http://www.example.com

Fixes #10063

Closes #10064
This commit is contained in:
Neville Samuell
2014-11-14 15:34:34 -05:00
committed by Pawel Kozlowski
parent 00b623e86b
commit 7812dfcee8
2 changed files with 10 additions and 2 deletions

View File

@@ -304,6 +304,14 @@ describe('$location', function() {
expect(url.hash()).toBe('');
});
it('url() should change path when empty string specified', function() {
url.url('');
expect(url.path()).toBe('/');
expect(url.search()).toEqual({});
expect(url.hash()).toBe('');
});
it('replace should set $$replace flag and return itself', function() {
expect(url.$$replace).toBe(false);