chromium/third_party/blink/web_tests/fast/forms/text/text-input-event.html

<html>
<head>
<script>

var logDiv;

function log(msg, success)
{
    logDiv.appendChild(document.createElement('div')).textContent = msg + ': ' + (success ? 'PASS' : 'FAIL');
}

function typeInto(element, value)
{
    if (!window.eventSender)
        return;

    element.focus();
    eventSender.keyDown(value, []);
}

function runTest()
{
    if (window.testRunner)
        testRunner.dumpAsText();

    logDiv = document.getElementById('log');
    var input = document.getElementsByTagName('input')[0];
    var count = 0;
    input.addEventListener('input', function()
    {
        count++;
    }, false);
    typeInto(input, 'x');
    log('Input event should fire once per actual input', count == 1);
}

</script>
</head>
<body onload="runTest()">
    <input>
    <div id="log"></div>
</body>
</html>