mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Implement XHR addEventListener/removeEventListener events.
- Used by the Angular XHRBackend service. - Only supporting 'load' and 'error' now. - Not implemented as weak events. Client responsible for detaching or not keeping a reference to the XHR object forever. (NG XHRBackend does so)
This commit is contained in:
@@ -221,6 +221,35 @@ export function test_raises_onload_Event(done) {
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
export function test_xhr_events(done) {
|
||||
let xhr = <any>new XMLHttpRequest();
|
||||
|
||||
let loadCallbackFired = false, loadEventFired = false;
|
||||
xhr.onload = () => loadCallbackFired = true;
|
||||
let badEvent = () => { throw new Error("Shouldn't call me") }
|
||||
xhr.addEventListener('load', () => loadEventFired = true);
|
||||
xhr.addEventListener('load', badEvent);
|
||||
xhr.removeEventListener('load', badEvent);
|
||||
|
||||
xhr._errorFlag = false;
|
||||
xhr._setReadyState(xhr.DONE);
|
||||
TKUnit.assertTrue(loadCallbackFired);
|
||||
TKUnit.assertTrue(loadEventFired);
|
||||
|
||||
let errorCallbackData = null, errorEventData = null;
|
||||
xhr.onerror = (e) => errorCallbackData = e;
|
||||
xhr.addEventListener('error', (e) => errorEventData = e);
|
||||
xhr.addEventListener('error', badEvent);
|
||||
xhr.removeEventListener('error', badEvent);
|
||||
|
||||
xhr._errorFlag = true;
|
||||
xhr._setReadyState(xhr.DONE, 'error data');
|
||||
TKUnit.assertEqual(errorCallbackData, 'error data');
|
||||
TKUnit.assertEqual(errorEventData, 'error data');
|
||||
|
||||
done(null);
|
||||
}
|
||||
|
||||
export function test_sets_status_and_statusText(done) {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = () => {
|
||||
|
||||
Reference in New Issue
Block a user