aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/httpBackend.js2
-rw-r--r--test/ng/httpBackendSpec.js9
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);
});