| <!doctype html> | |
| <html> | |
| <head> | |
| <title>XMLHttpRequest: status error handling</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onerror" data-tested-assertations="../.." /> | |
| <link rel="help" href="https://xhr.spec.whatwg.org/#the-status-attribute" data-tested-assertations="/following::ol/li[3]" /> | |
| </head> | |
| <body> | |
| <p>This shouldn't be tested inside a tunnel.</p> | |
| <div id="log"></div> | |
| <script> | |
| function noError(method, code) { | |
| var test = async_test(document.title + " " + method + " " + code) | |
| test.step(function() { | |
| var client = new XMLHttpRequest() | |
| client.open(method, "resources/status.py?code=" + code, true) | |
| client.onreadystatechange = test.step_func(function() { | |
| assert_equals(client.response, "", "response data") | |
| assert_equals(client.status, code, "response status") | |
| if (client.readyState == client.DONE) | |
| /* Give extra time for a bogus error event to pop up */ | |
| setTimeout(test.step_func(function() { test.done() } ), 100) | |
| }) | |
| client.onerror = test.step_func(function() { | |
| assert_unreached("HTTP error should not throw error event") | |
| }) | |
| client.send() | |
| }) | |
| } | |
| noError('GET', 200) | |
| noError('GET', 400) | |
| noError('GET', 401) | |
| noError('GET', 404) | |
| noError('GET', 410) | |
| noError('GET', 500) | |
| noError('GET', 699) | |
| noError('HEAD', 200) | |
| noError('HEAD', 404) | |
| noError('HEAD', 500) | |
| noError('HEAD', 699) | |
| noError('POST', 200) | |
| noError('POST', 404) | |
| noError('POST', 500) | |
| noError('POST', 699) | |
| noError('PUT', 200) | |
| noError('PUT', 404) | |
| noError('PUT', 500) | |
| noError('PUT', 699) | |
| </script> | |
| </body> | |
| </html> |