KeyboardStateMultiTouchTests.java revision d26d63b35d34333a8f6737572b1c306b774eebd0
1/* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy of 6 * the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16 17package com.android.inputmethod.keyboard.internal; 18 19public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase { 20 // Shift key chording input. 21 public void testChording() { 22 // Press shift key and hold, enter into choring shift state. 23 pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); 24 25 // Press/release letter keys. 26 chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 27 chordingPressAndReleaseKey('X', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 28 29 // Release shift key, switch back to alphabet. 30 releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); 31 32 // Press symbols key and hold, enter into choring symbols state. 33 pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); 34 35 // Press/release symbol letter keys. 36 chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 37 chordingPressAndReleaseKey('2', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 38 39 // Release symbols key, switch back to alphabet. 40 releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); 41 } 42 43 // Shift key chording input in shift locked. 44 public void testShiftChordingShiftLocked() { 45 // Long press shift key, enter alphabet shift locked. 46 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 47 48 // Press shift key and hold, enter into choring shift state. 49 pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); 50 51 // Press/release letter keys. 52 chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 53 chordingPressAndReleaseKey('X', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 54 55 // Release shift key, switch back to alphabet shift locked. 56 releaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED); 57 58 // Press symbols key and hold, enter into choring symbols state. 59 pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); 60 61 // Press/release symbol letter keys. 62 chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 63 chordingPressAndReleaseKey('2', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 64 65 // Release symbols key, switch back to alphabet shift locked. 66 releaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED); 67 } 68 69 // Symbols key chording input. 70 public void testSymbolsChording() { 71 // Press/release symbols key, enter symbols. 72 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 73 74 // Press shift key and hold, enter into choring symbols shifted state. 75 pressKey(CODE_SHIFT, SYMBOLS_SHIFTED); 76 77 // Press/release symbols keys. 78 chordingPressAndReleaseKey('1', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 79 chordingPressAndReleaseKey('2', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 80 81 // Release shift key, switch back to symbols. 82 releaseKey(CODE_SHIFT, SYMBOLS_UNSHIFTED); 83 84 // Press "ABC" key and hold, enter into choring alphabet state. 85 pressKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); 86 87 // Press/release letter keys. 88 chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 89 chordingPressAndReleaseKey('b', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 90 91 // Release "ABC" key, switch back to symbols. 92 releaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); 93 } 94 95 // Symbols shifted key chording input in symbol. 96 public void testSymbolsShiftedChording() { 97 // Press/release symbols key, enter symbols. 98 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 99 // Press/release shift key, enter symbols shifted. 100 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 101 102 // Press shift key and hold, enter into chording symbols state. 103 pressKey(CODE_SHIFT, SYMBOLS_UNSHIFTED); 104 105 // Press/release symbol letter keys. 106 chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 107 chordingPressAndReleaseKey('2', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 108 109 // Release shift key, switch back to symbols shifted state. 110 releaseKey(CODE_SHIFT, SYMBOLS_SHIFTED); 111 112 // TODO: This test fails due to bug. 113// // Press "ABC" key and hold, enter into choring alphabet state. 114// pressKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); 115// 116// // Press/release letter keys. 117// chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 118// chordingPressAndReleaseKey('b', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 119// 120// // Release "ABC" key, switch back to symbols. 121// releaseKey(CODE_SYMBOL, SYMBOLS_SHIFTED); 122 } 123 124 // Chording shift key in automatic upper case. 125 public void testAutomaticUpperCaseChording() { 126 // Set auto caps mode on. 127 setAutoCapsMode(AUTO_CAPS); 128 129 // Update shift state with auto caps enabled. 130 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 131 132 // Press shift key and hold, enter into chording shift state. 133 pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); 134 135 // Press/release letter keys. 136 chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 137 138 // Release shift key, switch back to alphabet. 139 releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); 140 } 141 142 // Chording symbol key in automatic upper case. 143 public void testAutomaticUpperCaseChording2() { 144 // Set auto caps mode on. 145 setAutoCapsMode(AUTO_CAPS); 146 147 // Update shift state with auto caps enabled. 148 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 149 150 // Press "123?" key and hold, enter into chording symbols state. 151 pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); 152 153 // Press/release symbol letter keys. 154 chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 155 156 // Release "123?" key, switch back to alphabet. 157 releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); 158 } 159 160 // TODO: Multitouch test 161 162 // TODO: n-Keys roll over test 163} 164