83 lines
2.2 KiB
HTML
83 lines
2.2 KiB
HTML
<!-- 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>
|