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

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

Issue 2457523003: Support 'insertReplacementText' for spellcheck (Closed)
Patch Set: fix for yosin's comments Created 4 years, 1 month 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
Index: third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-spellcheck.html
diff --git a/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-spellcheck.html b/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-spellcheck.html
new file mode 100644
index 0000000000000000000000000000000000000000..2c987f68b5722e9f7f10b4774957730eb0827ffb
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-spellcheck.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="../../../editing/assert_selection.js"></script>
+
+<script>
+test(function () {
+ assert_not_equals(window.eventSender,
+ undefined,
+ 'This test requires eventSender.');
+ assert_not_equals(window.internals,
+ undefined,
+ 'This test requires internals.');
+
+ assert_selection(
+ '<div contenteditable="true" id="editable">|appla^ </div>',
+ selection => {
+ var document = selection.document;
+ internals.setSpellingMarker(document);
+ var editable = document.getElementById("editable");
+
+ var handler = function(event) {
+ assert_equals(event.inputType, "insertReplacementText");
+ assert_equals(event.dataTransfer.getData("text/plain"), "apple");
+ assert_equals(event.getTargetRanges().length, 1);
+ editable.removeEventListener('beforeinput', handler);
+ };
+ editable.addEventListener('beforeinput', handler);
+
+ internals.replaceMisspelled(document, "apple");
+ },
+ '<div contenteditable="true" id="editable">apple| </div>'
+ );
+}, "spellcheck-replace-in-contenteditable");
+
+test(function () {
+ assert_not_equals(window.eventSender,
+ undefined,
+ 'This test requires eventSender.');
+ assert_not_equals(window.internals,
+ undefined,
+ 'This test requires internals.');
+
+ assert_selection(
+ '<textarea id="ta">^appla| </textarea>',
+ selection => {
+ console.log(selection.toString()); // selection is empty
chaopeng 2016/11/02 20:45:25 Hi Yosin, I changed the test to assert selection.
chongz 2016/11/03 15:48:34 I'm not exactly sure how |assert_selection()| work
yosin_UTC9 2016/11/08 04:34:27 I'm now updating assert_selection() to support INP
yosin_UTC9 2016/11/09 05:25:54 assert_selection() with TEXTAREA http://crrev.com/
+ var document = selection.document;
+ internals.setSpellingMarker(document);
+ var textarea = document.getElementById("ta");
+
+ var handler = function(event) {
+ assert_equals(event.inputType, "insertReplacementText");
+ assert_equals(event.data, "apple");
+ assert_equals(event.getTargetRanges().length, 0);
+ textarea.removeEventListener('beforeinput', handler);
+ };
+ textarea.addEventListener('beforeinput', handler);
+
+ internals.replaceMisspelled(document, "apple");
+ },
+ '<textarea id="ta">apple| </textarea>'
+ );
+}, "spellcheck-replace-in-input");
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698