chromium/third_party/blink/web_tests/fast/events/onchange-select-popup.html

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

    function changeHandler()
    {
        log ('PASS: change event fired.\n');
    }

    function blurHandler()
    {
        log ('blur event fired.\n');
    }

    function test()
    {
        if (window.testRunner)
            testRunner.dumpAsText();
        
        // Test for select that's not inside a form element
        var menu1 = document.getElementById('menu1');
        menu1.focus();

        if (window.testRunner) {
            // change the option selection
            eventSender.keyDown('e');
        }
        // hit enter
        var enterEvent = document.createEvent("KeyboardEvents");
        enterEvent.initKeyboardEvent("keypress", true, false, window, "Enter", 0, false, false, false, false, false);
        menu1.dispatchEvent(enterEvent);
        
        // Test for select is inside a form element
        var menu2 = document.getElementById('menu2');
        menu2.focus();

        if (window.testRunner) {
            // change the option selection
            eventSender.keyDown('e');
        }
        // hit enter
        menu2.dispatchEvent(enterEvent);
    }
    </script>
</head>
<body onload="test()">
    <p>This test verifies that the ENTER key fires the change event for popups.</p>
    <hr>
    <select id="menu1" onchange="changeHandler()" onblur="blurHandler()"><option>abcd</option><option>efgh</option></select>
    <form onsubmit="return false;">
        <select id="menu2" onchange="changeHandler()" onblur="blurHandler()"><option>abcd</option><option>efgh</option></select>
    </form>
    <pre id="console"></pre>
</body>
</html>