chromium/third_party/blink/web_tests/plugins/drag-events.html

<html>
<head>
<style>
  #plugin {
    width: 150px;
    height: 150px;
  }
</style>
</head>

<body onload="test();">

<embed id="plugin_drag" type="application/x-webkit-test-webplugin" can-process-drag="true" contentEditable="false"></embed>
<embed id="plugin_editable" type="application/x-webkit-test-webplugin" contentEditable="true"></embed>
<embed id="plugin" type="application/x-webkit-test-webplugin"></embed>
<div id='text'><span>Some text to drag</span></div>
<script>

function dragOverPlugin(plugin) {
    var div = document.getElementById('text');
    div.focus();
    getSelection().collapse(div, 0);
    getSelection().modify('extend', 'forward', 'word');

    console.log("Dragging over " + plugin.id);
    var positionX = plugin.offsetLeft + plugin.offsetWidth / 2;
    var positionY = plugin.offsetTop + plugin.offsetHeight / 2;

    var startX = div.offsetLeft + div.firstChild.offsetWidth / 5;
    var startY = div.offsetTop + div.offsetHeight / 2;;

    // Drag into the plugin and drag out before dropping.
    eventSender.dragMode = true;
    eventSender.mouseMoveTo(startX, startY);
    eventSender.mouseDown();
    eventSender.leapForward(250);
    eventSender.mouseMoveTo(positionX, positionY);
    eventSender.mouseMoveTo(positionX + 2, positionY);
    eventSender.mouseMoveTo(startX, startY);
    eventSender.mouseMoveTo(positionX, positionY);
    eventSender.mouseUp();
    eventSender.leapForward(250);
    eventSender.mouseMoveTo(startX, startY);
}

function test() {
    if (!window.testRunner || !window.eventSender) {
        document.write("This test does not work in manual mode.");
    } else {
        testRunner.dumpAsText();
        dragOverPlugin(plugin_drag);
        dragOverPlugin(plugin_editable);
        dragOverPlugin(plugin);
    }
}
</script>
</body>
</html>