chromium/third_party/blink/web_tests/fast/events/no-blur-on-enter-button.html

<html>
<head>
    <script>
    function log(s)
    {
        document.getElementById('console').appendChild(document.createTextNode(s + "\n"));
    }

    var inputBlurFired = false;
    var buttonBlurFired = false;

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

        // hit enter
        var bt = document.getElementById('i_bt');
        bt.focus();
        var enterEvent = document.createEvent("KeyboardEvents");
        enterEvent.initKeyboardEvent("keypress", true, false, window, "Enter", 0, false, false, false, false, false);
        bt.dispatchEvent(enterEvent);

        if (inputBlurFired)
            log('Test 1 Failed.  Blur fired when hitting ENTER for input type=button element');
        else
            log('Test 1 Passed.');

        bt = document.getElementById('b_bt');
        bt.focus();
        var enterEvent2 = document.createEvent("KeyboardEvents");
        enterEvent2.initKeyboardEvent("keypress", true, false, window, "Enter", 0, false, false, false, false, false);

        bt.dispatchEvent(enterEvent2);

        if (buttonBlurFired)
            log('Test 2 Failed.  Blur fired when hitting ENTER for button element');
        else
            log('Test 2 Passed.');
    }
    </script>
</head>
<body onload="test()">
    <p>This test verifies that the ENTER key does not fire the blur event for input type="button" and button elements.</p>
    <hr>
    <input id="i_bt" type="button" name="InputButtonElement" onblur="inputBlurFired = true;"></input>
    <button id="b_bt" type="button" name="ButtonElement" onblur="buttonBlurFired = true;"></button>

    <pre id="console"></pre>
</body>
</html>