<html>
<head>
<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
<script>
if (window.testRunner)
     testRunner.dumpEditingCallbacks();
</script>

<script>
function log(message) {
    var console = document.getElementById("console");
    var li = document.createElement("li");
    var text = document.createTextNode(message);
    
    console.appendChild(li);
    li.appendChild(text);
}

function runTest() {
    if (window.testRunner)
        testRunner.waitUntilDone();
    e = document.getElementById("dragme");
    setSelectionCommand(e.parentNode, e.nodeIndex, e.parentNode, e.nodeIndex + 1);

    if (!window.testRunner) {
        log("This test uses the eventSender.  To run it manually, drag the selected image into the editable div and drop it.  It should appear inside the editable div.");
        return;
    }
    
    log("Abe should appear twice, once inside the div and once outside it.");
    
    e = document.getElementById("dragme");
    x = e.offsetLeft + e.offsetWidth / 2;
    y = e.offsetTop + e.offsetHeight / 2;

    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();    
    e = document.getElementById("target");
    x = e.offsetLeft + e.offsetWidth / 2;
    y = e.offsetTop + e.offsetHeight / 2;
    
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseUp();

    Promise.all(Array.from(document.querySelectorAll('img')).map((img) => {
        if (img.complete)
            return;
        return new Promise((resolve) => img.onload = resolve);
    })).then(() => testRunner.notifyDone());
}

</script>
</head>

<body style="padding:0; margin:0" onload="runTest();">  

<div id="target" style="border: 1px solid black; width: 300px; height: 120px;" contenteditable="true"></div>
<img id="dragme" src="../resources/abe.png">

<ul id="console"></ul>
</body>
