<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<form id=f action="interactive-validation-formnovalidate.html">
<input type=hidden name=submitted value="true">
<input name=i0 required id="i0">
<input type=submit id="s" formnovalidate>
</form>
<script>
description('Test if the form is submitted with a submit button with formnovalidate.');

function startOrVerify() {
    var query = window.location.search;
    if (query.indexOf('submitted=true') != -1) {
        testPassed('The form should not be submitted.');
        shouldBeTrue('location.search.indexOf("i0=") != -1');
        debug('TEST COMPLETE');
        if (window.testRunner)
            testRunner.notifyDone();
    } else {
        // HTMLFormElement::submit() skips validation. Use the submit button.
        document.getElementById('s').click();
        testFailed('The form was not submitted.');
    }
}

if (window.testRunner)
    testRunner.waitUntilDone();
window.onload = startOrVerify;
</script>
</body>
</html>
