<html>
<body>
<embed name="plg" type="application/x-webkit-test-netscape" windowedPlugin="false" width=100 height=100></embed>
<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=11517">bug 11517</a>:
Flash clicks/interactivity not working properly.</p>
<script>

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

    if (!window.layoutTestController) {
        document.write("This test does not work in manual mode.");
    } else {
        layoutTestController.dumpAsText();
        
        eventSender.mouseMoveTo(0,0);
        eventSender.mouseMoveTo(20,20);
        eventSender.mouseDown();
        eventSender.mouseUp();
        eventSender.mouseMoveTo(30,30);
        eventSender.mouseDown();
        eventSender.mouseMoveTo(40,30);
        eventSender.mouseUp();
        eventSender.mouseMoveTo(0,0);
    }

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

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