<html>
<script>
    function test() {
        if (window.layoutTestController) {
            layoutTestController.dumpAsText();
            layoutTestController.waitUntilDone();
        }
        setTimeout(test2, 0);
    }
    function test2() {
        document.getElementById('tf0').focus();
        eventSender.keyDown('a');
        if (window.layoutTestController)
            layoutTestController.notifyDone();
    }
    function log(msg) {
        var res = document.getElementById('res');
        res.innerHTML = res.innerHTML + msg + "<br>";
    }

</script> 
<body onload="test()">
    This tests that when the keydown event changes focus, the keypress event will go to the new focused node.<br>
    To run this test manually, type a character in the first field.<br>
    <input id="tf0" onkeydown="document.getElementById('tf1').focus()" onkeypress="log('Test Failed')">
    <input id="tf1" onkeypress="log('Test Passed')">
    <br>
    <div id="res"></div>
</body>
</html>
