56 lines
1.5 KiB
HTML
56 lines
1.5 KiB
HTML
<!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>
|