3 <p>Tests for
<a href=
"https://bugs.webkit.org/show_bug.cgi?id=3812"> bug
3812</a> -
4 GET and POST should not be the only HTTP methods implemented in XMLHttpRequest.
</p>
6 if (window
.testRunner
) {
7 testRunner
.dumpAsText();
8 testRunner
.waitUntilDone();
11 var console_messages
= document
.createElement("ol");
12 document
.body
.appendChild(console_messages
);
16 var item
= document
.createElement("li");
17 item
.appendChild(document
.createTextNode(message
));
18 console_messages
.appendChild(item
);
25 req
= new XMLHttpRequest
;
26 req
.onreadystatechange
= processStateChange
;
27 req
.open("GET", "methods.cgi", true);
30 function processStateChange() {
32 if (req
.readyState
== 4){
33 if (req
.status
== 200){
36 log('GET(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
37 req
.open("GET", "methods.cgi", true);
39 } else if (asyncStep
== 2) {
41 log('GET(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
42 req
.open("GET", "methods.cgi", true);
44 } else if (asyncStep
== 3) {
46 log('GET("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
47 req
.open("POST", "methods.cgi", true);
49 } else if (asyncStep
== 4) {
51 log('POST(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
52 req
.open("POST", "methods.cgi", true);
54 } else if (asyncStep
== 5) {
56 log('POST(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
57 req
.open("POST", "methods.cgi", true);
59 } else if (asyncStep
== 6) {
61 log('POST("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
62 req
.open("PUT", "methods.cgi", true);
64 } else if (asyncStep
== 7) {
66 log('PUT(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
67 req
.open("PUT", "methods.cgi", true);
69 } else if (asyncStep
== 8) {
71 log('PUT(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
72 req
.open("PUT", "methods.cgi", true);
74 } else if (asyncStep
== 9) {
76 log('PUT("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
77 req
.open("DELETE", "methods.cgi", true);
79 } else if (asyncStep
== 10) {
81 log('DELETE(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
82 req
.open("DELETE", "methods.cgi", true);
84 } else if (asyncStep
== 11) {
86 log('DELETE(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
87 req
.open("DELETE", "methods.cgi", true);
89 } else if (asyncStep
== 12) {
91 log('DELETE("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
92 req
.open("HEAD", "methods.cgi", true);
94 } else if (asyncStep
== 13) {
96 log('HEAD(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
97 req
.open("HEAD", "methods.cgi", true);
99 } else if (asyncStep
== 14) {
101 log('HEAD(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
102 req
.open("HEAD", "methods.cgi", true);
104 } else if (asyncStep
== 15) {
106 log('HEAD("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
107 req
.open("WKFOOBAR", "methods.cgi", true);
109 } else if (asyncStep
== 16) {
111 log('WKFOOBAR(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
112 req
.open("WKFOOBAR", "methods.cgi", true);
114 } else if (asyncStep
== 17) {
116 log('WKFOOBAR(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
117 req
.open("WKFOOBAR", "methods.cgi", true);
119 } else if (asyncStep
== 18) {
121 log('WKFOOBAR("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
122 req
.open("SEARCH", "methods.cgi", true);
124 } else if (asyncStep
== 19) {
126 log('SEARCH(""): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
127 req
.open("SEARCH", "methods.cgi", true);
129 } else if (asyncStep
== 20) {
131 log('SEARCH(null): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
132 req
.open("SEARCH", "methods.cgi", true);
134 } else if (asyncStep
== 21) {
135 log('SEARCH("123"): ' + req
.getResponseHeader("REQMETHOD") + "(" + req
.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req
.getResponseHeader("REQTYPE"));
136 if (window
.testRunner
)
137 testRunner
.notifyDone();
140 log("Error loading URL: status " + req
.status
);