aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java130
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java11
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java4
3 files changed, 138 insertions, 7 deletions
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
index c2408c9c5..dc098db1e 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
@@ -34,6 +34,26 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED);
}
+ // Chording input in shifted.
+ public void testChordingShifted() {
+ // Press shift key, enter alphabet shifted.
+ pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
+
+ // Press shift key and hold, enter into choring shift state.
+ pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+ // Press/release letter key.
+ chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
+ // Release shift key, switch back to alphabet shifted.
+ releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+
+ // Press "?123" key and hold, enter into choring symbols state.
+ pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED);
+ // Press/release symbol letter key.
+ chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
+ // Release "123?" key, switch back to alphabet shift unshifted.
+ releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED);
+ }
+
// Chording input in shift locked.
public void testChordingShiftLocked() {
// Long press shift key, enter alphabet shift locked.
@@ -240,4 +260,114 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
// Release shift key
releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED);
}
+
+ // Multi touch input in manual shifted.
+ public void testMultiTouchManualShifted() {
+ // Press/release shift key, enter into alphabet shifted.
+ pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
+
+ // Press 'X' key and hold
+ pressKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Press 'z' key and hold, switch back to alphabet unshifted.
+ chordingPressKey('z', ALPHABET_UNSHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_UNSHIFTED);
+ // Release 'z' key
+ releaseKey('z', ALPHABET_UNSHIFTED);
+ }
+
+ // Multi touch input in automatic upper case.
+ public void testMultiTouchAutomaticUpperCase() {
+ // Set auto word caps mode on.
+ setAutoCapsMode(CAP_MODE_WORDS);
+ // Update shift state with auto caps enabled.
+ pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
+
+ // Press 'X' key and hold
+ pressKey('X', ALPHABET_AUTOMATIC_SHIFTED);
+ // Press 'z' key and hold, switch back to alphabet unshifted.
+ chordingPressKey('z', ALPHABET_UNSHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_UNSHIFTED);
+ // Release 'z' key
+ releaseKey('z', ALPHABET_UNSHIFTED);
+ }
+
+ // Multi touch input in capitalize character mode.
+ public void testMultiTouchCapModeCharacter() {
+ // Set auto character caps mode on.
+ setAutoCapsMode(CAP_MODE_CHARACTERS);
+ // Update shift state with auto caps enabled.
+ pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
+
+ // Press 'X' key and hold
+ pressKey('X', ALPHABET_AUTOMATIC_SHIFTED);
+ // Press 'Z' key and hold, stay in automatic shifted mode.
+ chordingPressKey('Z', ALPHABET_AUTOMATIC_SHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_AUTOMATIC_SHIFTED);
+ // Release 'Z' key
+ releaseKey('Z', ALPHABET_AUTOMATIC_SHIFTED);
+ }
+
+ // Multi touch shift chording input in manual shifted.
+ public void testMultiTouchShiftChordingManualShifted() {
+ // Press/release shift key, enter into alphabet shifted.
+ pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
+
+ // Press shift key and hold, stays in alphabet shifted.
+ pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+ // Press 'X' key and hold
+ chordingPressKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Press 'Z' key and hold, stays in alphabet shifted.
+ chordingPressKey('Z', ALPHABET_MANUAL_SHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Release 'Z' key
+ releaseKey('Z', ALPHABET_MANUAL_SHIFTED);
+ // Release shift key.
+ releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+ }
+
+ // Multi touch shift chording input in automatic upper case.
+ public void testMultiTouchShiftChordingAutomaticUpperCase() {
+ // Set auto word caps mode on.
+ setAutoCapsMode(CAP_MODE_WORDS);
+ // Update shift state with auto caps enabled.
+ pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
+
+ // Press shift key and hold, switch to alphabet shifted.
+ pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+ // Press 'X' key and hold
+ chordingPressKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Press 'Z' key and hold, stays in alphabet shifted.
+ chordingPressKey('Z', ALPHABET_MANUAL_SHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Release 'Z' key
+ releaseKey('Z', ALPHABET_MANUAL_SHIFTED);
+ // Release shift key.
+ releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED);
+ }
+
+ // Multi touch shift chording input in capitalize character mode.
+ public void testMultiTouchShiftChordingCapModeCharacter() {
+ // Set auto character caps mode on.
+ setAutoCapsMode(CAP_MODE_CHARACTERS);
+ // Update shift state with auto caps enabled.
+ pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
+
+ // Press shift key and hold, switch to alphabet shifted.
+ pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+ // Press 'X' key and hold
+ chordingPressKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Press 'Z' key and hold, stay in automatic shifted mode.
+ chordingPressKey('Z', ALPHABET_MANUAL_SHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Release 'Z' key
+ releaseKey('Z', ALPHABET_MANUAL_SHIFTED);
+ // Release shift key.
+ releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED);
+ }
}
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
index bbe0dbde5..9472a1fe5 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
@@ -64,14 +64,14 @@ public class KeyboardStateTestsBase extends AndroidTestCase
assertLayout(afterRotate, mSwitcher.getLayoutId());
}
- private void pressKeyWithoutTimerExpire(int code, int afterPress) {
- mSwitcher.onPressKey(code);
+ private void pressKeyWithoutTimerExpire(int code, boolean isSinglePointer, int afterPress) {
+ mSwitcher.onPressKey(code, isSinglePointer);
assertLayout(afterPress, mSwitcher.getLayoutId());
}
public void pressKey(int code, int afterPress) {
mSwitcher.expireDoubleTapTimeout();
- pressKeyWithoutTimerExpire(code, afterPress);
+ pressKeyWithoutTimerExpire(code, true, afterPress);
}
public void releaseKey(int code, int afterRelease) {
@@ -86,7 +86,8 @@ public class KeyboardStateTestsBase extends AndroidTestCase
}
public void chordingPressKey(int code, int afterPress) {
- pressKey(code, afterPress);
+ mSwitcher.expireDoubleTapTimeout();
+ pressKeyWithoutTimerExpire(code, false, afterPress);
}
public void chordingReleaseKey(int code, int afterRelease) {
@@ -114,7 +115,7 @@ public class KeyboardStateTestsBase extends AndroidTestCase
}
public void secondPressAndReleaseKey(int code, int afterPress, int afterRelease) {
- pressKeyWithoutTimerExpire(code, afterPress);
+ pressKeyWithoutTimerExpire(code, true, afterPress);
releaseKey(code, afterRelease);
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java b/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
index 485ea61e7..dd4caadf1 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
@@ -174,8 +174,8 @@ public class MockKeyboardSwitcher implements KeyboardState.SwitchActions {
mState.onSaveKeyboardState();
}
- public void onPressKey(int code) {
- mState.onPressKey(code);
+ public void onPressKey(int code, boolean isSinglePointer) {
+ mState.onPressKey(code, isSinglePointer, mAutoCapsState);
}
public void onReleaseKey(int code, boolean withSliding) {