48 lines
1.5 KiB
HTML
48 lines
1.5 KiB
HTML
<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>
|