fix ArrowKeyMovementMethodTest KeyEvent inconsistencies
The KeyEvents used in various ArrowKeyMovementMethod tests were inconsistent:
- KeyEvent.ACTION_UP sent to onKeyDown()
- meta state in KeyEvent does not match meta state in MetaKeyKeyListener
This commit should correct all of those situations.
Bug: 13591495
Change-Id: Ifcbfb3ec2d181e6d2db5b570dc466e0fa9c8a758
(cherry picked from commit 1042d9c38f13e274e709b47f9bb905a392dc6f11)
diff --git a/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java b/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java
index 1d8a032..9d3cbc7 100644
--- a/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java
+++ b/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java
@@ -175,26 +175,30 @@
@UiThreadTest
public void testOnKeyDownWithKeyCodeUp() {
+ // shift+alt tests
+ KeyEvent shiftAltEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP,
+ 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
+
// first line
// second |line
// last line
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressBothShiftAlt();
- KeyEvent event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_UP, 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_UP, event));
+ KeyEvent.KEYCODE_DPAD_UP, shiftAltEvent));
// |first line
// second |line
// last line
assertSelection(SPACE_IN_2ND_LINE, 0);
+ // shift tests
+ KeyEvent shiftEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP, 0,
+ KeyEvent.META_SHIFT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressShift();
- event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_UP, 0, KeyEvent.META_SHIFT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_UP, event));
+ KeyEvent.KEYCODE_DPAD_UP, shiftEvent));
// first lin|e
// second |line
// last line
@@ -205,37 +209,40 @@
pressShift();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_UP, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_UP)));
+ KeyEvent.KEYCODE_DPAD_UP, shiftEvent));
// |first line
// second |line
// last line
assertSelection(SPACE_IN_2ND_LINE, 0);
+ // alt tests
+ KeyEvent altEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP, 0,
+ KeyEvent.META_ALT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressAlt();
- event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_UP, 0, KeyEvent.META_ALT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_UP, event));
+ KeyEvent.KEYCODE_DPAD_UP, altEvent));
// |first line
// second line
// last line
assertSelection(0);
+ // no-meta tests
+ KeyEvent noMetaEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP,
+ 0, 0);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
MetaKeyKeyListener.resetMetaState(mEditable);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_UP, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_UP)));
+ KeyEvent.KEYCODE_DPAD_UP, noMetaEvent));
// first lin|e
// second line
// last line
assertSelection(correspondingIn1stLine);
assertFalse(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_UP, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_UP)));
+ KeyEvent.KEYCODE_DPAD_UP, noMetaEvent));
// first lin|e
// second line
// last line
@@ -244,24 +251,30 @@
@UiThreadTest
public void testOnKeyDownWithKeyCodeDown() {
+ // shift+alt tests
+ KeyEvent shiftAltEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
+ KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
+
// first line
// second |line
// last line
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressBothShiftAlt();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_DOWN, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN)));
+ KeyEvent.KEYCODE_DPAD_DOWN, shiftAltEvent));
// first line
// second |line
// last line|
assertSelection(SPACE_IN_2ND_LINE, END_OF_ALL_TEXT);
+ // shift tests
+ KeyEvent shiftEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN,
+ 0, KeyEvent.META_SHIFT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressShift();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_DOWN, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN)));
+ KeyEvent.KEYCODE_DPAD_DOWN, shiftEvent));
// first line
// second |line
// last lin|e
@@ -272,36 +285,40 @@
pressShift();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_DOWN, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN)));
+ KeyEvent.KEYCODE_DPAD_DOWN, shiftEvent));
// first line
// second |line
// last line|
assertSelection(SPACE_IN_2ND_LINE, END_OF_ALL_TEXT);
+ // alt tests
+ KeyEvent altEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN, 0,
+ KeyEvent.META_ALT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressAlt();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_DOWN, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN)));
+ KeyEvent.KEYCODE_DPAD_DOWN, altEvent));
// first line
// second line
// last line|
assertSelection(END_OF_ALL_TEXT);
+ // no-meta tests
+ KeyEvent noMetaEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN,
+ 0, 0);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
MetaKeyKeyListener.resetMetaState(mEditable);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_DOWN, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN)));
+ KeyEvent.KEYCODE_DPAD_DOWN, noMetaEvent));
// first line
// second line
// last lin|e
assertSelection(correspondingIn3rdLine);
assertFalse(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_DOWN, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN)));
+ KeyEvent.KEYCODE_DPAD_DOWN, noMetaEvent));
// first line
// second line
// last lin|e
@@ -310,15 +327,17 @@
@UiThreadTest
public void testOnKeyDownWithKeyCodeLeft() {
+ // shift+alt tests
+ KeyEvent shiftAltEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
+ KeyEvent.KEYCODE_DPAD_LEFT, 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
+
// first line
// second |line
// last line
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressBothShiftAlt();
- KeyEvent event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_LEFT, 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, event));
+ KeyEvent.KEYCODE_DPAD_LEFT, shiftAltEvent));
// first line
// |second |line
// last line
@@ -326,18 +345,20 @@
pressBothShiftAlt();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, event));
+ KeyEvent.KEYCODE_DPAD_LEFT, shiftAltEvent));
// first line
// |second |line
// last line
assertSelection(SPACE_IN_2ND_LINE, START_OF_2ND_LINE);
+ // shift tests
+ KeyEvent shiftEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT,
+ 0, KeyEvent.META_SHIFT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressShift();
- event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_LEFT, 0, KeyEvent.META_SHIFT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, event));
+ KeyEvent.KEYCODE_DPAD_LEFT, shiftEvent));
// first line
// second| |line
// last line
@@ -345,19 +366,20 @@
pressShift();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_LEFT)));
+ KeyEvent.KEYCODE_DPAD_LEFT, shiftEvent));
// first line
// secon|d |line
// last line
assertSelection(SPACE_IN_2ND_LINE, SPACE_IN_2ND_LINE - 2);
+ // alt tests
+ KeyEvent altEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT, 0,
+ KeyEvent.META_ALT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressAlt();
- event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_LEFT, 0, KeyEvent.META_ALT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, event));
+ KeyEvent.KEYCODE_DPAD_LEFT, altEvent));
// first line
// |second line
// last line
@@ -365,17 +387,20 @@
pressAlt();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, event));
+ KeyEvent.KEYCODE_DPAD_LEFT, altEvent));
// first line
// |second line
// last line
assertSelection(START_OF_2ND_LINE);
+ // no-meta tests
+ KeyEvent noMetaEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT,
+ 0, 0);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
MetaKeyKeyListener.resetMetaState(mEditable);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_LEFT)));
+ KeyEvent.KEYCODE_DPAD_LEFT, noMetaEvent));
// first line
// second| line
// last line
@@ -386,8 +411,7 @@
// |second line
// last line
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_LEFT, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_LEFT)));
+ KeyEvent.KEYCODE_DPAD_LEFT, noMetaEvent));
// first line|
// second line
// last line
@@ -396,15 +420,17 @@
@UiThreadTest
public void testOnKeyDownWithKeyCodeRight() {
+ // shift+alt tests
+ KeyEvent shiftAltEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
+ KeyEvent.KEYCODE_DPAD_RIGHT, 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
+
// first line
// second |line
// last line
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressBothShiftAlt();
- KeyEvent event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_RIGHT, 0, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, event));
+ KeyEvent.KEYCODE_DPAD_RIGHT, shiftAltEvent));
// first line
// second |line|
// last line
@@ -412,18 +438,20 @@
pressBothShiftAlt();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, event));
+ KeyEvent.KEYCODE_DPAD_RIGHT, shiftAltEvent));
// first line
// second |line|
// last line
assertSelection(SPACE_IN_2ND_LINE, END_OF_2ND_LINE);
+ // shift tests
+ KeyEvent shiftEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT,
+ 0, KeyEvent.META_SHIFT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressShift();
- event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_RIGHT, 0, KeyEvent.META_SHIFT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, event));
+ KeyEvent.KEYCODE_DPAD_RIGHT, shiftEvent));
// first line
// second |l|ine
// last line
@@ -431,18 +459,20 @@
pressShift();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, event));
+ KeyEvent.KEYCODE_DPAD_RIGHT, shiftEvent));
// first line
// second |li|ne
// last line
assertSelection(SPACE_IN_2ND_LINE, SPACE_IN_2ND_LINE + 2);
+ // alt tests
+ KeyEvent altEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT,
+ 0, KeyEvent.META_ALT_ON);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
pressAlt();
- event = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_RIGHT, 0, KeyEvent.META_ALT_ON);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, event));
+ KeyEvent.KEYCODE_DPAD_RIGHT, altEvent));
// first line
// second line|
// last line
@@ -450,17 +480,20 @@
pressAlt();
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, event));
+ KeyEvent.KEYCODE_DPAD_RIGHT, altEvent));
// first line
// second line|
// last line
assertSelection(END_OF_2ND_LINE);
+ // no-meta tests
+ KeyEvent noMetaEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
+ KeyEvent.KEYCODE_DPAD_RIGHT, 0, 0);
+
Selection.setSelection(mEditable, SPACE_IN_2ND_LINE);
MetaKeyKeyListener.resetMetaState(mEditable);
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_RIGHT)));
+ KeyEvent.KEYCODE_DPAD_RIGHT, noMetaEvent));
// first line
// second l|ine
// last line
@@ -471,8 +504,7 @@
// second line|
// last line
assertTrue(mArrowKeyMovementMethod.onKeyDown(mTextView, mEditable,
- KeyEvent.KEYCODE_DPAD_RIGHT, new KeyEvent(KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_RIGHT)));
+ KeyEvent.KEYCODE_DPAD_RIGHT, noMetaEvent));
// first line
// second line
// |last line