1 description("Test for sending a dragged file via XMLHttpRequest.");
3 var fileInput = document.createElement("input");
4 fileInput.type = "file";
5 fileInput.style.width = "100px";
6 fileInput.style.height = "100px";
7 // Important that we put this at the top of the doc so that logging does not cause it to go out of view (where it can't be dragged to)
8 document.body.insertBefore(fileInput, document.body.firstChild);
10 fileInput.addEventListener("dragenter", function() {
11 event.preventDefault();
14 fileInput.addEventListener("dragover", function() {
15 event.preventDefault();
18 fileInput.addEventListener("drop", function() {
19 if (event.dataTransfer.types.indexOf("Files") != -1 && event.dataTransfer.files.length == 1)
20 testPassed("event.dataTransfer contains a File object on drop.");
22 testFailed("event.dataTransfer does not contain a File object on drop.");
26 var xhr = new XMLHttpRequest();
27 xhr.open("POST", "http://127.0.0.1:8000/xmlhttprequest/resources/post-echo.cgi", false);
28 xhr.send(event.dataTransfer.files[0]);
29 if (xhr.responseText == "Hello")
30 testPassed("Expected response data received.");
32 testFailed("Unexpected response data received: " + xhr.responseText);
34 event.preventDefault();
37 function moveMouseToCenterOfElement(element) {
38 var centerX = element.offsetLeft + element.offsetWidth / 2;
39 var centerY = element.offsetTop + element.offsetHeight / 2;
40 eventSender.mouseMoveTo(centerX, centerY);
45 eventSender.beginDragWithFiles(["resources/file-for-drag-to-send.txt"]);
46 moveMouseToCenterOfElement(fileInput);
47 eventSender.mouseUp();
50 if (window.eventSender) {
52 // Clean up after ourselves
53 fileInput.parentNode.removeChild(fileInput);
55 testFailed("This test is not interactive, please run using DumpRenderTree");
58 var successfullyParsed = true;