From 56e73ea355c851fdfd574d6d2a9e2fcb75677945 Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Sat, 1 Mar 2014 12:49:47 +0100 Subject: fix($http): don't covert 0 status codes to 404 for non-file protocols PR #5547 introduced conversion of all 0 status codes to 404 for cases where no response was recieved (previously this was done for the file:// protocol only). But this mechanism is too eager and masks legitimate cases where status 0 should be returned. This commits reverts to the previous mechanism of handling 0 status code for the file:// protocol (converting 0 to 404) while retaining the returned status code 0 for all the protocols other than file:// Fixes #6074 Fixes #6155 --- test/ng/httpBackendSpec.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/ng/httpBackendSpec.js b/test/ng/httpBackendSpec.js index 2a3f6012..5c9cbf58 100644 --- a/test/ng/httpBackendSpec.js +++ b/test/ng/httpBackendSpec.js @@ -456,27 +456,45 @@ describe('$httpBackend', function() { } - it('should convert 0 to 200 if content', function() { + it('should convert 0 to 200 if content and file protocol', function() { $backend = createHttpBackend($browser, createMockXhr); - $backend('GET', 'someProtocol:///whatever/index.html', null, callback); + $backend('GET', 'file:///whatever/index.html', null, callback); respond(0, 'SOME CONTENT'); expect(callback).toHaveBeenCalled(); expect(callback.mostRecentCall.args[0]).toBe(200); }); - - it('should convert 0 to 404 if no content', function() { + it('should convert 0 to 200 if content for protocols other than file', function() { $backend = createHttpBackend($browser, createMockXhr); $backend('GET', 'someProtocol:///whatever/index.html', null, callback); + respond(0, 'SOME CONTENT'); + + expect(callback).toHaveBeenCalled(); + expect(callback.mostRecentCall.args[0]).toBe(200); + }); + + it('should convert 0 to 404 if no content and file protocol', function() { + $backend = createHttpBackend($browser, createMockXhr); + + $backend('GET', 'file:///whatever/index.html', null, callback); respond(0, ''); expect(callback).toHaveBeenCalled(); expect(callback.mostRecentCall.args[0]).toBe(404); }); + it('should not convert 0 to 404 if no content for protocols other than file', function() { + $backend = createHttpBackend($browser, createMockXhr); + + $backend('GET', 'someProtocol:///whatever/index.html', null, callback); + respond(0, ''); + + expect(callback).toHaveBeenCalled(); + expect(callback.mostRecentCall.args[0]).toBe(0); + }); it('should convert 0 to 404 if no content - relative url', function() { var originalUrlParsingNode = urlParsingNode; @@ -486,10 +504,10 @@ describe('$httpBackend', function() { hash : "#/C:/", host : "", hostname : "", - href : "someProtocol:///C:/base#!/C:/foo", + href : "file:///C:/base#!/C:/foo", pathname : "/C:/foo", port : "", - protocol : "someProtocol:", + protocol : "file:", search : "", setAttribute: angular.noop }; -- cgit v1.2.3