| <p>This tests the ability to drag a file onto <input type="file"></p> |
| <p>To test manually you need to attempt to drag a file onto the file input below</p> |
| <input id="target" type="file"/><br /> |
| <input id="dragStart" type="text" value="This input field is only present to allow DRT to initiate a drag"></input><br /> |
| <pre id="console"></pre> |
| |
| |
| <script> |
| function debug(str) { |
| var c = document.getElementById('console') |
| c.appendChild(document.createTextNode(str + '\n')); |
| } |
| |
| function runTest() { |
| var dragStart = document.getElementById("dragStart"); |
| var x = dragStart.offsetLeft + dragStart.offsetWidth / 2; |
| var y = dragStart.offsetTop + dragStart.offsetHeight / 2; |
| |
| var target = document.getElementById("target"); |
| var tx = target.offsetLeft + target.offsetWidth / 2; |
| var ty = target.offsetTop + target.offsetHeight / 2; |
| |
| dragStart.select(); |
| |
| var initialValue = target.value; |
| |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| eventSender.leapForward(400); |
| eventSender.mouseMoveTo(tx, ty); |
| eventSender.mouseUp(); |
| |
| var finalValue = target.value; |
| if (initialValue == finalValue || finalValue != "DRTFakeFile") |
| debug("FAIL: Could not drop file on to file input"); |
| else |
| debug("PASS: Successfully dropped file on to file input"); |
| |
| debug("PASS: Finished test"); |
| } |
| |
| if (window.layoutTestController) { |
| layoutTestController.addFileToPasteboardOnDrag(); |
| layoutTestController.dumpAsText(); |
| runTest(); |
| } |
| |
| // remove drag source |
| var dragStart = document.getElementById("dragStart"); |
| dragStart.parentNode.removeChild(dragStart); |
| |
| </script> |