<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Regression test for bug 5291</title>
</head>
<body>
                <form 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>
