2009-09-30 Maciej Stachowiak <mjs@apple.com>
[WebKit.git] / LayoutTests / http / tests / loading / redirect-methods.html
1 <html>
2 <script>
3 if (window.layoutTestController) {
4     layoutTestController.dumpAsText();
5     layoutTestController.dumpResourceLoadCallbacks();
6     layoutTestController.waitUntilDone();
7 }
8
9 function startTest()
10 {
11     window.setTimeout("createFrame(0);", 0);
12 }
13
14 var testCodes = [301, 302, 303, 307];
15
16 function createFrame(index)
17 {
18     var h4 = document.createElement("h4");
19     h4.innerHTML = testCodes[index] + " redirect";
20     document.body.appendChild(h4);
21     var iframe = document.createElement("iframe");
22     iframe.setAttribute("testCode", testCodes[index]);
23     iframe.setAttribute("id", index);
24     iframe.setAttribute("height", "90px");
25     document.body.appendChild(iframe);
26     iframe.src="resources/redirect-methods-form.html";
27     iframe.setAttribute("onload", "iframeLoaded(" + index + ");");
28 }
29
30 function iframeLoaded(frameID)
31 {
32     var iframe = document.getElementById(frameID);
33     if (iframe.hasAttribute("submitted")) {
34         if (++frameID == testCodes.length) {
35             if (window.layoutTestController)
36                 layoutTestController.notifyDone();
37             return;
38         }
39         createFrame(frameID);
40     } else {
41         submitFormForFrame(iframe);
42     }
43 }
44
45 function submitFormForFrame(iframe)
46 {
47     var testInput = iframe.contentDocument.getElementById("testFormInput");
48     testInput.value = iframe.getAttribute("testCode");
49     var testForm = iframe.contentDocument.getElementById("testForm");
50     iframe.setAttribute("submitted", "true");
51     testForm.submit();
52 }
53
54 </script>
55 </head>
56 <body onload="startTest();">
57 This test checks to see what HTTP method is used to fetch the final resource in the case where the first request results in a redirect.<br>
58 301, 302, 303, and 307 http redirects are all tested.<br>
59
60 </body>
61 </html>