abort-during-headers-received.window.js (1695B)
1 // META: title=XMLHttpRequest: abort() during HEADERS_RECEIVED 2 3 async_test(test => { 4 var client = new XMLHttpRequest(), 5 result = [], 6 expected = [1, 2, 4] 7 client.onreadystatechange = test.step_func(function() { 8 result.push(client.readyState); 9 if (client.readyState === 2) { 10 assert_equals(client.status, 200) 11 assert_equals(client.statusText, "OK") 12 assert_equals(client.responseXML, null) 13 client.abort(); 14 assert_equals(client.readyState, 0) 15 assert_equals(client.status, 0) 16 assert_equals(client.statusText, "") 17 assert_equals(client.responseXML, null) 18 assert_equals(client.getAllResponseHeaders(), "") 19 } 20 if (client.readyState === 4) { 21 assert_equals(client.readyState, 4) 22 assert_equals(client.status, 0) 23 assert_equals(client.statusText, "") 24 assert_equals(client.responseXML, null) 25 assert_equals(client.getAllResponseHeaders(), "") 26 } 27 }) 28 client.onloadend = test.step_func(function() { 29 assert_equals(client.readyState, 4) 30 assert_equals(client.status, 0) 31 assert_equals(client.statusText, "") 32 assert_equals(client.responseXML, null) 33 assert_equals(client.getAllResponseHeaders(), "") 34 test.step_timeout(function() { 35 assert_array_equals(result, expected) 36 test.done(); 37 }, 100); // wait a bit in case XHR timeout causes spurious event 38 }) 39 client.open("GET", "resources/well-formed.xml") 40 client.send(null) 41 })