<!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-required-checkbox.html">
<input type=hidden name=submitted value="true">
<input type=checkbox required name=terms id=i0>
<input type=submit id="s">
</form>
<script>
description('There was a bug of validation of a required checkbox. This test confirms the bug has been fixed.');

function startOrVerify() {
    var query = window.location.search;
    if (query.indexOf('submitted=true') != -1) {
        testPassed('The form should be submitted.');
        shouldBeTrue('location.search.indexOf("terms=on") != -1');
        debug('TEST COMPLETE');
        if (window.testRunner)
            testRunner.notifyDone();
    } else {
        document.getElementById('i0').checked = true;
        // 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>
