diff options
Diffstat (limited to 'test/ng/httpBackendSpec.js')
| -rw-r--r-- | test/ng/httpBackendSpec.js | 38 | 
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); | 
