<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Charsets and submitting forms</title>
</head>
<body>
<form action="?" name=f>
 <input type=hidden name=q value="&#1105;&#66560;&#119083;çc"><br>
</form>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

if (document.URL.substring(0, 4) == "file") {

    if (document.URL.indexOf('?') == -1) {
        document.f.q.value += "\u0327"; // cedilla for 'c'
        document.f.submit();

    } else {
        if (unescape(document.URL.substring(document.URL.indexOf('?')+1, document.URL.length)) == unescape("q=%D1%91%F0%90%90%80%F0%9D%84%AB%C3%A7c%CC%A7"))
            document.write("<p>Success</p>");
        else
            document.write("<p>Failure, query is " + document.URL.substring(document.URL.indexOf('?')+1, document.URL.length) + "</p>");
        
        if (window.testRunner)
            testRunner.notifyDone();
    }

} else {

    document.write("<p>This test doesn't work directly from bugzilla, please save it to a local file first.</p>");
}
</script>
</body>
</html>
