85 lines
2.2 KiB
HTML
85 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<style>
|
|
body {
|
|
margin: 0;
|
|
}
|
|
#source {
|
|
width: 300px;
|
|
height: 300px;
|
|
}
|
|
#target {
|
|
border: 1px blue dashed;
|
|
font-family: monospace;
|
|
overflow: scroll;
|
|
white-space: nowrap;
|
|
width: 100%;
|
|
height: 300px;
|
|
}
|
|
</style>
|
|
|
|
<body onload=setup()>
|
|
<a id="link" href="https://www.webkit.org/"><img id="source" src="../resources/abe.png"></img></a>
|
|
<div id="target"></div>
|
|
</body>
|
|
|
|
<script>
|
|
function append(text) {
|
|
let div = document.createElement("div");
|
|
div.textContent = text;
|
|
target.appendChild(div);
|
|
}
|
|
|
|
function simulateDragAndDrop() {
|
|
let x = source.offsetLeft + source.offsetWidth / 2;
|
|
let y = source.offsetTop + source.offsetHeight / 2;
|
|
eventSender.mouseMoveTo(x, y);
|
|
eventSender.mouseDown();
|
|
eventSender.leapForward(500);
|
|
eventSender.mouseMoveTo(x, y + 300);
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
async function setup() {
|
|
target.addEventListener("dragenter", event => event.preventDefault());
|
|
target.addEventListener("dragover", event => event.preventDefault());
|
|
target.addEventListener("drop", event => {
|
|
for (const type of ["URL", "url", "text/uri-list"])
|
|
append(`${type}: "${event.dataTransfer.getData(type)}"`);
|
|
for (const file of event.dataTransfer.files)
|
|
append(`Found file of type ${file.type}`);
|
|
event.preventDefault();
|
|
});
|
|
|
|
if (!window.testRunner || !window.eventSender || !window.internals)
|
|
return;
|
|
|
|
internals.settings.setCustomPasteboardDataEnabled(true);
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
|
|
await source.decode();
|
|
|
|
append(`1. link.href = "${link.href}"`);
|
|
simulateDragAndDrop();
|
|
|
|
link.href = "file:///foo/bar/baz";
|
|
append(`2. link.href = "${link.href}"`);
|
|
simulateDragAndDrop();
|
|
|
|
link.href = "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D";
|
|
append(`3. link.href = "${link.href}"`);
|
|
simulateDragAndDrop();
|
|
|
|
link.href = "blob:https://www.webkit.org/1ef10222-3882-48c0-875e-1b55e845a931";
|
|
append(`4. link.href = "${link.href}"`);
|
|
simulateDragAndDrop();
|
|
|
|
link.href = "ftp://some/server/somewhere";
|
|
append(`5. link.href = "${link.href}"`);
|
|
simulateDragAndDrop();
|
|
|
|
testRunner.notifyDone();
|
|
}
|
|
</script>
|
|
</html> |