Skip to content

Commit

Permalink
fix(http): Set response.ok
Browse files Browse the repository at this point in the history
The ok property was not being set on response objects.
It's now set based on the status code.

Closes #6390
Closes #6503
  • Loading branch information
Utsav2 authored and mhevery committed May 25, 2016
1 parent d4827ca commit 9234035
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
3 changes: 2 additions & 1 deletion modules/@angular/http/src/backends/xhr_backend.ts
Expand Up @@ -69,7 +69,8 @@ export class XHRConnection implements Connection {
responseOptions = baseResponseOptions.merge(responseOptions);
}
let response = new Response(responseOptions);
if (isSuccess(status)) {
response.ok = isSuccess(status);
if (response.ok) {
responseObserver.next(response);
// TODO(gdi2290): defer complete if array buffer until done
responseObserver.complete();
Expand Down
28 changes: 28 additions & 0 deletions modules/@angular/http/test/backends/xhr_backend_spec.ts
Expand Up @@ -343,6 +343,34 @@ export function main() {
existingXHRs[0].dispatchEvent('load');
}));

it('should set ok to true on 200 return', inject([AsyncTestCompleter], async => {
var statusCode = 200;
var connection = new XHRConnection(sampleRequest, new MockBrowserXHR(),
new ResponseOptions({status: statusCode}));

connection.response.subscribe(res => {
expect(res.ok).toBe(true);
async.done();
});

existingXHRs[0].setStatusCode(statusCode);
existingXHRs[0].dispatchEvent('load');
}));

it('should set ok to false on 300 return', inject([AsyncTestCompleter], async => {
var statusCode = 300;
var connection = new XHRConnection(sampleRequest, new MockBrowserXHR(),
new ResponseOptions({status: statusCode}));

connection.response.subscribe(res => { throw 'should not be called'; }, errRes => {
expect(errRes.ok).toBe(false);
async.done();
});

existingXHRs[0].setStatusCode(statusCode);
existingXHRs[0].dispatchEvent('load');
}));

it('should call error and not complete on 300+ codes',
inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
var nextCalled = false;
Expand Down

0 comments on commit 9234035

Please sign in to comment.