blob: b8f9ceab20c108bd14ce8ef45313030d8954c643 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
div, span {
border: 1px solid black;
};
</style>
<script>
var dropReceived;
var beforeUnloadReceived = false;
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 (e) {
if (!dropReceived)
log('Drop not received');
beforeUnloadReceived = true;
e.preventDefault();
testRunner.notifyDone();
});
dragDrop(drop1);
dragDrop(drop2);
window.stop();
window.setTimeout(function () {
// Deadman's switch to fail quickly.
if (!beforeUnloadReceived)
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>