<html>
<head>
<title>Test for bug 19079</title>
</head>
<body>
<p>This is a test for https://bugs.webkit.org/show_bug.cgi?id=19079, it send the submissions
character encoding in hidden _charset_ field.
</p>
<p>This should submit _charset_=I\'m a little input, short and stout</p>

<form id="testForm" action="resources/char-encoding-in-hidden-charset-field.py" method="post">
<input type=text name="_charset_" value="I'm a little input, short and stout">
<input type=submit>
</form>

<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

var form = document.getElementById("testForm");
form.submit();

</script>
</body>
</html>
