mirror of
https://github.com/servo/servo.git
synced 2025-06-23 16:44:33 +01:00
56 lines
1.6 KiB
HTML
56 lines
1.6 KiB
HTML
<!doctype html>
|
|
<title>XMLHttpRequest: open() during abort event - abort() called from upload.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(),
|
|
log = [],
|
|
lastTest = false,
|
|
expected = [
|
|
'readyState before abort() 1',
|
|
"upload.onabort - before open() 4",
|
|
"readyState after open() 1",
|
|
"client.onabort 1",
|
|
"client.onloadend 1",
|
|
"readyState after abort() 1",
|
|
"client.onload 4",
|
|
"client.onloadend 4"
|
|
]
|
|
|
|
client.upload.onloadstart = t.step_func(() => {
|
|
log.push('readyState before abort() '+client.readyState)
|
|
client.abort()
|
|
log.push('readyState after abort() '+client.readyState)
|
|
})
|
|
|
|
client.upload.onabort = t.step_func(() => {
|
|
log.push('upload.onabort - before open() ' + client.readyState)
|
|
client.open("GET", "resources/content.py")
|
|
log.push('readyState after open() ' + client.readyState)
|
|
client.send(null)
|
|
})
|
|
|
|
client.onabort = t.step_func(() => {
|
|
// happens immediately after all of upload.onabort, so readyState is 1
|
|
log.push('client.onabort ' + client.readyState)
|
|
})
|
|
|
|
client.onloadend = t.step_func(() => {
|
|
log.push('client.onloadend ' + client.readyState)
|
|
if(lastTest) {
|
|
assert_array_equals(log, expected)
|
|
t.done()
|
|
}
|
|
lastTest = true
|
|
})
|
|
|
|
client.onload = t.step_func(() => {
|
|
log.push('client.onload ' + client.readyState)
|
|
})
|
|
|
|
client.open("POST", "resources/content.py")
|
|
client.send("non-empty")
|
|
})
|
|
</script>
|