Skip to content

Commit

Permalink
fixing code review comments and adding UT angular#12175
Browse files Browse the repository at this point in the history
  • Loading branch information
rrsivabalan committed Nov 4, 2015
1 parent 0d96995 commit 35d393f
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/ng/location.js
Original file line number Diff line number Diff line change
Expand Up @@ -918,16 +918,16 @@ function $LocationProvider() {
var oldUrl = $location.absUrl();
var oldState = $location.$$state;
var defaultPrevented;

var trimNewUrl = trimEmptyHash(newUrl);
$location.$$parse(newUrl);
$location.$$state = newState;

defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl,
defaultPrevented = $rootScope.$broadcast('$locationChangeStart', trimNewUrl, oldUrl,
newState, oldState).defaultPrevented;

// if the location was changed by a `$locationChangeStart` handler then stop
// processing this location change
if ($location.absUrl() !== newUrl) return;
if ($location.absUrl() !== trimNewUrl) return;

if (defaultPrevented) {
$location.$$parse(oldUrl);
Expand Down
25 changes: 25 additions & 0 deletions test/ng/locationSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2141,6 +2141,31 @@ describe('$location', function() {
})
);

it('should fire $locationChangeSuccess when browser location changes to URL which ends with #',
inject(function($location, $browser, $rootScope, $log) {
$location.url('/somepath');
$rootScope.$apply();

expect($browser.url()).toEqual('http://server/#/somepath');
expect($location.url()).toEqual('/somepath');

$rootScope.$on('$locationChangeStart', function(event, newUrl, oldUrl) {
$log.info('start', newUrl, oldUrl);
});
$rootScope.$on('$locationChangeSuccess', function(event, newUrl, oldUrl) {
$log.info('after', newUrl, oldUrl);
});

$browser.url('http://server/#');
$browser.poll();

expect($log.info.logs.shift()).
toEqual(['start', 'http://server/', 'http://server/#/somepath']);
expect($log.info.logs.shift()).
toEqual(['after', 'http://server/', 'http://server/#/somepath']);
})
);

it('should allow redirect during browser url change',
inject(function($location, $browser, $rootScope, $log) {
$rootScope.$on('$locationChangeStart', function(event, newUrl, oldUrl) {
Expand Down

0 comments on commit 35d393f

Please sign in to comment.