Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(381)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html

Issue 2851363003: [InputEvent] Update EndingSelection when appending UndoStep (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>InputEvent: beforeinput for Drag and Drop</title> 4 <title>InputEvent: beforeinput for Drag and Drop</title>
5 <script src="../../../resources/testharness.js"></script> 5 <script src="../../../resources/testharness.js"></script>
6 <script src="../../../resources/testharnessreport.js"></script> 6 <script src="../../../resources/testharnessreport.js"></script>
7 <style> 7 <style>
8 div { 8 div {
9 width: 100px; 9 width: 100px;
10 height: 100px; 10 height: 100px;
11 } 11 }
12 </style> 12 </style>
13 </head> 13 </head>
14 <body> 14 <body>
15 <div id="editable1" contenteditable><b id="boldtext">EditableText</b></div> 15 <div id="editable1" contenteditable><b id="boldtext">EditableText</b></div>
16 <div id="editable2" contenteditable></div> 16 <div id="editable2" contenteditable></div>
17 <textarea id="textarea1">Text</textarea> 17 <textarea id="textarea1">Text</textarea>
18 <textarea id="barrier"></textarea> 18 <textarea id="barrier"></textarea>
19 <input id="input_drag">
20 <input id="input_drop">
19 <script> 21 <script>
20 function simulateDragDrop(dragElement, dropElement) { 22 function simulateDragDrop(dragElement, dropElement, start, end) {
21 if (dragElement.select) { 23 if (dragElement.select) {
22 dragElement.select(); 24 if (typeof start === 'undefined' || typeof end === 'undefined') {
25 dragElement.select();
26 } else {
27 dragElement.focus();
28 dragElement.setSelectionRange(start, end);
29 }
23 } else { 30 } else {
24 var selection = window.getSelection(); 31 var selection = window.getSelection();
25 selection.collapse(dragElement, 0); 32 selection.collapse(dragElement, 0);
26 selection.extend(dragElement, 1); 33 selection.extend(dragElement, 1);
27 } 34 }
28 35
29 eventSender.mouseMoveTo(dragElement.offsetLeft + dragElement.offsetWidth / 2 , 36 eventSender.mouseMoveTo(dragElement.offsetLeft + dragElement.offsetWidth / 2 ,
30 dragElement.offsetTop + dragElement.offsetHeight / 2 ); 37 dragElement.offsetTop + dragElement.offsetHeight / 2 );
31 eventSender.mouseDown(); 38 eventSender.mouseDown();
32 eventSender.leapForward(600); 39 eventSender.leapForward(600);
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 298
292 // Testing remove drag target, |editable1| won't receive DOM updates after d isconnected. 299 // Testing remove drag target, |editable1| won't receive DOM updates after d isconnected.
293 editable1.addEventListener('beforeinput', removeEditable1Listener); 300 editable1.addEventListener('beforeinput', removeEditable1Listener);
294 testDragDropEventOrder(editable1, editable2, 301 testDragDropEventOrder(editable1, editable2,
295 ['editable2:drop', 'beforeinput:editable1:deleteByDrag', 'beforeinput:ed itable2:insertFromDrop', 302 ['editable2:drop', 'beforeinput:editable1:deleteByDrag', 'beforeinput:ed itable2:insertFromDrop',
296 'input:editable2:insertFromDrop', 'editable1:dragend']); 303 'input:editable2:insertFromDrop', 'editable1:dragend']);
297 editable1.removeEventListener('beforeinput', removeEditable1Listener); 304 editable1.removeEventListener('beforeinput', removeEditable1Listener);
298 testRunner.execCommand('undo'); 305 testRunner.execCommand('undo');
299 document.body.appendChild(editable1); 306 document.body.appendChild(editable1);
300 }, 'Testing element removed by event handler'); 307 }, 'Testing element removed by event handler');
308
309 test(() => {
310 assert_not_equals(window.eventSender, undefined, 'This test requires eventSe nder.');
311 assert_not_equals(window.testRunner, undefined, 'This test requires testRunn er.');
312
313 const input_drag = document.getElementById('input_drag');
314 const input_drop = document.getElementById('input_drop');
315
316 input_drag.value = "12345678";
yosin_UTC9 2017/05/08 04:01:05 nit: Could you use single-quote since other parts
chongz 2017/05/08 23:37:53 Done.
317 input_drop.value = "4";
318
319 simulateDragDrop(input_drag, input_drop, 1, 8);
320
321 assert_equals(input_drag.value, '1');
322 assert_equals(input_drop.value, '42345678');
323
324 testRunner.execCommand('undo');
325
326 assert_equals(input_drag.value, '12345678');
327 assert_equals(input_drop.value, '4');
328 }, 'Undo drag&drop should update input.value');
301 </script> 329 </script>
302 </body> 330 </body>
303 </html> 331 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698