<!-- webkit-test-runner [ enableDragDestinationActionLoad=true ] -->
<!DOCTYPE html>
<html>
<head>
<style>
div, span {
    border: 1px solid black;
};
</style>
<script>
var dropReceived;
function log(str)
{
    var result = document.getElementById('result');
    result.appendChild(document.createTextNode(str));
    result.appendChild(document.createElement('br'));
}
function dragDrop(target)
{
    log('Starting drag...');
    eventSender.beginDragWithFiles(['test']);
    eventSender.leapForward(100);
    eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2,
                            target.offsetTop + target.offsetHeight / 2);
    eventSender.mouseUp();
}
window.onload = function()
{
    var drop1 = document.getElementById('drop1');
    var drop2 = document.getElementById('drop2');

    document.body.addEventListener('dragover', function () {
        dropReceived = false;
    }, false);

    drop1.addEventListener('dragover', function(e) {
        e.preventDefault();
    }, false);
    drop1.addEventListener('drop', function(e) {
        e.preventDefault();
        dropReceived = true;
        log('Drop received in drop target 1');
    }, false);

    drop2.addEventListener('dragover', function() {
    }, false);
    drop2.addEventListener('drop', function(e) {
        e.preventDefault();
        dropReceived = true;
        log('Drop received in drop target 2');
    }, false);

    if (!window.testRunner)
        return;
    testRunner.dumpAsText();
    testRunner.waitUntilDone();

    window.addEventListener('beforeunload', function () {
        if (!dropReceived)
            log('Drop not received');
        testRunner.notifyDone();
    });

    dragDrop(drop1);
    unloadExpected = true;
    dragDrop(drop2);
    window.setTimeout(function () {
        // Deadman's switch to fail quickly.
        log('FAIL: navigation expected');
        testRunner.notifyDone();
    }, 0);
}
</script>
</head>
<body>
<p>To run this test manually, drag a file to one of the two boxes below.
<div id="drop1">Dropping in drop target 1 should result in a drop event.</div>
<div id="drop2">Dropping in drop target 2 should NOT result in a drop event (page will navigate).</div>
<div id="result">
</div>
</body>
</html>
