diff options
Diffstat (limited to 'tests')
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) { |