| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <meta name="timeout" content="long"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| var simple_tests = [ |
| { |
| name: "form submission from form should navigate to url with x-www-form-urlencoded", |
| input: "<input name=foo value=bara>", |
| enctype: "application/x-www-form-urlencoded", |
| submitelement: "", |
| submitaction: function(doc) { doc.getElementById("testform").submit(); } |
| }, |
| { |
| name: "form submission from form should navigate to url with multipart/form-data", |
| input: "<textarea name=foo>bar</textarea>", |
| enctype: "multipart/form-data", |
| submitelement: "", |
| submitaction: function(doc) { doc.getElementById("testform").submit(); } |
| }, |
| { |
| name: "form submission from form should navigate to url with text/plain", |
| input: "<textarea name=qux>baz</textarea>", |
| enctype: "text/plain", |
| submitelement: "", |
| submitaction: function(doc) { doc.getElementById("testform").submit(); } |
| }, |
| { |
| name: "form submission from button should navigate to url with x-www-form-urlencoded", |
| input: "<input name=foo value=bara>", |
| enctype: "application/x-www-form-urlencoded", |
| submitelement: "<button id=buttonsubmit type=\"submit\">Submit</button>", |
| submitaction: function(doc) { doc.getElementById("buttonsubmit").click(); } |
| }, |
| { |
| name: "form submission from button should navigate to url with multipart/form-data", |
| input: "<textarea name=foo>bar</textarea>", |
| enctype: "multipart/form-data", |
| submitelement: "<button id=buttonsubmit type=\"submit\">Submit</button>", |
| submitaction: function(doc) { doc.getElementById("buttonsubmit").click(); } |
| }, |
| { |
| name: "form submission from button should navigate to url with text/plain", |
| input: "<textarea name=qux>baz</textarea>", |
| enctype: "text/plain", |
| submitelement: "<button id=buttonsubmit type=\"submit\">Submit</button>", |
| submitaction: function(doc) { doc.getElementById("buttonsubmit").click(); } |
| }, |
| { |
| name: "form submission from input should navigate to url with x-www-form-urlencoded", |
| input: "<input name=foo value=bara>", |
| enctype: "application/x-www-form-urlencoded", |
| submitelement: "<input id=inputsubmit type=\"submit\">Submit</input>", |
| submitaction: function(doc) { doc.getElementById("inputsubmit").click(); } |
| }, |
| { |
| name: "form submission from input should navigate to url with multipart/form-data", |
| input: "<textarea name=foo>bar</textarea>", |
| enctype: "multipart/form-data", |
| submitelement: "<input id=inputsubmit type=\"submit\">Submit</input>", |
| submitaction: function(doc) { doc.getElementById("inputsubmit").click(); } |
| }, |
| { |
| name: "form submission from input should navigate to url with text/plain", |
| input: "<input name=qux value=baz>", |
| enctype: "text/plain", |
| submitelement: "<input id=inputsubmit type=\"submit\">Submit</input>", |
| submitaction: function(doc) { doc.getElementById("inputsubmit").click(); } |
| }, |
| { |
| name: "form submission from submit input should contain submit button value", |
| input: "<button type=submit name=notclicked value=nope>not clicked</button>", |
| enctype: "application/x-www-form-urlencoded", |
| submitelement: "<button id=inputsubmit type=\"submit\" name=foo value=bara>Submit</button>", |
| submitaction: function(doc) { doc.getElementById("inputsubmit").click(); } |
| } |
| , |
| { |
| name: "form submission from submit button should contain submit button value", |
| input: "<input type=submit name=notclicked value=nope/>", |
| enctype: "application/x-www-form-urlencoded", |
| submitelement: "<input id=inputsubmit type=\"submit\" name=foo value=bara >", |
| submitaction: function(doc) { doc.getElementById("inputsubmit").click(); } |
| } |
| ]; |
| simple_tests.forEach(function(test_obj) { |
| test_obj.test = async_test(test_obj.name); |
| }); |
| function run_simple_test() { |
| if (simple_tests.length == 0) { |
| return; |
| } |
| var test_obj = simple_tests.pop(); |
| var t = test_obj.test; |
| var testframe = document.getElementById("testframe"); |
| var testdocument = testframe.contentWindow.document; |
| testdocument.body.innerHTML = |
| "<form id=testform method=post action=\"form-submission.py\" enctype=\"" + test_obj.enctype + "\">" + |
| test_obj.input + |
| test_obj.submitelement + |
| "</form>"; |
| testframe.onload = function() { |
| t.step(function (){ |
| var response = testframe.contentDocument.documentElement.textContent; |
| assert_equals(response, "OK"); |
| }); |
| t.done(); |
| run_simple_test(); |
| }; |
| test_obj.submitaction(testdocument); |
| } |
| </script> |
| <iframe id=testframe src="/common/blank.html" onload="run_simple_test();"></iframe> |