| <html> |
| <body> |
| <p>Tests for <a href="https://bugs.webkit.org/show_bug.cgi?id=3812"> bug 3812</a> - |
| GET and POST should not be the only HTTP methods implemented in XMLHttpRequest.</p> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var console_messages = document.createElement("ol"); |
| document.body.appendChild(console_messages); |
| |
| function log(message) |
| { |
| var item = document.createElement("li"); |
| item.appendChild(document.createTextNode(message)); |
| console_messages.appendChild(item); |
| } |
| |
| // async |
| |
| var asyncStep = 1; |
| |
| req = new XMLHttpRequest; |
| req.onreadystatechange = processStateChange; |
| req.open("GET", "methods.cgi", true); |
| req.send(""); |
| |
| function processStateChange() { |
| |
| if (req.readyState == 4){ |
| if (req.status == 200){ |
| if (asyncStep == 1) { |
| asyncStep = 2; |
| log('GET(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("GET", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 2) { |
| asyncStep = 3; |
| log('GET(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("GET", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 3) { |
| asyncStep = 4; |
| log('GET("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("POST", "methods.cgi", true); |
| req.send(""); |
| } else if (asyncStep == 4) { |
| asyncStep = 5; |
| log('POST(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("POST", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 5) { |
| asyncStep = 6; |
| log('POST(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("POST", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 6) { |
| asyncStep = 7; |
| log('POST("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("PUT", "methods.cgi", true); |
| req.send(""); |
| } else if (asyncStep == 7) { |
| asyncStep = 8; |
| log('PUT(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("PUT", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 8) { |
| asyncStep = 9; |
| log('PUT(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("PUT", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 9) { |
| asyncStep = 10; |
| log('PUT("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("DELETE", "methods.cgi", true); |
| req.send(""); |
| } else if (asyncStep == 10) { |
| asyncStep = 11; |
| log('DELETE(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("DELETE", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 11) { |
| asyncStep = 12; |
| log('DELETE(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("DELETE", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 12) { |
| asyncStep = 13; |
| log('DELETE("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("HEAD", "methods.cgi", true); |
| req.send(""); |
| } else if (asyncStep == 13) { |
| asyncStep = 14; |
| log('HEAD(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("HEAD", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 14) { |
| asyncStep = 15; |
| log('HEAD(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("HEAD", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 15) { |
| asyncStep = 16; |
| log('HEAD("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("WKFOOBAR", "methods.cgi", true); |
| req.send(""); |
| } else if (asyncStep == 16) { |
| asyncStep = 17; |
| log('WKFOOBAR(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("WKFOOBAR", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 17) { |
| asyncStep = 18; |
| log('WKFOOBAR(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("WKFOOBAR", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 18) { |
| asyncStep = 19; |
| log('WKFOOBAR("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("SEARCH", "methods.cgi", true); |
| req.send(""); |
| } else if (asyncStep == 19) { |
| asyncStep = 20; |
| log('SEARCH(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("SEARCH", "methods.cgi", true); |
| req.send(null); |
| } else if (asyncStep == 20) { |
| asyncStep = 21; |
| log('SEARCH(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| req.open("SEARCH", "methods.cgi", true); |
| req.send("123"); |
| } else if (asyncStep == 21) { |
| log('SEARCH("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE")); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| } else { |
| log("Error loading URL: status " + req.status); |
| } |
| } |
| } |
| |
| </script> |
| </body> |
| </html> |