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

Unified Diff: third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-transpose.html

Issue 2779813002: [InputEvent] Don't modify selection when transpose was canceled (Closed)
Patch Set: yosin's review: Use const& Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/EditingUtilities.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-transpose.html
diff --git a/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-transpose.html b/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-transpose.html
index b87a4bd2edfa76190f15e224ad3cae333420ad77..48ca2fb17d4eef8c94b73698d2bdb1a6b78f01fb 100644
--- a/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-transpose.html
+++ b/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-transpose.html
@@ -1,6 +1,7 @@
<title>InputEvent: macOS Transpose</title>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
+<script src='../../../editing/assert_selection.js'></script>
<div id="editable" contenteditable></div>
<textarea id="txt"></textarea>
<script>
@@ -9,7 +10,8 @@ test(() => {
let eventRecorder = '';
document.addEventListener('beforeinput', event => {
- eventRecorder += `beforeinput-${event.inputType}-${event.data}-`;
+ const range = event.getTargetRanges()[0];
+ eventRecorder += `beforeinput-${event.inputType}-${event.data}-${range.startOffset}-${range.endOffset}-`;
});
document.addEventListener('input', event => {
eventRecorder += `input-${event.inputType}`;
@@ -25,7 +27,7 @@ test(() => {
eventRecorder = '';
testRunner.execCommand('transpose');
assert_equals(editable.innerHTML, 'acb');
- assert_equals(eventRecorder, 'beforeinput-insertTranspose-cb-input-insertTranspose');
+ assert_equals(eventRecorder, 'beforeinput-insertTranspose-cb-1-3-input-insertTranspose');
}, 'Transpose on contenteditable');
test(() => {
@@ -50,4 +52,34 @@ test(() => {
assert_equals(txt.value, 'acb');
assert_equals(eventRecorder, 'beforeinput-insertTranspose-cb-input-insertTranspose');
}, 'Transpose on <textarea>');
+
+test(() => {
+ assert_not_equals(window.testRunner, undefined, 'This test requires testRunner.');
+
+ assert_selection(
+ '<div contenteditable id="editable1">a|bc</div>',
+ selection => {
+ const editable1 = selection.document.getElementById('editable1');
+ editable1.addEventListener('beforeinput', event => {
+ event.preventDefault();
+ });
+ testRunner.execCommand('transpose');
+ },
+ '<div contenteditable id="editable1">a|bc</div>');
+}, 'Transpose should not modify selection when canceled');
+
+test(() => {
+ assert_not_equals(window.testRunner, undefined, 'This test requires testRunner.');
+
+ assert_selection(
+ '<div contenteditable id="editable1">a|bc</div>',
+ selection => {
+ const editable1 = selection.document.getElementById('editable1');
+ editable1.addEventListener('beforeinput', event => {
+ selection.collapse(editable1, 1); // End of first line.
+ });
+ testRunner.execCommand('transpose');
+ },
+ '<div contenteditable id="editable1">acb|</div>');
+}, 'Transpose should still apply when selection changed');
</script>
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/EditingUtilities.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698