<html>
    <head>
        <script>
        function test()
        {
            var sf = document.getElementById('sf');
            sf.focus();
            var enterEvent = document.createEvent("KeyboardEvents");
            enterEvent.initKeyboardEvent("keypress", true, false, window, "Enter", 0, false, false, false, false, false);
            sf.dispatchEvent(enterEvent);
            if (window.layoutTestController)
                layoutTestController.dumpAsText();
        }
        function log(msg)
        {
            var res = document.getElementById('res');
            res.innerHTML = res.innerHTML + msg + "<br>";
        }
        </script>
    </head>
    <body onload="test()">
        This tests that onSearch fires correctly.<br>
        <input type="search" id="sf" onSearch="log('Test Passed');"></input>
        <div id="res"></div>
    </body>
</html>
