<!DOCTYPE html>
<html>
<body>
<p>This test checks that typing Enter into an input element does not fire input or textInput.<br>
To run manually, type enter in the input element below.</p>
<form id="form">
<input id="el">
</form>
<br>
<div id="result"></div>
<pre id="console"></pre>
<script>
function log(msg) {
    document.getElementById('console').appendChild(document.createTextNode(msg + '\n'));
}

var unexpectedEvents = 0;
var enterChar = '\r'.charCodeAt(0);
function fail(event) {
    if (lastKeyPressed != enterChar) {
        log(event.type + ' fired.');
        return;
    }

    unexpectedEvents++;
    log('Unexpected ' + event.type + ' fired.');
    result.innerHTML = '<span style="padding: 5px; background-color: red">FAIL</span>';
}

var lastKeyPressed = 0;
el.addEventListener('keypress', function(event) { lastKeyPressed = event.keyCode; });
el.addEventListener('input', fail);
el.addEventListener('textInput', fail);

// If the form is submitted on enter and no unexpected event has been fired, success!
form.addEventListener('submit', function(event) {
    if (!unexpectedEvents && !result.hasChildNodes())
        result.innerHTML = '<span style="padding: 5px; background-color: green">SUCCESS</span>';

    event.preventDefault();
});

if (window.testRunner)
    testRunner.dumpAsText();

el.focus();
if (window.eventSender) {
    log('\nSending Enter to input element');
    eventSender.keyDown('\r', []);
} else if (window.testRunner)
    log('This test requires eventSender to run in LayoutTests.');

</script>
</body>
</html>
