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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/events/inputevents/before-input-ranges.html

Issue 1965543002: [InputEvent] Support |sequence<Range> getRanges()| in 'beforeinput' (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>InputEvent: beforeinput getRanges()</title>
5 <script src="../../../resources/testharness.js"></script>
6 <script src="../../../resources/testharnessreport.js"></script>
7 </head>
8 <body>
9 <p id="sample" contentEditable="true"></p>
10 <div id="log"></div>
11 <script>
12 test(function() {
13 if (!window.eventSender) {
14 document.write('This test requires eventSender');
15 return;
16 }
17
18 // Setup data.
19 var sample = document.getElementById('sample');
20 sample.innerHTML = 'hel<i>lo wo</i><b>rld bar</b>';
21 assert_equals(sample.textContent, 'hello world bar');
22
23 // Move caret right after 'hello world '.
24 var selection = window.getSelection();
25 selection.collapse(sample.firstChild, 0);
26 selection.modify('move', 'forward', 'word');
27 selection.modify('move', 'forward', 'word');
28
29 // Check event for delete-word-backward.
30 var handler = function(event) {
31 var ranges = event.getRanges();
32 assert_equals(ranges.length, 1);
33 var range = ranges[0];
34 assert_equals(range.startOffset, 3);
35 assert_equals(range.startContainer.textContent, 'lo wo');
36 assert_equals(range.endOffset, 4);
37 assert_equals(range.endContainer.textContent, 'rld bar');
38 sample.removeEventListener('beforeinput', handler);
39 };
40 sample.addEventListener('beforeinput', handler);
41
42 // Send delete-word-backward, should delete 'world' across I and B.
43 var isMacOSX = navigator.userAgent.indexOf("Mac OS X") != -1;
44 eventSender.keyDown('backspace', [isMacOSX ? 'altKey' : 'ctrlKey']);
dtapuska 2016/05/12 02:00:09 copyKey can be used and avoid the platform specifi
chongz 2016/05/12 20:53:49 It seems that 'copyKey' is for drag&drop (although
45 assert_equals(sample.textContent, 'hello bar');
46 }, 'Testing getRanges() returns correct range across elements.');
47
48 test(function() {
49 if (!window.eventSender) {
50 document.write('This test requires eventSender');
51 return;
52 }
53
54 // Setup data.
55 var sample = document.getElementById('sample');
56 sample.innerHTML = 'hello';
57
58 // Move caret right after 'hello'.
59 var selection = window.getSelection();
60 selection.collapse(sample.firstChild, 0);
61 selection.modify('move', 'forward', 'word');
62
63 // Check and hold event for delete-character-backward.
64 var lastEvent;
65 var handler = function(event) {
66 lastEvent = event;
67 assert_equals(lastEvent.getRanges().length, 1);
68 sample.removeEventListener('beforeinput', handler);
69 };
70 sample.addEventListener('beforeinput', handler);
71
72 // Send delete-character-backward.
73 eventSender.keyDown('backspace', []);
74 assert_equals(sample.textContent, 'hell');
75 // |getRanges| should be cleared after dispatch.
76 assert_equals(lastEvent.getRanges().length, 0);
77 }, 'Testing getRanges() cleared after dispatch.');
78 </script>
79 </body>
80 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698