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

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java

Issue 2839993002: [Android] Adding Smart GO/NEXT feature in Chrome (Closed)
Patch Set: Added inputType check in ImeTest 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 side-by-side diff with in-line comments
Download patch
Index: content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
index edf7101d03a303cd8b575a15d08d6ac4c4517249..886d3a9a83ab98b4826ec3fa382b0d660bc00715 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
@@ -416,6 +416,60 @@ public class ImeTest {
Assert.assertEquals(5, mRule.getConnectionFactory().getOutAttrs().initialSelEnd);
}
+ private int getImeActions() {
Changwan Ryu 2017/05/11 22:57:13 private static int getImeAction(EditorInfo editorI
AKVT 2017/05/12 13:26:25 Done.
+ return mRule.getInputMethodManagerWrapper().getImeOptions() & EditorInfo.IME_MASK_ACTION;
+ }
+
+ private int getInputType() {
Changwan Ryu 2017/05/11 22:57:13 remove
AKVT 2017/05/12 13:26:25 Done.
+ return mRule.getInputMethodManagerWrapper().getInputType();
+ }
+
+ @Test
+ @SmallTest
+ @Feature({"TextInput", "Main"})
+ public void testAdvanceFocusNextAndPrevious() throws Exception {
Changwan Ryu 2017/05/11 22:57:13 I suggest the following structure: public voi
AKVT 2017/05/12 13:26:25 Done. Thanks for the detailed code.
+ // Forward and backward focus in form2
+ mRule.focusElement("textarea");
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ Assert.assertTrue((EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE & getInputType()) != 0);
+
+ // Forward direction focus
+ mRule.performEditorAction(EditorInfo.IME_ACTION_NEXT);
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ mRule.performEditorAction(EditorInfo.IME_ACTION_NEXT);
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ mRule.performEditorAction(EditorInfo.IME_ACTION_NEXT);
+ Assert.assertTrue((EditorInfo.IME_ACTION_NEXT & getImeActions()) != 0);
+ mRule.performEditorAction(EditorInfo.IME_ACTION_NEXT);
+ Assert.assertTrue((EditorInfo.IME_ACTION_NEXT & getImeActions()) != 0);
+ mRule.performEditorAction(EditorInfo.IME_ACTION_NEXT);
+ // We have reached a multi-line contenteditable element now.
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ Assert.assertTrue((EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE & getInputType()) != 0);
+ // Now we have reached the last element of the form, hence focus won't change after issuing
+ // NEXT.
+ mRule.performEditorAction(EditorInfo.IME_ACTION_NEXT);
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ Assert.assertTrue((EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE & getInputType()) != 0);
+
+ // Backward direction focus
+ mRule.performEditorAction(EditorInfo.IME_ACTION_PREVIOUS);
+ Assert.assertTrue((EditorInfo.IME_ACTION_NEXT & getImeActions()) != 0);
+ mRule.performEditorAction(EditorInfo.IME_ACTION_PREVIOUS);
+ Assert.assertTrue((EditorInfo.IME_ACTION_NEXT & getImeActions()) != 0);
+ mRule.performEditorAction(EditorInfo.IME_ACTION_PREVIOUS);
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ mRule.performEditorAction(EditorInfo.IME_ACTION_PREVIOUS);
+ // We have reached a multi-line textarea element now.
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ Assert.assertTrue((EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE & getInputType()) != 0);
+ // Now we have reached the first element of the form, hence focus won't change after issuing
+ // PREVIOUS.
+ mRule.performEditorAction(EditorInfo.IME_ACTION_PREVIOUS);
+ Assert.assertEquals(EditorInfo.IME_ACTION_NONE, getImeActions());
+ Assert.assertTrue((EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE & getInputType()) != 0);
+ }
+
@Test
@SmallTest
@DisabledTest(message = "crbug.com/694812")

Powered by Google App Engine
This is Rietveld 408576698