feat(http): set the statusText property from the XMLHttpRequest instance
Closes #4162
This commit is contained in:
parent
7a80f0d1e1
commit
3019140e7e
@ -58,7 +58,10 @@ export class XHRConnection implements Connection {
|
|||||||
if (status === 0) {
|
if (status === 0) {
|
||||||
status = body ? 200 : 0;
|
status = body ? 200 : 0;
|
||||||
}
|
}
|
||||||
var responseOptions = new ResponseOptions({body, status, headers, url});
|
|
||||||
|
let statusText = _xhr.statusText || 'OK';
|
||||||
|
|
||||||
|
var responseOptions = new ResponseOptions({body, status, headers, statusText, url});
|
||||||
if (isPresent(baseResponseOptions)) {
|
if (isPresent(baseResponseOptions)) {
|
||||||
responseOptions = baseResponseOptions.merge(responseOptions);
|
responseOptions = baseResponseOptions.merge(responseOptions);
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,8 @@ class MockBrowserXHR extends BrowserXhr {
|
|||||||
status: number;
|
status: number;
|
||||||
responseHeaders: string;
|
responseHeaders: string;
|
||||||
responseURL: string;
|
responseURL: string;
|
||||||
|
statusText: string;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
var spy = new SpyObject();
|
var spy = new SpyObject();
|
||||||
@ -51,6 +53,8 @@ class MockBrowserXHR extends BrowserXhr {
|
|||||||
|
|
||||||
setStatusCode(status: number) { this.status = status; }
|
setStatusCode(status: number) { this.status = status; }
|
||||||
|
|
||||||
|
setStatusText(statusText: string) { this.statusText = statusText; }
|
||||||
|
|
||||||
setResponse(value: string) { this.response = value; }
|
setResponse(value: string) { this.response = value; }
|
||||||
|
|
||||||
setResponseText(value: string) { this.responseText = value; }
|
setResponseText(value: string) { this.responseText = value; }
|
||||||
@ -354,6 +358,35 @@ export function main() {
|
|||||||
existingXHRs[0].setStatusCode(statusCode);
|
existingXHRs[0].setStatusCode(statusCode);
|
||||||
existingXHRs[0].dispatchEvent('load');
|
existingXHRs[0].dispatchEvent('load');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should set the status text property from the XMLHttpRequest instance if present',
|
||||||
|
inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
|
||||||
|
var statusText = 'test';
|
||||||
|
var connection = new XHRConnection(sampleRequest, new MockBrowserXHR());
|
||||||
|
|
||||||
|
connection.response.subscribe((res: Response) => {
|
||||||
|
expect(res.statusText).toBe(statusText);
|
||||||
|
async.done();
|
||||||
|
});
|
||||||
|
|
||||||
|
existingXHRs[0].setStatusText(statusText);
|
||||||
|
existingXHRs[0].setStatusCode(200);
|
||||||
|
existingXHRs[0].dispatchEvent('load');
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should set status text to "OK" if it is not present in XMLHttpRequest instance',
|
||||||
|
inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
|
||||||
|
var connection = new XHRConnection(sampleRequest, new MockBrowserXHR());
|
||||||
|
|
||||||
|
connection.response.subscribe((res: Response) => {
|
||||||
|
expect(res.statusText).toBe('OK');
|
||||||
|
async.done();
|
||||||
|
});
|
||||||
|
|
||||||
|
existingXHRs[0].setStatusCode(200);
|
||||||
|
existingXHRs[0].dispatchEvent('load');
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user