<html>
<body>
<embed name="plg" type="application/x-webkit-test-netscape" windowedPlugin="false" width=100 height=100></embed>
<p>This test checks if a plug-in can receive keyboard events sent from eventSender. This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34936">Bug 34936</a>.</p>
<script>

    plg.windowedPlugin = false;
    plg.eventLoggingEnabled = true;

    if (!window.testRunner) {
        document.write("This test does not work in manual mode.");
    } else {
        testRunner.dumpAsText();

        // Send a mouse-click event to set the input focus to the test plug-in.
        eventSender.mouseMoveTo(0,0);
        eventSender.mouseMoveTo(20,20);
        eventSender.mouseDown();
        eventSender.mouseUp();

        // Send keyboard events to the plug-in.
        eventSender.keyDown('a');
        eventSender.keyDown('b');
        eventSender.keyDown('c');
    }

    plg.eventLoggingEnabled = false; // stop logging so our output doesn't bleed into the next test

</script>
</body>
</html>
