| Anne van Kesteren | e265427 | 2017-02-23 13:57:30 | [diff] [blame] | 1 | <!doctype html> |
| 2 | <title>XMLHttpRequest: loadstart event corner cases</title> |
| 3 | <script src=/resources/testharness.js></script> |
| 4 | <script src=/resources/testharnessreport.js></script> |
| 5 | <div id=log></div> |
| 6 | <script> |
| 7 | async_test(t => { |
| 8 | const client = new XMLHttpRequest |
| 9 | client.onloadstart = t.step_func(() => { |
| Stephen McGruer | 3696f22 | 2020-01-23 19:11:58 | [diff] [blame] | 10 | assert_throws_dom("InvalidStateError", () => client.setRequestHeader("General", "Organa")) |
| 11 | assert_throws_dom("InvalidStateError", () => client.withCredentials = true) |
| 12 | assert_throws_dom("InvalidStateError", () => client.send()) |
| Anne van Kesteren | e265427 | 2017-02-23 13:57:30 | [diff] [blame] | 13 | client.onloadstart = null |
| 14 | client.open("GET", "data:,BB-8") |
| 15 | client.send() |
| 16 | }) |
| 17 | client.onload = t.step_func_done(() => { |
| 18 | assert_equals(client.responseText, "BB-8") |
| 19 | }) |
| 20 | client.open("GET", "data:,R2-D2") |
| 21 | client.send() |
| 22 | }, "open() during loadstart") |
| 23 | |
| 24 | async_test(t => { |
| 25 | const client = new XMLHttpRequest |
| 26 | let abortFired = false |
| 27 | client.onloadstart = t.step_func_done(() => { |
| 28 | assert_equals(client.readyState, 1) |
| 29 | client.abort() |
| 30 | assert_true(abortFired) |
| 31 | assert_equals(client.readyState, 0) |
| 32 | }) |
| 33 | client.onabort = t.step_func(() => { |
| 34 | abortFired = true |
| 35 | assert_equals(client.readyState, 4) |
| 36 | }) |
| 37 | client.open("GET", "data:,K-2SO") |
| 38 | client.send() |
| 39 | }, "abort() during loadstart") |
| 40 | </script> |