| <!DOCTYPE html> |
| <html> |
| <body> |
| <div id="droptarget">Test drops files here</div> |
| <form> |
| <input type="file" name="files" id="files"> |
| </form> |
| <pre id='output'></pre> |
| |
| <script> |
| function log(message) |
| { |
| document.getElementById('output').appendChild(document.createTextNode(message + "\n")); |
| } |
| |
| function onInputFileChange() |
| { |
| var files = document.getElementById("files").files; |
| if (files.length != 1) |
| log("FAIL: Expected 1 file after drag.") |
| else |
| log("PASS: 1 file after drag"); |
| |
| doStringTest(); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| function handleDragOver(e) { |
| e.stopPropagation(); |
| e.preventDefault(); |
| } |
| |
| function handleDrop(e) { |
| e.stopPropagation(); |
| e.preventDefault(); |
| document.getElementById("files").files = e.dataTransfer.files; |
| } |
| |
| var droptarget = document.getElementById('droptarget'); |
| droptarget.addEventListener('dragover', handleDragOver, false); |
| droptarget.addEventListener('drop', handleDrop, false); |
| |
| function doTest(fileList) |
| { |
| // This drops files on a div, which copies them to the input element, whose |
| // callback calls notifyDone(). |
| document.getElementById("files").onchange = onInputFileChange; |
| var fi = document.getElementById("files"); |
| eventSender.beginDragWithFiles(['../resources/test.txt']); |
| eventSender.mouseMoveTo(droptarget.offsetLeft + 10, droptarget.offsetTop + droptarget.offsetHeight / 2); |
| eventSender.mouseUp(); |
| } |
| |
| function doStringTest() |
| { |
| var files = document.getElementById("files"); |
| files.files = "foo"; // Shouldn't crash. |
| |
| files.value = "foo"; // Should do nothing. |
| if (files.files.length > 0) |
| log("PASS: writing nonempty string to value had no effect"); |
| else |
| log("FAIL: writing nonempty string to value cleared elements"); |
| |
| files.value = ""; |
| if (files.files.length === 0) |
| log("PASS: writing empty string to value cleared files"); |
| else |
| log("FAIL: writing empty string to value did not clear files"); |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| if (window.eventSender) { |
| doTest(); |
| } |
| |
| </script> |
| </body> |
| </html> |