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

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

Issue 2768303003: [InputEvent] Allow transpose and yank in plain-text field (Closed)
Patch Set: Created 3 years, 9 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 <title>InputEvent: macOS Yank</title> 1 <title>InputEvent: macOS Yank</title>
2 <script src="../../../resources/testharness.js"></script> 2 <script src="../../../resources/testharness.js"></script>
3 <script src="../../../resources/testharnessreport.js"></script> 3 <script src="../../../resources/testharnessreport.js"></script>
4 <div id="editable" contenteditable></div> 4 <div id="editable" contenteditable></div>
5 <textarea id="txt"></textarea>
5 <script> 6 <script>
6 test(() => { 7 test(() => {
7 assert_not_equals(window.eventSender, undefined, 'This test requires eventSe nder.'); 8 assert_not_equals(window.eventSender, undefined, 'This test requires eventSe nder.');
8 assert_not_equals(window.testRunner, undefined, 'This test requires testRunn er.'); 9 assert_not_equals(window.testRunner, undefined, 'This test requires testRunn er.');
9 10
10 let eventRecorder = ''; 11 let eventRecorder = '';
11 document.addEventListener('beforeinput', event => { 12 document.addEventListener('beforeinput', event => {
12 eventRecorder += `beforeinput-${event.inputType}-${event.data}-`; 13 eventRecorder += `beforeinput-${event.inputType}-${event.data}-`;
13 }); 14 });
14 document.addEventListener('input', event => { 15 document.addEventListener('input', event => {
15 eventRecorder += `input-${event.inputType}-${event.data}-`; 16 eventRecorder += `input-${event.inputType}-${event.data}-`;
16 }); 17 });
17 18
18 const editable = document.getElementById('editable'); 19 const editable = document.getElementById('editable');
19 editable.innerHTML = 'abc'; 20 editable.innerHTML = 'abc';
20 editable.focus(); 21 editable.focus();
21 const selection = window.getSelection(); 22 const selection = window.getSelection();
22 selection.collapse(editable, 1); // End of first line. 23 selection.collapse(editable, 1); // End of first line.
23 24
24 // Delete a word to setup kill buffer. 25 // Delete a word to setup kill buffer.
25 eventSender.keyDown('Backspace', ['altKey']); 26 eventSender.keyDown('Backspace', ['altKey']);
26 assert_equals(editable.innerHTML, ''); 27 assert_equals(editable.innerHTML, '');
27 28
28 // Test Yank. 29 // Test Yank.
29 eventRecorder = ''; 30 eventRecorder = '';
30 testRunner.execCommand('yank'); 31 testRunner.execCommand('yank');
31 assert_equals(editable.innerHTML, 'abc'); 32 assert_equals(editable.innerHTML, 'abc');
32 assert_equals(eventRecorder, 'beforeinput-insertFromYank-abc-input-insertFro mYank-abc-'); 33 assert_equals(eventRecorder, 'beforeinput-insertFromYank-abc-input-insertFro mYank-abc-');
33 }); 34 }, 'Yank on contenteditable');
35
36 test(() => {
37 assert_not_equals(window.eventSender, undefined, 'This test requires eventSe nder.');
38 assert_not_equals(window.testRunner, undefined, 'This test requires testRunn er.');
39
40 let eventRecorder = '';
41 document.addEventListener('beforeinput', event => {
42 eventRecorder += `beforeinput-${event.inputType}-${event.data}-`;
43 });
44 document.addEventListener('input', event => {
45 eventRecorder += `input-${event.inputType}-${event.data}-`;
46 });
47
48 const txt = document.getElementById('txt');
49 txt.value = 'abc';
50 txt.focus();
51 txt.setSelectionRange(3, 3); // End of first line.
52
53 // Delete a word to setup kill buffer.
54 eventSender.keyDown('Backspace', ['altKey']);
55 assert_equals(txt.value, '');
56
57 // Test Yank.
58 testRunner.execCommand('undo'); // Execute undo to close last typing command .
59 eventRecorder = '';
60 testRunner.execCommand('yank');
61 assert_equals(txt.value, 'abc');
62 assert_equals(eventRecorder, 'beforeinput-insertFromYank-abc-input-insertFro mYank-abc-');
63 }, 'Yank on <textarea>');
34 </script> 64 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698