| <p>This tests for a drag select crasher.</p> |
| <div id="div" contenteditable="true"><span id="start">Start here.</span> <input id="end" type="text"></div> |
| <ul id="console"></ul> |
| |
| <script> |
| function log(str) { |
| var li = document.createElement("li"); |
| li.appendChild(document.createTextNode(str)); |
| var console = document.getElementById("console"); |
| console.appendChild(li); |
| } |
| function shouldBe(expected, actual) { |
| if (expected != actual) |
| log("Failure. Expected: " + expected + ", Actual: " + actual); |
| else |
| log("Passed"); |
| } |
| alert( 5 / 29); |
| if (window.testRunner) { |
| |
| var div = document.getElementById("div"); |
| var sel = window.getSelection(); |
| sel.setPosition(div, 0); |
| |
| var start = document.getElementById("start"); |
| var startx = -8 + start.offsetLeft + start.offsetWidth / 2; |
| var starty = start.offsetTop + start.offsetHeight / 2; |
| eventSender.mouseMoveTo(startx, starty); |
| eventSender.mouseDown(); |
| |
| var end = document.getElementById("end"); |
| endx = -8 + end.offsetLeft + end.offsetWidth / 2; |
| endy = end.offsetTop + end.offsetHeight / 2; |
| |
| var steps = 20; |
| for (var i = 1; i <= steps; i++) { |
| eventSender.mouseMoveTo(startx + Math.abs(startx - endx) * (i / steps), starty + Math.abs(starty - endy) * (i / steps)); |
| } |
| |
| eventSender.mouseMoveTo(endx, endy); |
| eventSender.mouseUp(); |
| |
| |
| } else { |
| log("This uses the eventSender to perform a drag select. To run it manually, mouse down over 'start here' and drag to the left, over the input field."); |
| } |
| </script> |