summaryrefslogtreecommitdiffstats
path: root/test/wpt/tests/xhr/abort-during-done.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/wpt/tests/xhr/abort-during-done.window.js')
-rw-r--r--test/wpt/tests/xhr/abort-during-done.window.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/test/wpt/tests/xhr/abort-during-done.window.js b/test/wpt/tests/xhr/abort-during-done.window.js
new file mode 100644
index 0000000..f885e59
--- /dev/null
+++ b/test/wpt/tests/xhr/abort-during-done.window.js
@@ -0,0 +1,78 @@
+// META: title=XMLHttpRequest: abort() during DONE
+
+ async_test(test => {
+ var client = new XMLHttpRequest(),
+ result = [],
+ expected = [1, 4] // open() -> 1, send() -> 4
+ client.onreadystatechange = test.step_func(function() {
+ result.push(client.readyState)
+ })
+ client.open("GET", "resources/well-formed.xml", false)
+ client.send(null)
+ assert_equals(client.readyState, 4)
+ assert_equals(client.status, 200)
+ assert_equals(client.statusText, "OK")
+ assert_equals(client.responseXML.documentElement.localName, "html")
+ 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(), "")
+ assert_array_equals(result, expected)
+ test.done()
+ }, document.title + " (sync)")
+
+ async_test(test => {
+ var client = new XMLHttpRequest(),
+ result = [],
+ expected = [1, 4] // open() -> 1, send() -> 4
+ client.onreadystatechange = test.step_func(function() {
+ result.push(client.readyState);
+ if (client.readyState === 4) {
+ assert_equals(client.readyState, 4)
+ assert_equals(client.status, 200)
+ assert_equals(client.statusText, "OK")
+ assert_equals(client.responseXML.documentElement.localName, "html")
+ 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(), "")
+ test.done()
+ }
+ })
+ client.open("GET", "resources/well-formed.xml", false)
+ client.send(null)
+ assert_equals(client.readyState, 0)
+ assert_equals(client.status, 200)
+ assert_equals(client.statusText, "OK")
+ assert_equals(client.responseXML.documentElement.localName, "html")
+ }, document.title + " (sync aborted in readystatechange)")
+
+ async_test(test => {
+ var client = new XMLHttpRequest(),
+ result = [],
+ expected = [1, 2, 3, 4]
+ client.onreadystatechange = test.step_func(function() {
+ result.push(client.readyState);
+ if (client.readyState === 4) {
+ assert_equals(client.readyState, 4)
+ assert_equals(client.status, 200)
+ assert_equals(client.responseXML.documentElement.localName, "html")
+ 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(), "")
+ 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)
+ }, document.title + " (async)")