| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>CORS - status after preflight</title> |
| <meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> |
| |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src=support.js?pipe=sub></script> |
| |
| <h1>Status after preflight</h1> |
| |
| <div id=log></div> |
| <script> |
| var counter = 0 |
| |
| function statusAfterPreflight(method, code) { |
| counter++ |
| |
| async_test(document.title + " on " + method + " " + code).step(function() { |
| var client = new XMLHttpRequest() |
| client.open(method, CROSSDOMAIN + "resources/status.py?" + counter |
| +"&code=" + code + '&headers=x-nonsimple&preflight=200', true) |
| |
| client.setRequestHeader('x-nonsimple', true) |
| client.onreadystatechange = this.step_func(function() { |
| if (client.readyState < client.HEADERS_RECEIVED) |
| return |
| assert_equals(client.response, "", "response data") |
| assert_equals(client.status, code, "response status") |
| if (client.readyState == client.DONE) { |
| /* Wait for spurious error events */ |
| this.step_timeout(() => { this.done() }, 10) |
| } |
| }) |
| |
| client.onerror = this.step_func(function() { |
| assert_unreached("Shouldn't throw no error event!") |
| }) |
| |
| client.send() |
| }) |
| } |
| |
| /* method code */ |
| statusAfterPreflight("GET", 200) |
| statusAfterPreflight("GET", 204) |
| statusAfterPreflight("GET", 400) |
| statusAfterPreflight("GET", 401) |
| |
| statusAfterPreflight("HEAD", 200) |
| statusAfterPreflight("HEAD", 204) |
| statusAfterPreflight("HEAD", 400) |
| statusAfterPreflight("HEAD", 401) |
| statusAfterPreflight("HEAD", 501) |
| statusAfterPreflight("HEAD", 699) |
| |
| statusAfterPreflight("POST", 204) |
| statusAfterPreflight("POST", 400) |
| statusAfterPreflight("POST", 401) |
| statusAfterPreflight("POST", 404) |
| |
| statusAfterPreflight("PUT", 699) |
| // statusAfterPreflight("CHICKEN", 501) |
| |
| </script> |