47 lines
1.4 KiB
HTML
47 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<p>This tests dragging text within the same contenteditable element. To manually test, move the target below to the destination.
|
|
You should see dragstart, drop, and dragend in the log.</p>
|
|
<div contenteditable><span>Drag_and_drop_this_target to here, the_destination.</span></div>
|
|
<pre id="log">
|
|
Log:
|
|
</pre>
|
|
<script>
|
|
|
|
var log = document.getElementById('log');
|
|
var div = document.querySelector('div');
|
|
var eventLogs = [];
|
|
|
|
function logEvent(event) {
|
|
eventLogs.push(event.type);
|
|
log.innerText += event.type + '\n';
|
|
}
|
|
|
|
div.addEventListener('dragstart', logEvent, false);
|
|
div.addEventListener('dragend', logEvent, false);
|
|
div.addEventListener('drop', logEvent, false);
|
|
|
|
if (window.eventSender) {
|
|
testRunner.dumpAsText();
|
|
|
|
div.focus();
|
|
getSelection().collapse(div, 0);
|
|
getSelection().modify('extend', 'forward', 'word');
|
|
|
|
var y = div.offsetTop + div.offsetHeight / 2;
|
|
eventSender.dragMode = true;
|
|
eventSender.mouseMoveTo(div.offsetLeft + div.firstChild.offsetWidth / 5, y);
|
|
eventSender.mouseDown();
|
|
eventSender.leapForward(500);
|
|
eventSender.mouseMoveTo(div.offsetLeft + div.firstChild.offsetWidth * 4 / 5, y);
|
|
eventSender.mouseUp();
|
|
|
|
div.style.display = 'none'; // The resultant text will be different depending on font metrics so hide it.
|
|
|
|
log.innerHTML += '\n' + (eventLogs.join('') == ['dragstart', 'drop', 'dragend'].join('') ? 'PASS' : 'FAIL');
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html> |