From 736c8fbbae57a209f4ba570e38cc3bd0745a9569 Mon Sep 17 00:00:00 2001 From: Jeff Cross Date: Tue, 26 Nov 2013 11:36:36 -0800 Subject: refactor($location): move file://+win path fix to $location The urlResolve method was fixed to automatically remove the volume label from path names to fix issues with the file protocol on windows where $location.path() was returning paths where the first segment would be the volume name, such as "/C:/mypath". See #4942 and #4928 However, the solution was specific to the $location non- HTML5 mode, and was implemented at a lower level of abstraction than it should have been. This refactor moves the fix to inside of the LocationHashBangUrl $$parse method. Closes #5041 --- test/ng/locationSpec.js | 3 +-- test/ng/urlUtilsSpec.js | 9 ++++++++- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'test/ng') diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index ad565772..b9dd17fa 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -38,7 +38,6 @@ describe('$location', function() { if ($sniffer.msie) return; //reset urlParsingNode urlParsingNode = urlParsingNodePlaceholder; - expect(urlParsingNode.pathname).not.toBe('/C:/foo'); })); @@ -324,7 +323,7 @@ describe('$location', function() { }); - it('should parse hashband url into path and search', function() { + it('should parse hashbang url into path and search', function() { expect(url.protocol()).toBe('http'); expect(url.host()).toBe('www.server.org'); expect(url.port()).toBe(1234); diff --git a/test/ng/urlUtilsSpec.js b/test/ng/urlUtilsSpec.js index 18675ed8..543ff3fb 100644 --- a/test/ng/urlUtilsSpec.js +++ b/test/ng/urlUtilsSpec.js @@ -1,7 +1,7 @@ 'use strict'; describe('urlUtils', function() { - describe('parse', function() { + describe('urlResolve', function() { it('should normalize a relative url', function () { expect(urlResolve("foo").href).toMatch(/^https?:\/\/[^/]+\/foo$/); }); @@ -14,6 +14,13 @@ describe('urlUtils', function() { expect(parsed.hostname).not.toBe(""); expect(parsed.pathname).not.toBe(""); }); + + + it('should return pathname as / if empty path provided', function () { + //IE counts / as empty, necessary to use / so that pathname is not context.html + var parsed = urlResolve('/'); + expect(parsed.pathname).toBe('/'); + }) }); describe('isSameOrigin', function() { -- cgit v1.2.3