<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Regression test for bug 5291</title>
</head>
<body>
                <form method="get" enctype="multipart/form-data" action="?" name=f>
                        <input type="hidden" name="hidden" value="I am hidden">
                        <input type="submit" value="press me">
                </form>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

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

    if (document.URL.indexOf('?') == -1) {

        document.f.submit();

    } else {

        if (document.URL.substring(document.URL.indexOf('?')+1, document.URL.length) == "hidden=I+am+hidden")
            document.write("<p>Success</p>");
        else
            document.write("<p>Failure</p>");

        if (window.layoutTestController)
            layoutTestController.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>
