4 <p>This tests dragging text within the same contenteditable element. To manually test, move the target below to the destination.
5 You should see source:dragstart, destination:drop, and source:dragend in the log.</p>
6 <div id="source" contenteditable><span>Drag and drop this <span id="target">target</span> from here</div>
7 <div id="destination" contenteditable><span>to here, the_destination.</span></div>
13 var log = document.getElementById('log');
14 var source = document.getElementById('source');
15 var destination = document.getElementById('destination');
18 function attachLogger(element) {
19 var logger = function(event) {
20 var text = element.id + ':' + event.type;
22 log.innerHTML += text + '\n';
24 element.addEventListener('dragstart', logger, false);
25 element.addEventListener('dragend', logger, false);
26 element.addEventListener('drop', logger, false);
30 attachLogger(destination);
32 if (window.eventSender) {
33 layoutTestController.dumpAsText();
36 var target = document.getElementById('target');
37 getSelection().selectAllChildren(target);
39 function mouseMoveToCenterOfElement(element) {
40 eventSender.mouseMoveTo(element.offsetLeft + element.offsetWidth / 2, element.offsetTop + element.offsetHeight / 2);
43 eventSender.dragMode = true;
44 mouseMoveToCenterOfElement(target);
45 eventSender.mouseDown();
46 eventSender.leapForward(500);
47 mouseMoveToCenterOfElement(destination);
48 eventSender.mouseUp();
50 source.style.display = 'none';
51 destination.style.display = 'none';
53 log.innerHTML += '\n' + (eventLogs.join('') == ['source:dragstart', 'destination:drop', 'source:dragend'].join('') ? 'PASS' : 'FAIL');