KeyboardStateSingleTouchTests.java revision 49bd49c8fbc394d277e89e8d105450d3e2818f50
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 KeyboardStateSingleTouchTests extends KeyboardStateTestsBase { 20 // Shift key in alphabet. 21 public void testShiftAlphabet() { 22 // Press/release shift key, enter into alphabet shifted. 23 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 24 25 // Press/release shift key, back to alphabet. 26 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 27 28 // Press/release shift key, enter into alphabet shifted. 29 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 30 // Press/release letter key, switch back to alphabet. 31 pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 32 } 33 34 // Shift key in symbols. 35 public void testShiftSymbols() { 36 // Press/release "?123" key, enter into symbols. 37 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 38 39 // Press/release "=\<" key, enter into symbols shifted. 40 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 41 42 // Press/release "?123" key, back to symbols. 43 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 44 45 // Press/release "=\<" key, enter into symbols shifted. 46 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 47 // Press/release symbol letter key, remain in symbols shifted. 48 pressAndReleaseKey('1', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 49 } 50 51 // Switching between alphabet and symbols. 52 public void testAlphabetAndSymbols() { 53 // Press/release "?123" key, enter into symbols. 54 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 55 // Press/release "ABC" key, back to alphabet. 56 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 57 // Press/release "?123" key, enter into symbols. 58 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 59 60 // Press/release "=\<" key, enter into symbols shifted. 61 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 62 // Press/release "ABC" key, back to alphabet. 63 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 64 // Press/release "?123" key, back to symbols (not symbols shifted). 65 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 66 } 67 68 // Switching between alphabet shifted and symbols. 69 public void testAlphabetShiftedAndSymbols() { 70 // Press/release shift key, enter into alphabet shifted. 71 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 72 73 // Press/release "?123" key, enter into symbols. 74 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 75 // Press/release "ABC" key, back to alphabet (not alphabet shifted). 76 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 77 78 // Press/release shift key, enter into alphabet shifted. 79 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 80 // Press/release "?123" key, enter into symbols. 81 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 82 // Press/release "=\< key, enter into symbols shifted. 83 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 84 // Press/release "ABC" key, back to alphabet (not alphabet shifted). 85 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 86 } 87 88 // Switching between alphabet shift locked and symbols. 89 public void testAlphabetShiftLockedAndSymbols() { 90 // Long press shift key, enter alphabet shift locked. 91 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 92 93 // Press/release "?123" key, enter into symbols. 94 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 95 // Press/release "ABC" key, back to alphabet shift locked. 96 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 97 // Press/release "?123" key, enter into symbols. 98 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 99 100 // Press/release "=\<" key, enter into symbols shifted. 101 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 102 // Press/release "ABC" key, back to alphabet shift locked. 103 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 104 // Press/release "?123" key, back to symbols (not symbols shifted). 105 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 106 } 107 108 // Automatic switch back to alphabet by space key. 109 public void testSwitchBackBySpace() { 110 // Press/release "?123" key, enter into symbols. 111 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 112 // Enter symbol letter. 113 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 114 // Enter space, switch back to alphabet. 115 pressAndReleaseKey(CODE_SPACE, SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 116 117 // Press/release "?123" key, enter into symbols. 118 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 119 // Press/release "=\<" key, enter into symbols shifted. 120 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 121 // Enter symbol shift letter. 122 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 123 // Enter space, switch back to alphabet. 124 pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_UNSHIFTED); 125 } 126 127 // Automatic switch back to alphabet shift locked test by space key. 128 public void testSwitchBackBySpaceShiftLocked() { 129 // Long press shift key, enter alphabet shift locked. 130 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 131 132 // Press/release "?123" key, enter into symbols. 133 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 134 // Enter symbol letter. 135 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 136 // Enter space, switch back to alphabet shift locked. 137 pressAndReleaseKey(CODE_SPACE, SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 138 139 // Press/release "?123" key, enter into symbols. 140 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 141 // Press/release "=\<" key, enter into symbols shifted. 142 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 143 // Enter symbol shift letter. 144 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 145 // Enter space, switch back to alphabet shift locked. 146 pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_SHIFT_LOCKED); 147 } 148 149 // Automatic switch back to alphabet by registered letters. 150 public void testSwitchBackChar() { 151 // Set switch back chars. 152 final String switchBackSymbols = "'"; 153 final int switchBackCode = switchBackSymbols.codePointAt(0); 154 setLayoutSwitchBackSymbols(switchBackSymbols); 155 loadKeyboard(ALPHABET_UNSHIFTED); 156 157 // Press/release "?123" key, enter into symbols. 158 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 159 // Enter symbol letter. 160 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 161 // Enter switch back letter, switch back to alphabet. 162 pressAndReleaseKey(switchBackCode, SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 163 164 // Press/release "?123" key, enter into symbols. 165 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 166 // Press/release "=\<" key, enter into symbols shifted. 167 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 168 // Enter symbol shift letter. 169 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 170 // Enter switch abck letter, switch back to alphabet. 171 pressAndReleaseKey(switchBackCode, SYMBOLS_SHIFTED, ALPHABET_UNSHIFTED); 172 } 173 174 // Automatic switch back to alphabet shift locked by registered letters. 175 public void testSwitchBackCharShiftLocked() { 176 // Set switch back chars. 177 final String switchBackSymbols = "'"; 178 final int switchBackCode = switchBackSymbols.codePointAt(0); 179 setLayoutSwitchBackSymbols(switchBackSymbols); 180 loadKeyboard(ALPHABET_UNSHIFTED); 181 // Long press shift key, enter alphabet shift locked. 182 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 183 184 // Press/release "?123" key, enter into symbols. 185 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 186 // Enter symbol letter. 187 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 188 // Enter switch back letter, switch back to alphabet shift locked. 189 pressAndReleaseKey(switchBackCode, SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 190 191 // Press/release "?123" key, enter into symbols. 192 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 193 // Press/release "=\<" key, enter into symbols shifted. 194 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 195 // Enter symbol shift letter. 196 pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 197 // Enter switch back letter, switch back to alphabet shift locked. 198 pressAndReleaseKey(switchBackCode, SYMBOLS_SHIFTED, ALPHABET_SHIFT_LOCKED); 199 } 200 201 // Automatic upper case test 202 public void testAutomaticUpperCase() { 203 // Set auto caps mode on. 204 setAutoCapsMode(AUTO_CAPS); 205 // Load keyboard, should be in automatic shifted. 206 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 207 208 // Press/release letter key, switch to alphabet. 209 pressAndReleaseKey('A', ALPHABET_AUTOMATIC_SHIFTED, ALPHABET_UNSHIFTED); 210 // Press/release auto caps trigger letter, should be in automatic shifted. 211 pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 212 213 // Press/release shift key, back to alphabet. 214 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 215 // Press/release letter key, remain in alphabet. 216 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 217 // Press/release auto caps trigger letter, should be in automatic shifted. 218 pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 219 220 // Press/release "?123" key, enter into symbols. 221 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 222 // Press/release symbol letter key, remain in symbols. 223 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 224 // Press/release space, switch back to automatic shifted. 225 pressAndReleaseKey(CODE_SPACE, SYMBOLS_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 226 227 // Press/release "?123" key, enter into symbols. 228 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 229 // Press/release "=\<" key, enter into symbols shifted. 230 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 231 // Press/release symbol shift letter key, remain in symbols shifted. 232 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 233 // Press/release space, switch back to automatic shifted. 234 pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 235 } 236 237 // Long press shift key. 238 // TODO: Move long press recognizing timer/logic into KeyboardState. 239 public void testLongPressShift() { 240 // Long press shift key, enter alphabet shift locked. 241 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 242 243 // Press/release letter key, remain in shift locked. 244 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 245 // Press/release word separator, remain in shift locked. 246 pressAndReleaseKey(CODE_SPACE, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 247 248 // Press/release shift key, back to alphabet. 249 pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 250 251 // Long press shift key, enter alphabet shift locked. 252 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 253 254 // Long press shift key, back to alphabet. 255 longPressShiftKey(ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 256 } 257 258 // Double tap shift key. 259 // TODO: Move double tap recognizing timer/logic into KeyboardState. 260 public void testDoubleTapShift() { 261 // First shift key tap. 262 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 263 // Second shift key tap. 264 // Double tap recognized in LatinKeyboardView.KeyTimerHandler. 265 secondTapShiftKey(ALPHABET_SHIFT_LOCKED); 266 267 // First shift key tap. 268 pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 269 // Second shift key tap. 270 // Second tap is ignored in LatinKeyboardView.KeyTimerHandler. 271 } 272 273 // Update shift state. 274 public void testUpdateShiftState() { 275 // Set auto caps mode off. 276 setAutoCapsMode(NO_AUTO_CAPS); 277 // Load keyboard, should be in alphabet. 278 loadKeyboard(ALPHABET_UNSHIFTED); 279 // Update shift state, remained in alphabet. 280 updateShiftState(ALPHABET_UNSHIFTED); 281 282 // Press/release shift key, enter alphabet shifted. 283 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 284 // Update shift state, back to alphabet. 285 updateShiftState(ALPHABET_UNSHIFTED); 286 287 // Long press shift key, enter alphabet shift locked. 288 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 289 // Update shift state, remained in alphabet shift locked. 290 updateShiftState(ALPHABET_SHIFT_LOCKED); 291 // Long press shift key, back to alphabet. 292 longPressShiftKey(ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 293 294 // Press/release "?123" key, enter into symbols. 295 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 296 // Update shift state, remained in symbols. 297 updateShiftState(SYMBOLS_UNSHIFTED); 298 299 // Press/release "=\<" key, enter symbols shifted. 300 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 301 // Update shift state, remained in symbols shifted. 302 updateShiftState(SYMBOLS_SHIFTED); 303 304 // Set auto caps mode on. 305 setAutoCapsMode(AUTO_CAPS); 306 // Load keyboard, should be in automatic shifted. 307 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 308 // Update shift state, remained in automatic shifted. 309 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 310 311 // Press/release shift key, enter alphabet. 312 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 313 // Press/release shift key, enter alphabet shifted. 314 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 315 // Update shift state, enter to automatic shifted (not alphabet shifted). 316 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 317 318 // Long press shift key, enter alphabet shift locked. 319 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 320 // Update shift state, remained in alphabet shift locked (not automatic shifted). 321 updateShiftState(ALPHABET_SHIFT_LOCKED); 322 // Long press shift key, back to alphabet. 323 longPressShiftKey(ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 324 325 // Load keyboard, should be in automatic shifted. 326 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 327 // Press/release "?123" key, enter into symbols. 328 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 329 // Update shift state, remained in symbols. 330 updateShiftState(SYMBOLS_UNSHIFTED); 331 332 // Press/release "=\<" key, enter symbols shifted. 333 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 334 // Update shift state, remained in symbols shifted. 335 updateShiftState(SYMBOLS_SHIFTED); 336 } 337 338 // Sliding input in alphabet. 339 public void testSlidingAlphabet() { 340 // Alphabet -> shift key + letter -> alphabet. 341 // Press and slide from shift key, enter alphabet shifted. 342 pressAndSlideFromKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 343 // Enter/release letter key, switch back to alphabet. 344 pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 345 346 // Alphabet -> "?123" key + letter -> alphabet. 347 // Press and slide from "123?" key, enter symbols. 348 pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 349 // Enter/release into symbol letter key, switch back to alphabet. 350 pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 351 352 // Alphabet shifted -> shift key + letter -> alphabet. 353 // Press/release shift key, enter alphabet shifted. 354 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 355 // Press and slide from shift key, remain alphabet shifted. 356 pressAndSlideFromKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 357 // Enter/release letter key, switch back to alphabet (not alphabet shifted). 358 pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 359 360 // Alphabet shifted -> "?123" key + letter -> alphabet. 361 // Press/release shift key, enter alphabet shifted. 362 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 363 // Press and slide from "123?" key, enter symbols. 364 pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 365 // Enter/release into symbol letter key, switch back to alphabet (not alphabet shifted). 366 pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 367 368 // Alphabet shift locked -> shift key + letter -> alphabet shift locked. 369 // Long press shift key, enter alphabet shift locked. 370 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 371 // Press and slide from "123?" key, enter symbols. 372 pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 373 // Enter/release into symbol letter key, switch back to alphabet shift locked. 374 pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 375 376 // Alphabet shift locked -> "?123" key + letter -> alphabet shift locked. 377 // Press and slide from shift key, enter alphabet shifted. 378 pressAndSlideFromKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCKED); 379 // Enter/release letter key, switch back to shift locked. 380 pressAndReleaseKey('Z', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 381 } 382 383 // Sliding input in symbols. 384 public void testSlidingSymbols() { 385 // Symbols -> "=\<" key + letter -> symbols. 386 // Press/release "?123" key, enter into symbols. 387 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 388 // Press and slide from shift key, enter symols shifted. 389 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 390 // Enter/release symbol shifted letter key, switch back to symbols. 391 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 392 393 // Symbols -> "ABC" key + letter -> Symbols. 394 // Press and slide from "ABC" key, enter alphabet. 395 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 396 // Enter/release letter key, switch back to symbols. 397 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 398 // Press/release "ABC" key, switch to alphabet. 399 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 400 401 // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols -> 402 // alphabet. 403 // Load keyboard 404 loadKeyboard(ALPHABET_UNSHIFTED); 405 // Press/release shift key, enter alphabet shifted. 406 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 407 // Press/release "?123" key, enter into symbols. 408 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 409 // Press and slide from "ABC" key. 410 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 411 // Enter/release letter key, switch back to symbols. 412 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 413 // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 414 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 415 416 // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols -> 417 // alphabet shift locked. 418 // Load keyboard 419 loadKeyboard(ALPHABET_UNSHIFTED); 420 // Long press shift key, enter alphabet shift locked. 421 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 422 // Press/release "?123" key, enter into symbols. 423 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 424 // Press and slide from "ABC" key, enter alphabet shift locked. 425 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 426 // Enter/release letter key, switch back to symbols. 427 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_UNSHIFTED); 428 // Press/release "ABC" key, switch to alphabet shift locked. 429 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 430 431 // Alphabet shift locked -> symbols -> "=\<" key + letter -> symbols -> 432 // alphabet shift locked. 433 // Load keyboard 434 loadKeyboard(ALPHABET_UNSHIFTED); 435 // Long press shift key, enter alphabet shift locked. 436 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 437 // Press/release "?123" key, enter into symbols. 438 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 439 // Press and slide from "=\<" key, enter symbols shifted. 440 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 441 // Enter/release symbols shift letter key, switch back to symbols. 442 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 443 // Press/release "ABC" key, switch to alphabet shift locked. 444 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 445 } 446 447 // Sliding input in symbols shifted. 448 public void testSlidingSymbolsShifted() { 449 // Symbols shifted -> "?123" + letter -> symbols shifted. 450 // Press/release "?123" key, enter into symbols. 451 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 452 // Press/release "=\<" key, enter into symbols shifted. 453 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 454 // Press and slide from shift key, enter symbols. 455 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 456 // Enter/release symbol letter key, switch back to symbols shifted. 457 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 458 459 // Symbols shifted -> "ABC" key + letter -> symbols shifted. 460 // Press and slide from "ABC" key, enter alphabet. 461 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 462 // Enter/release letter key, switch back to symbols shifted. 463 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 464 // Press/release "ABC" key, switch to alphabet. 465 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 466 467 // Alphabet shifted -> symbols shifted -> "ABC" + letter -> symbols shifted -> 468 // alphabet. 469 // Load keyboard 470 loadKeyboard(ALPHABET_UNSHIFTED); 471 // Press/release shift key, enter alphabet shifted. 472 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 473 // Press/release "?123" key, enter into symbols. 474 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 475 // Press/release "=\<" key, enter into symbols shifted. 476 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 477 // Press and slide from "ABC" key. 478 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 479 // Enter/release letter key, switch back to symbols shifted. 480 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 481 // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 482 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 483 484 // Alphabet shift locked -> symbols shifted -> "ABC" + letter -> symbols shifted -> 485 // alphabet shift locked. 486 // Load keyboard 487 loadKeyboard(ALPHABET_UNSHIFTED); 488 // Long press shift key, enter alphabet shift locked. 489 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 490 // Press/release "?123" key, enter into symbols. 491 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 492 // Press/release "=\<" key, enter into symbols shifted. 493 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 494 // Press and slide from "ABC" key. 495 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 496 // Enter/release letter key, switch back to symbols shifted. 497 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_SHIFTED); 498 // Press/release "ABC" key, switch to alphabet shift locked. 499 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 500 501 // Alphabet shift locked -> symbols shifted -> "?123" + letter -> symbols shifted -> 502 // alphabet shift locked. 503 // Load keyboard 504 loadKeyboard(ALPHABET_UNSHIFTED); 505 // Long press shift key, enter alphabet shift locked. 506 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 507 // Press/release "?123" key, enter into symbols. 508 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 509 // Press/release "=\<" key, enter into symbols shifted. 510 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 511 // Press and slide from "?123" key. 512 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 513 // Enter/release symbol letter key, switch back to symbols shifted. 514 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 515 // Press/release "ABC" key, switch to alphabet shift locked. 516 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 517 } 518 519 // Change focus to new text field. 520 public void testChangeFocus() { 521 // Press/release shift key. 522 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 523 // Change focus to new text field. 524 loadKeyboard(ALPHABET_UNSHIFTED); 525 526 // Long press shift key, enter alphabet shift locked. 527 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 528 // Change focus to new text field. 529 loadKeyboard(ALPHABET_UNSHIFTED); 530 531 // Press/release "?123" key. 532 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 533 // Change focus to new text field. 534 loadKeyboard(ALPHABET_UNSHIFTED); 535 536 // Press/release "?123" key. 537 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 538 // Press/release "=\<" key. 539 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 540 // Change focus to new text field. 541 loadKeyboard(ALPHABET_UNSHIFTED); 542 } 543 544 // Change focus to auto caps text field. 545 public void testChangeFocusAutoCaps() { 546 // Set auto caps mode on. 547 setAutoCapsMode(AUTO_CAPS); 548 549 // Update shift state. 550 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 551 // Change focus to new text field. 552 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 553 554 // Press/release shift key, enter alphabet. 555 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 556 // Change focus to new text field. 557 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 558 559 // Long press shift key, enter alphabet shift locked. 560 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 561 // Change focus to new text field. 562 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 563 564 // Press/release "?123" key. 565 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 566 // Change focus to new text field. 567 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 568 569 // Press/release "?123" key. 570 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 571 // Press/release "=\<" key. 572 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 573 // Change focus to new text field. 574 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 575 } 576 577 // Change orientation. 578 public void testChangeOrientation() { 579 // Alphabet -> rotate -> alphabet. 580 updateShiftState(ALPHABET_UNSHIFTED); 581 // Rotate device, remain in alphabet. 582 rotateDevice(ALPHABET_UNSHIFTED); 583 584 // Alphabet shifted -> rotate -> alphabet shifted. 585 // Press/release shift key, enter alphabet shifted. 586 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 587 // Rotate device, remain in alphabet shifted. 588 rotateDevice(ALPHABET_MANUAL_SHIFTED); 589 590 // Alphabet shift locked -> rotate -> alphabet shift locked. 591 // Long press shift key, enter alphabet shift locked. 592 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 593 // Rotate device, remain in alphabet shift locked. 594 rotateDevice(ALPHABET_SHIFT_LOCKED); 595 596 // Alphabet shift locked -> symbols -> rotate -> symbols -> 597 // Alphabet shift locked. 598 // Press/release "?123" key, enter symbols. 599 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 600 // Rotate device, remain in symbols, 601 rotateDevice(SYMBOLS_UNSHIFTED); 602 // Press/release "ABC" key, alphabet shift locked state should be maintained. 603 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 604 605 // Alphabet shift locked -> symbols shifted -> rotate -> symbols shifted -> 606 // Alphabet shift locked. 607 // Press/release "?123" key, enter symbols. 608 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 609 // Press/release "=\<" key, enter symbols shifted. 610 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 611 // Rotate device, remain in symbols shifted. 612 rotateDevice(SYMBOLS_SHIFTED); 613 // Press/release "ABC" key, alphabet shift locked state should be maintained. 614 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 615 616 // Alphabet shift locked -> symbols shifted -> alphabet shift locked -> rotate -> 617 // Alphabet shift locked -> symbols. 618 // Press/release "?123" key, enter symbols. 619 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 620 // Press/release "=\<" key, enter symbols shifted. 621 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 622 // Press/release "ABC" key, enter alphabet shift locked. 623 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 624 // Rotate device, remain in alphabet shift locked. 625 rotateDevice(ALPHABET_SHIFT_LOCKED); 626 // Press/release "?123" key, enter symbols (not symbols shifted). 627 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 628 629 // Alphabet -> symbols shifted -> alphabet -> rotate -> 630 // Alphabet -> symbols. 631 loadKeyboard(ALPHABET_UNSHIFTED); 632 // Press/release "?123" key, enter symbols. 633 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 634 // Press/release "=\<" key, enter symbols shifted. 635 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 636 // Press/release "ABC" key, enter alphabet. 637 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 638 // Rotate device, remain in alphabet shift locked. 639 rotateDevice(ALPHABET_UNSHIFTED); 640 // Press/release "?123" key, enter symbols (not symbols shifted). 641 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 642 } 643} 644