diff options
| author | David Bennett | 2013-04-27 11:22:03 -0400 |
|---|---|---|
| committer | Igor Minar | 2013-05-20 14:15:04 -0700 |
| commit | 9f4f5937112655a9881d3281da8e72035bc8b180 (patch) | |
| tree | f6c9b19448ea5ddde11198b0e6d7a516e0b83d7b /test/ngMock/angular-mocksSpec.js | |
| parent | 27a8824b50aa78e9a082b4377ca09250382a8655 (diff) | |
| download | angular.js-9f4f5937112655a9881d3281da8e72035bc8b180.tar.bz2 | |
feat($http): add support for aborting via timeout promises
If the timeout argument is a promise, abort the request when it is resolved.
Implemented by adding support to $httpBackend service and $httpBackend mock
service.
This api can also be used to explicitly abort requests while keeping the
communication between the deffered and promise unidirectional.
Closes #1159
Diffstat (limited to 'test/ngMock/angular-mocksSpec.js')
| -rw-r--r-- | test/ngMock/angular-mocksSpec.js | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/test/ngMock/angular-mocksSpec.js b/test/ngMock/angular-mocksSpec.js index 176c5c92..220f8e58 100644 --- a/test/ngMock/angular-mocksSpec.js +++ b/test/ngMock/angular-mocksSpec.js @@ -798,6 +798,24 @@ describe('ngMock', function() { }); + it('should abort requests when timeout promise resolves', function() { + hb.expect('GET', '/url1').respond(200); + + var canceler, then = jasmine.createSpy('then').andCallFake(function(fn) { + canceler = fn; + }); + + hb('GET', '/url1', null, callback, null, {then: then}); + expect(typeof canceler).toBe('function'); + + canceler(); // simulate promise resolution + + expect(callback).toHaveBeenCalledWith(-1, undefined, ''); + hb.verifyNoOutstandingExpectation(); + hb.verifyNoOutstandingRequest(); + }); + + it('should throw an exception if no response defined', function() { hb.when('GET', '/test'); expect(function() { @@ -1006,8 +1024,8 @@ describe('ngMockE2E', function() { hb.when('GET', /\/passThrough\/.*/).passThrough(); hb('GET', '/passThrough/23', null, callback); - expect(realHttpBackend). - toHaveBeenCalledOnceWith('GET', '/passThrough/23', null, callback, undefined); + expect(realHttpBackend).toHaveBeenCalledOnceWith( + 'GET', '/passThrough/23', null, callback, undefined, undefined); }); }); |
