diff options
| -rw-r--r-- | src/ng/httpBackend.js | 2 | ||||
| -rw-r--r-- | test/ng/httpBackendSpec.js | 9 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/src/ng/httpBackend.js b/src/ng/httpBackend.js index 29f390e0..565e1b12 100644 --- a/src/ng/httpBackend.js +++ b/src/ng/httpBackend.js @@ -54,7 +54,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc          } else {            completeRequest(callback, status || -2);          } -        delete callbacks[callbackId]; +        callbacks[callbackId] = angular.noop;        });      } else { diff --git a/test/ng/httpBackendSpec.js b/test/ng/httpBackendSpec.js index 1be31984..49514d8e 100644 --- a/test/ng/httpBackendSpec.js +++ b/test/ng/httpBackendSpec.js @@ -330,7 +330,7 @@ describe('$httpBackend', function() {          script.onload();        } -      expect(callbacks[callbackId]).toBeUndefined(); +      expect(callbacks[callbackId]).toBe(angular.noop);        expect(fakeDocument.body.removeChild).toHaveBeenCalledOnceWith(script);      }); @@ -397,7 +397,7 @@ describe('$httpBackend', function() {      }); -    it('should abort request on timeout', function() { +    it('should abort request on timeout and replace callback with noop', function() {        callback.andCallFake(function(status, response) {          expect(status).toBe(-1);        }); @@ -406,9 +406,14 @@ describe('$httpBackend', function() {        expect(fakeDocument.$$scripts.length).toBe(1);        expect(fakeTimeout.delays[0]).toBe(2000); +      var script = fakeDocument.$$scripts.shift(), +        callbackId = script.src.match(SCRIPT_URL)[2]; +        fakeTimeout.flush();        expect(fakeDocument.$$scripts.length).toBe(0);        expect(callback).toHaveBeenCalledOnce(); + +      expect(callbacks[callbackId]).toBe(angular.noop);      }); | 
