Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / xmlhttprequest / methods-async.html
blob311f3e06244c3c799a59449a955d8155255914d0
1 <html>
2 <body>
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>
5 <script>
6 if (window.testRunner) {
7 testRunner.dumpAsText();
8 testRunner.waitUntilDone();
11 var console_messages = document.createElement("ol");
12 document.body.appendChild(console_messages);
14 function log(message)
16 var item = document.createElement("li");
17 item.appendChild(document.createTextNode(message));
18 console_messages.appendChild(item);
21 // async
23 var asyncStep = 1;
25 req = new XMLHttpRequest;
26 req.onreadystatechange = processStateChange;
27 req.open("GET", "methods.cgi", true);
28 req.send("");
30 function processStateChange() {
32 if (req.readyState == 4){
33 if (req.status == 200){
34 if (asyncStep == 1) {
35 asyncStep = 2;
36 log('GET(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
37 req.open("GET", "methods.cgi", true);
38 req.send(null);
39 } else if (asyncStep == 2) {
40 asyncStep = 3;
41 log('GET(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
42 req.open("GET", "methods.cgi", true);
43 req.send("123");
44 } else if (asyncStep == 3) {
45 asyncStep = 4;
46 log('GET("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
47 req.open("POST", "methods.cgi", true);
48 req.send("");
49 } else if (asyncStep == 4) {
50 asyncStep = 5;
51 log('POST(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
52 req.open("POST", "methods.cgi", true);
53 req.send(null);
54 } else if (asyncStep == 5) {
55 asyncStep = 6;
56 log('POST(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
57 req.open("POST", "methods.cgi", true);
58 req.send("123");
59 } else if (asyncStep == 6) {
60 asyncStep = 7;
61 log('POST("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
62 req.open("PUT", "methods.cgi", true);
63 req.send("");
64 } else if (asyncStep == 7) {
65 asyncStep = 8;
66 log('PUT(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
67 req.open("PUT", "methods.cgi", true);
68 req.send(null);
69 } else if (asyncStep == 8) {
70 asyncStep = 9;
71 log('PUT(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
72 req.open("PUT", "methods.cgi", true);
73 req.send("123");
74 } else if (asyncStep == 9) {
75 asyncStep = 10;
76 log('PUT("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
77 req.open("DELETE", "methods.cgi", true);
78 req.send("");
79 } else if (asyncStep == 10) {
80 asyncStep = 11;
81 log('DELETE(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
82 req.open("DELETE", "methods.cgi", true);
83 req.send(null);
84 } else if (asyncStep == 11) {
85 asyncStep = 12;
86 log('DELETE(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
87 req.open("DELETE", "methods.cgi", true);
88 req.send("123");
89 } else if (asyncStep == 12) {
90 asyncStep = 13;
91 log('DELETE("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
92 req.open("HEAD", "methods.cgi", true);
93 req.send("");
94 } else if (asyncStep == 13) {
95 asyncStep = 14;
96 log('HEAD(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
97 req.open("HEAD", "methods.cgi", true);
98 req.send(null);
99 } else if (asyncStep == 14) {
100 asyncStep = 15;
101 log('HEAD(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
102 req.open("HEAD", "methods.cgi", true);
103 req.send("123");
104 } else if (asyncStep == 15) {
105 asyncStep = 16;
106 log('HEAD("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
107 req.open("WKFOOBAR", "methods.cgi", true);
108 req.send("");
109 } else if (asyncStep == 16) {
110 asyncStep = 17;
111 log('WKFOOBAR(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
112 req.open("WKFOOBAR", "methods.cgi", true);
113 req.send(null);
114 } else if (asyncStep == 17) {
115 asyncStep = 18;
116 log('WKFOOBAR(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
117 req.open("WKFOOBAR", "methods.cgi", true);
118 req.send("123");
119 } else if (asyncStep == 18) {
120 asyncStep = 19;
121 log('WKFOOBAR("123"): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
122 req.open("SEARCH", "methods.cgi", true);
123 req.send("");
124 } else if (asyncStep == 19) {
125 asyncStep = 20;
126 log('SEARCH(""): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
127 req.open("SEARCH", "methods.cgi", true);
128 req.send(null);
129 } else if (asyncStep == 20) {
130 asyncStep = 21;
131 log('SEARCH(null): ' + req.getResponseHeader("REQMETHOD") + "(" + req.getResponseHeader("REQLENGTH") + " bytes), Content-Type: " + req.getResponseHeader("REQTYPE"));
132 req.open("SEARCH", "methods.cgi", true);
133 req.send("123");
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();
139 } else {
140 log("Error loading URL: status " + req.status);
145 </script>
146 </body>
147 </html>