diff options
| author | Igor Minar | 2011-12-28 09:26:22 -0800 |
|---|---|---|
| committer | Vojta Jina | 2012-01-09 13:17:48 -0800 |
| commit | a13b5ed3bc337a493029815c595b89c39eb95af6 (patch) | |
| tree | 2ca5380d5cf5aea68218280cccda5d0221517454 /test/service/httpBackendSpec.js | |
| parent | 63cca9afbcf7a772086eb4582d2f409c39e0ed12 (diff) | |
| download | angular.js-a13b5ed3bc337a493029815c595b89c39eb95af6.tar.bz2 | |
fix($http): fix and cleanup $http and friends
$http:
- use promises internally
- get rid of XhrFuture that was previously used internally
- get rid of $browser.defer calls for async stuff (serving from cache),
promises will take care of asynchronicity
- fix transformation bugs (when caching requested + multiple request
pending + error is returned)
- get rid of native header parsing and instead just lazily parse the
header string
$httpBackend:
- don't return raw/mock XMLHttpRequest object (we don't use it for
anything anymore)
- call the callback with response headers string
mock $httpBackend:
- unify response api for expect and when
- call the callback with response headers string
- changed the expect/when failure error message so that EXPECTED and GOT
values are aligned
Conflicts:
src/service/http.js
test/service/compilerSpec.js
test/service/httpSpec.js
Diffstat (limited to 'test/service/httpBackendSpec.js')
| -rw-r--r-- | test/service/httpBackendSpec.js | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/test/service/httpBackendSpec.js b/test/service/httpBackendSpec.js index b9bf2b18..1c6d3a51 100644 --- a/test/service/httpBackendSpec.js +++ b/test/service/httpBackendSpec.js @@ -58,18 +58,13 @@ describe('$httpBackend', function() { $backend('POST', 'URL', null, noop, {'X-header1': 'value1', 'X-header2': 'value2'}); xhr = MockXhr.$$lastInstance; - expect(xhr.$$headers).toEqual({ + expect(xhr.$$reqHeaders).toEqual({ 'X-header1': 'value1', 'X-header2': 'value2' }); }); - it('should return raw xhr object', function() { - expect($backend('GET', '/url', null, noop)).toBe(MockXhr.$$lastInstance); - }); - - it('should abort request on timeout', function() { callback.andCallFake(function(status, response) { expect(status).toBe(-1); @@ -91,16 +86,20 @@ describe('$httpBackend', function() { }); - it('should be async even if xhr.send() is sync', function() { - // IE6, IE7 is sync when serving from cache + it('should register onreadystatechange callback before sending', function() { + // send() in IE6, IE7 is sync when serving from cache function SyncXhr() { xhr = this; this.open = this.setRequestHeader = noop; + this.send = function() { this.status = 200; this.responseText = 'response'; this.readyState = 4; + this.onreadystatechange(); }; + + this.getAllResponseHeaders = valueFn(''); } callback.andCallFake(function(status, response) { @@ -108,14 +107,8 @@ describe('$httpBackend', function() { expect(response).toBe('response'); }); - $backend = createHttpBackend($browser, SyncXhr, fakeTimeout); + $backend = createHttpBackend($browser, SyncXhr); $backend('GET', '/url', null, callback); - expect(callback).not.toHaveBeenCalled(); - - fakeTimeout.flush(); - expect(callback).toHaveBeenCalledOnce(); - - (xhr.onreadystatechange || noop)(); expect(callback).toHaveBeenCalledOnce(); }); |
