Add test for URL-encoded form submission.

This turned out to be a little more complicated than I was hoping...
but I can't really think of a better way to do this.
This commit is contained in:
Eli Friedman 2015-10-07 22:26:47 -07:00
parent ea690a2dff
commit 8c93046b1c
3 changed files with 61 additions and 1 deletions

View file

@ -0,0 +1,46 @@
<!DOCTYPE html>
<meta charset="utf-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<iframe id=testframe src="/common/blank.html"></iframe>
<script>
var simple_tests = [
{
name: "text.simple",
input: "<input name=foo value=bara>",
output: "foo=bara"
},
{
name: "textarea.simple",
input: "<textarea name=foo>bar</textarea>",
output: "foo=bar"
},
];
simple_tests.forEach(function(test_obj) {
test_obj.test = async_test(test_obj.name);
});
function run_simple_test() {
if (simple_tests.length == 0) {
return;
}
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 action=\"/common/blank.html\">" +
test_obj.input +
"</form>";
testframe.onload = function() {
t.step(function (){
var get_url = testframe.contentWindow.location.toString();
var encoded = get_url.substr(get_url.indexOf("?") + 1);
assert_equals(encoded, test_obj.output);
});
t.done();
run_simple_test();
};
testdocument.getElementById("testform").submit();
}
document.getElementById("testframe").onload = run_simple_test;
</script>