<!DOCTYPE html>
<html>
<head>
<style>
#drag {
    border: 1px solid black;
    height: 200px;
    width: 200px;
}
#drop {
    border: 1px solid black;
    height: 200px;
    width: 200px;
}
</style>
<script>
function log(str)
{
    var result = document.getElementById('result');
    result.appendChild(document.createTextNode(str));
    result.appendChild(document.createElement('br'));
}
function dragstart(event) {
    event.dataTransfer.setData('text', 'sample');
    event.dataTransfer.setData('custom-data', 'hello world');
}
function dragenter(event) {
    event.preventDefault();
}
function dragover(event) {
    event.preventDefault();
}
function drop(event) {
    var failed = false;
    if (event.dataTransfer.types.indexOf('text/plain') < 0
        || event.dataTransfer.types.indexOf('custom-data') < 0)
        failed = true;
    if (event.dataTransfer.getData('text') != 'sample'
        || event.dataTransfer.getData('custom-data') != 'hello world')
        failed = true;
    log(failed ? 'FAILURE' : 'SUCCESS');
    if (window.testRunner)
        testRunner.notifyDone();
}
window.onload = function()
{
    if (!window.testRunner)
        return;
    testRunner.dumpAsText();
    testRunner.waitUntilDone();

    var dragElement = document.getElementById('drag');
    eventSender.mouseMoveTo(dragElement.offsetLeft + dragElement.offsetWidth / 2,
                            dragElement.offsetTop + dragElement.offsetHeight / 2);
    eventSender.mouseDown();
    eventSender.leapForward(100);
    var dropElement = document.getElementById('drop');
    eventSender.mouseMoveTo(dropElement.offsetLeft + dropElement.offsetWidth / 2,
                            dropElement.offsetTop + dropElement.offsetHeight / 2);
    eventSender.mouseUp();
}
</script>
</head>
<body>
<p>To manually test, drag 'Drag Me' to 'Drop Here' and drop. The word 'SUCCESS' should appear.
<div draggable="true" id="drag" ondragstart="dragstart(event)">Drag Me</div>
<div id="drop" ondragenter="dragenter(event)" ondragover="dragover(event)" ondrop="drop(event)">Drop Here</div>
</div>
<div id="result"></div>
</body>
</html>
