<!DOCTYPE html>
<html>
<head>
    <script src="../../resources/js-test-pre.js"></script>
    <script>
    function test() {
        if (document.location.hash !== '#submitted') {
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.setXSSAuditorEnabled(true)
                testRunner.waitUntilDone();
            }

            var form = document.getElementById('form');
            // Shouldn't trigger any assertions.
            form.submit();
        } else {
            testPassed('No assertions raised.');
            if (window.testRunner)
                testRunner.notifyDone();
        }
    }
    </script>
</head>
<body onload="test()">
    This tests that no assertions are thrown when POST submitting a form.
    <form method="post" id="form" action="#submitted">
        <input type="text">
    </form>
    <div id="console"></div>
</body>
</html>
