Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2972ccb8 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Add multi touch and shift chording unit tests

Bug: 6501446
Change-Id: Iac423d152702241adae77fe1c343541d70608269
parent fd08b439
Loading
Loading
Loading
Loading
+132 −0
Original line number Diff line number Diff line
@@ -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,116 @@ 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);
        // TODO: The following test fails due to a bug. Temporarily commented out.
//        // 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);
        // TODO: The following test fails due to a bug. Temporarily commented out.
//        // 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);
    }
}