<head>
<script>
window.onload = function () {
    if (window.layoutTestController)
        layoutTestController.dumpAsText(); 

    var abe = document.getElementById("abe");
    var dragTarget = document.getElementById("dragTarget");

    eventSender.mouseMoveTo(abe.offsetLeft + 50, abe.offsetTop + 50);
    eventSender.mouseDown();
    eventSender.leapForward(500);
    eventSender.mouseMoveTo(dragTarget.offsetLeft + 10, dragTarget.offsetTop + 10);
    eventSender.mouseUp();
}
</script>
</head>

<p>This page tests that we don't crash if we drag something to an iframe that has an invalid source.</p>
<img id="abe" src="http://127.0.0.1:8000/security/resources/abe.png">
<div>SUCCESS - didn't crash</div>
<iframe id="dragTarget" src="file:"></iframe> 
