$location.updateHash should not preserve hashSearch when hashSearch is undefined

This commit is contained in:
Igor Minar 2011-02-04 09:11:18 -08:00
parent a6c45c3e66
commit bf8013ad57
2 changed files with 9 additions and 2 deletions

View file

@ -172,8 +172,7 @@ angularServiceInject("$location", function($browser) {
if (isString(path)) {
hash.hashPath = path;
if (isDefined(search))
hash.hashSearch = search;
hash.hashSearch = search || {};
} else
hash.hashSearch = path;

View file

@ -314,6 +314,14 @@ describe("service", function(){
expect($location.hashPath).toEqual('path');
});
it('should reset hashSearch when updating with a single string', function() {
$location.updateHash({foo:'bar'}); //set some initial state for hashSearch
$location.updateHash('path');
expect($location.hashPath).toEqual('path');
expect($location.hashSearch).toEqual({});
});
it('should accept single object argument to update search', function() {
$location.updateHash({a: 'b'});
expect($location.hash).toEqual('?a=b');