diff options
Diffstat (limited to 'testing/web-platform/tests/xhr/open-during-abort-processing.htm')
-rw-r--r-- | testing/web-platform/tests/xhr/open-during-abort-processing.htm | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/testing/web-platform/tests/xhr/open-during-abort-processing.htm b/testing/web-platform/tests/xhr/open-during-abort-processing.htm new file mode 100644 index 0000000000..706eb32a20 --- /dev/null +++ b/testing/web-platform/tests/xhr/open-during-abort-processing.htm @@ -0,0 +1,62 @@ +<!doctype html> +<title>XMLHttpRequest: open() during abort processing - abort() called from onloadstart</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +async_test(t => { + let client = new XMLHttpRequest(), + test_state = 1, + log = [], + expected = [ + "onloadstart readyState before abort() 1", + "onreadystatechange readyState before open() 4", + "onreadystatechange readyState after open() 1", + "onloadstart readyState 1", + "client.onabort 1", + "readyState after abort() 1", + "client.onload 4" + ] + + client.onreadystatechange = t.step_func(() => { + if(test_state === 2){ + test_state = 3 + log.push('onreadystatechange readyState before open() ' + client.readyState) + client.open("GET", "resources/content.py") + log.push('onreadystatechange readyState after open() ' + client.readyState) + client.send(null) + } + }) + + client.onloadstart = t.step_func(() => { + if(test_state === 1){ + test_state = 2 + log.push('onloadstart readyState before abort() ' + client.readyState) + client.abort() + log.push('readyState after abort() ' + client.readyState) + }else{ + log.push('onloadstart readyState ' + client.readyState) + } + }) + + client.upload.onabort = t.step_func(() => { + log.push('upload.onabort ' + client.readyState) + }) + + client.onabort = t.step_func(() => { + log.push('client.onabort ' + client.readyState) + }) + + client.upload.onloadend = t.step_func(() => { + log.push('upload.onloadend ' + client.readyState) + }) + + client.onload = t.step_func_done(() => { + log.push('client.onload ' + client.readyState) + assert_array_equals(log, expected) + }) + + client.open("POST", "resources/content.py") + client.send('abcd') +}) +</script> |