From 5487bdb3d1c905fb9453644f7e290c75dcee14c1 Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Thu, 18 Aug 2011 23:48:01 +0200 Subject: feat($browser.xhr): add timeout option to abort request Timeouted request responds internal status code -1, which should be normalized into 0 by $xhr. --- test/service/browserSpecs.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test') diff --git a/test/service/browserSpecs.js b/test/service/browserSpecs.js index 05c1dec0..566ffb09 100644 --- a/test/service/browserSpecs.js +++ b/test/service/browserSpecs.js @@ -228,6 +228,23 @@ describe('browser', function() { expect(browser.xhr('GET', '/url', null, noop)).toBe(xhr); }); + it('should abort request on timeout', function() { + var callback = jasmine.createSpy('done').andCallFake(function(status, response) { + expect(status).toBe(-1); + }); + + browser.xhr('GET', '/url', null, callback, {}, 2000); + xhr.abort = jasmine.createSpy('xhr.abort'); + + fakeWindow.setTimeout.flush(); + expect(xhr.abort).toHaveBeenCalledOnce(); + + xhr.status = 0; + xhr.readyState = 4; + xhr.onreadystatechange(); + expect(callback).toHaveBeenCalledOnce(); + }); + it('should be async even if xhr.send() is sync', function() { // IE6, IE7 is sync when serving from cache var xhr; -- cgit v1.2.3