1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
<!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=\"/html/semantics/forms/form-submission-0/resources/form-submission.py?query=1\" 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>
|