From 89f435de847635e3ec339726e6f83cf3f0ee9091 Mon Sep 17 00:00:00 2001 From: Jeff Cross Date: Wed, 13 Nov 2013 12:56:54 -0800 Subject: fix(urlUtils): made removal of windows drive from path safer Prior to this fix, the urlResolve method would automatically strip the first segment of a path if the segment ends in a colon. This was to correct undesired behavior in the $location service using the file protocol on windows in multiple browsers (see #4680). However, there could be cases where users intentionally have first path segments that end in a colon (although this conflicts with section 3.3 of rfc3986). The solution to this problem is an extra check to make sure the first path segment of the input url does not end with a colon, to make sure we're only removing undesired path segments. Fixes #4939 --- test/ng/locationSpec.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index abd99585..ad565772 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -34,7 +34,6 @@ describe('$location', function() { }; })); - afterEach(inject(function ($sniffer) { if ($sniffer.msie) return; //reset urlParsingNode @@ -50,6 +49,14 @@ describe('$location', function() { expect(url.path()).toBe('/foo'); }); + + + it('should include the drive name if it was provided in the input url', function () { + url = new LocationHashbangUrl('file:///base', '#!'); + url.$$parse('file:///base#!/C:/foo?a=b&c#hash'); + + expect(url.path()).toBe('/C:/foo'); + }); }); -- cgit v1.2.3