From 9befe37014141fbfdf0cded318d28322fc058c13 Mon Sep 17 00:00:00 2001 From: Thibault Leruitte Date: Fri, 8 Mar 2013 14:53:54 +0100 Subject: fix($location): correctly rewrite html5 url to hashbang url In situations where path() matched basepath and we needed to convert from html5 url to hashbang url, the $location service considered the url to be already rewritten, which resulted in an error. --- test/ng/locationSpec.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'test/ng/locationSpec.js') diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index cb3372a3..c40d5323 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -549,6 +549,16 @@ describe('$location', function() { } ); }); + + it('should correctly convert html5 url with path matching basepath to hashbang url', function () { + initService(true, '!', false); + inject( + initBrowser('http://domain.com/base/index.html', '/base/index.html'), + function($browser, $location) { + expect($browser.url()).toBe('http://domain.com/base/index.html#!/index.html'); + } + ); + }); }); @@ -1209,7 +1219,7 @@ describe('$location', function() { ); - it('should listen on click events on href and prevent browser default in hashbang mode', function() { + it('should listen on click events on href and prevent browser default in hashbang mode', function() { module(function() { return function($rootElement, $compile, $rootScope) { $rootElement.html('link'); @@ -1253,20 +1263,21 @@ describe('$location', function() { inject(function($location, $rootScope, $browser, $rootElement) { var log = '', - link = $rootElement.find('a'); + link = $rootElement.find('a'), + browserUrlBefore = $browser.url(); $rootScope.$on('$locationChangeStart', function(event) { event.preventDefault(); log += '$locationChangeStart'; }); $rootScope.$on('$locationChangeSuccess', function() { - throw new Error('after cancelation in html5 mode'); + throw new Error('after cancellation in html5 mode'); }); browserTrigger(link, 'click'); expect(log).toEqual('$locationChangeStart'); - expect($browser.url()).toEqual('http://server/'); + expect($browser.url()).toBe(browserUrlBefore); dealoc($rootElement); }); -- cgit v1.2.3