diff options
| author | Igor Minar | 2013-08-12 10:34:01 -0700 | 
|---|---|---|
| committer | Igor Minar | 2013-08-12 14:09:08 -0700 | 
| commit | d4d34aba6efbd98050235f5b264899bb788117df (patch) | |
| tree | 75d25aedfe57fa81ae13235d1eabdf6507800a32 /test | |
| parent | 04cebcc133c8b433a3ac5f72ed19f3631778142b (diff) | |
| download | angular.js-d4d34aba6efbd98050235f5b264899bb788117df.tar.bz2 | |
fix($location): don't initialize hash url unnecessarily
After a recent refactoring using $location in the default hashbang mode would result
in hash url being initialized unnecessarily in cases when the base url didn't end
with a slash.
for example http://localhost:8000/temp.html would get rewritten as
http://location:8000/temp.html#/temp.html by error.
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/locationSpec.js | 33 | 
1 files changed, 28 insertions, 5 deletions
| diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index 708b4a13..757ec16e 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -627,7 +627,7 @@ describe('$location', function() {        );      }); -   it('should correctly convert html5 url with path matching basepath to hashbang url', 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'), @@ -1422,16 +1422,39 @@ describe('$location', function() {    describe('LocationHashbangUrl', function() {      var location; -    beforeEach(function() { -      location = new LocationHashbangUrl('http://server/pre/', 'http://server/pre/#/path'); -    }); -      it('should rewrite URL', function() { +      location = new LocationHashbangUrl('http://server/pre/', '#'); +        expect(location.$$rewrite('http://other')).toEqual(undefined);        expect(location.$$rewrite('http://server/pre/')).toEqual('http://server/pre/');        expect(location.$$rewrite('http://server/pre/#otherPath')).toEqual('http://server/pre/#otherPath');        expect(location.$$rewrite('javascript:void(0)')).toEqual(undefined);      }); + +    it("should not set hash if one was not originally specified", function() { +      location = new LocationHashbangUrl('http://server/pre/index.html', '#'); + +      location.$$parse('http://server/pre/index.html') +      expect(location.url()).toBe(''); +      expect(location.absUrl()).toBe('http://server/pre/index.html'); +    }); + +    it("should parse hash if one was specified", function() { +      location = new LocationHashbangUrl('http://server/pre/index.html', '#'); + +      location.$$parse('http://server/pre/index.html#/foo/bar') +      expect(location.url()).toBe('/foo/bar'); +      expect(location.absUrl()).toBe('http://server/pre/index.html#/foo/bar'); +    }); + + +    it("should prefix hash url with / if one was originally missing", function() { +      location = new LocationHashbangUrl('http://server/pre/index.html', '#'); + +      location.$$parse('http://server/pre/index.html#not-starting-with-slash') +      expect(location.url()).toBe('/not-starting-with-slash'); +      expect(location.absUrl()).toBe('http://server/pre/index.html#/not-starting-with-slash'); +    });    }); | 
