summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/xhr/abort-during-headers-received.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/xhr/abort-during-headers-received.window.js')
-rw-r--r--testing/web-platform/tests/xhr/abort-during-headers-received.window.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/testing/web-platform/tests/xhr/abort-during-headers-received.window.js b/testing/web-platform/tests/xhr/abort-during-headers-received.window.js
new file mode 100644
index 0000000000..0e7140a85d
--- /dev/null
+++ b/testing/web-platform/tests/xhr/abort-during-headers-received.window.js
@@ -0,0 +1,41 @@
+// META: title=XMLHttpRequest: abort() during HEADERS_RECEIVED
+
+ async_test(test => {
+ var client = new XMLHttpRequest(),
+ result = [],
+ expected = [1, 2, 4]
+ client.onreadystatechange = test.step_func(function() {
+ result.push(client.readyState);
+ if (client.readyState === 2) {
+ assert_equals(client.status, 200)
+ assert_equals(client.statusText, "OK")
+ assert_equals(client.responseXML, null)
+ client.abort();
+ assert_equals(client.readyState, 0)
+ assert_equals(client.status, 0)
+ assert_equals(client.statusText, "")
+ assert_equals(client.responseXML, null)
+ assert_equals(client.getAllResponseHeaders(), "")
+ }
+ if (client.readyState === 4) {
+ assert_equals(client.readyState, 4)
+ assert_equals(client.status, 0)
+ assert_equals(client.statusText, "")
+ assert_equals(client.responseXML, null)
+ assert_equals(client.getAllResponseHeaders(), "")
+ }
+ })
+ client.onloadend = test.step_func(function() {
+ assert_equals(client.readyState, 4)
+ assert_equals(client.status, 0)
+ assert_equals(client.statusText, "")
+ assert_equals(client.responseXML, null)
+ assert_equals(client.getAllResponseHeaders(), "")
+ test.step_timeout(function() {
+ assert_array_equals(result, expected)
+ test.done();
+ }, 100); // wait a bit in case XHR timeout causes spurious event
+ })
+ client.open("GET", "resources/well-formed.xml")
+ client.send(null)
+ })