aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/httpBackendSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/ng/httpBackendSpec.js')
-rw-r--r--test/ng/httpBackendSpec.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/ng/httpBackendSpec.js b/test/ng/httpBackendSpec.js
index da4fed16..c65ab2e1 100644
--- a/test/ng/httpBackendSpec.js
+++ b/test/ng/httpBackendSpec.js
@@ -117,6 +117,44 @@ describe('$httpBackend', function() {
});
+ it('should abort request on timeout promise resolution', inject(function($timeout) {
+ callback.andCallFake(function(status, response) {
+ expect(status).toBe(-1);
+ });
+
+ $backend('GET', '/url', null, callback, {}, $timeout(noop, 2000));
+ xhr = MockXhr.$$lastInstance;
+ spyOn(xhr, 'abort');
+
+ $timeout.flush();
+ expect(xhr.abort).toHaveBeenCalledOnce();
+
+ xhr.status = 0;
+ xhr.readyState = 4;
+ xhr.onreadystatechange();
+ expect(callback).toHaveBeenCalledOnce();
+ }));
+
+
+ it('should not abort resolved request on timeout promise resolution', inject(function($timeout) {
+ callback.andCallFake(function(status, response) {
+ expect(status).toBe(200);
+ });
+
+ $backend('GET', '/url', null, callback, {}, $timeout(noop, 2000));
+ xhr = MockXhr.$$lastInstance;
+ spyOn(xhr, 'abort');
+
+ xhr.status = 200;
+ xhr.readyState = 4;
+ xhr.onreadystatechange();
+ expect(callback).toHaveBeenCalledOnce();
+
+ $timeout.flush();
+ expect(xhr.abort).not.toHaveBeenCalled();
+ }));
+
+
it('should cancel timeout on completion', function() {
callback.andCallFake(function(status, response) {
expect(status).toBe(200);