| <html> |
| <head> |
| <script> |
| function log(message) { |
| var console = document.getElementById("console"); |
| var div = document.createElement("div"); |
| var text = document.createTextNode(message); |
| |
| console.appendChild(div); |
| div.appendChild(text); |
| } |
| |
| function runTest() { |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } else |
| return; |
| |
| selectSelection(); |
| dragElementToContentEditable(document.getElementById("dragimage")); |
| |
| selectSelection(); |
| dragElementToContentEditable(document.getElementById("draglink")); |
| |
| selectSelection(); |
| dragElementToContentEditable(document.getElementById("dragtext")); |
| |
| var target = document.getElementById("target"); |
| log("Dumping info about contenteditable div:"); |
| log("Number of children: " + target.children.length); |
| log("Contents:"); |
| log(target.children[0].tagName); |
| log(target.children[1].tagName); |
| log(target.children[2].tagName); |
| log(target.children[3].tagName); |
| |
| log("Number of selected ranges: " + window.getSelection().rangeCount); |
| |
| testRunner.notifyDone(); |
| } |
| |
| function selectSelection() { |
| window.getSelection().selectAllChildren(document.getElementById("selection")); |
| } |
| |
| function dragElementToContentEditable(dragSource) |
| { |
| x = dragSource.offsetLeft + dragSource.offsetWidth / 2; |
| y = dragSource.offsetTop + dragSource.offsetHeight / 2; |
| |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| |
| var dropTarget = document.getElementById("target"); |
| x = dropTarget.offsetLeft + dropTarget.offsetWidth / 2; |
| y = dropTarget.offsetTop + dropTarget.offsetHeight / 2; |
| |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseUp(); |
| } |
| </script> |
| </head> |
| |
| <body style="padding:0; margin:0" onload="runTest();"> |
| |
| <div id="target" style="border: 1px solid black; width: 300px; height: 200px;" contenteditable="true"></div> |
| <div id="selection"> |
| <img id="dragimage" src="../../resources/abe.png"> |
| <a href="#" id="draglink">Link</a> |
| <span id="dragtext">Random text.</span></div> |
| |
| <p>This test checks selection drag edge cases on Mac. To run the test manually: |
| <ol> |
| <li>Select everything above, start the drag over the image, and with no delay, drag it to the content editable area. Only the image should be dragged. |
| <li>Select everything above, start the drag over the link, and with no delay, drag it to the content editable area. The entire selection should be dragged. |
| <li>Select everything above, start the drag over the text, and with no delay, drag it to the content editable area. Nothing should be dragged, but a bunch of text should be selected instead. |
| </ol> |
| </p> |
| <div id="console"></ul> |
| </body> |