KeyboardStateSingleTouchTests.java revision 747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0f
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_MANUAL_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_MANUAL_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_MANUAL_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_MANUAL_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_MANUAL_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_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 379 // Enter/release letter key, switch back to shift locked. 380 // TODO: This test fails due to bug, though the external behavior is correct. 381// pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 382 // TODO: Replace this with the above line once the bug fixed. 383 pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 384 } 385 386 // Sliding input in symbols. 387 public void testSlidingSymbols() { 388 // Symbols -> "=\<" key + letter -> symbols. 389 // Press/release "?123" key, enter into symbols. 390 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 391 // Press and slide from shift key, enter symols shifted. 392 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 393 // Enter/release symbol shifted letter key, switch back to symbols. 394 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 395 396 // Symbols -> "ABC" key + letter -> Symbols. 397 // Press and slide from "ABC" key, enter alphabet. 398 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 399 // Enter/release letter key, switch back to symbols. 400 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 401 // Press/release "ABC" key, switch to alphabet. 402 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 403 404 // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols -> alphabet. 405 // Load keyboard 406 loadKeyboard(ALPHABET_UNSHIFTED); 407 // Press/release shift key, enter alphabet shifted. 408 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 409 // Press/release "?123" key, enter into symbols. 410 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 411 // Press and slide from "ABC" key. 412 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 413 // Enter/release letter key, switch back to symbols. 414 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 415 // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 416 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 417 418 // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols. 419 // -> alphabet shift locked. 420 // Load keyboard 421 loadKeyboard(ALPHABET_UNSHIFTED); 422 // Long press shift key, enter alphabet shift locked. 423 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 424 // Press/release "?123" key, enter into symbols. 425 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 426 // Press and slide from "ABC" key, enter alphabet shift locked. 427 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 428 // Enter/release letter key, switch back to symbols. 429 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_UNSHIFTED); 430 // Press/release "ABC" key, switch to alphabet shift locked. 431 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 432 } 433 434 // Sliding input in symbols shifted. 435 public void testSlidingSymbolsShifted() { 436 // Symbols shifted -> "?123" + letter -> symbols shifted. 437 // Press/release "?123" key, enter into symbols. 438 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 439 // Press/release "=\<" key, enter into symbols shifted. 440 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 441 // Press and slide from shift key, enter symbols. 442 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 443 // Enter/release symbol letter key, switch back to symbols shifted. 444 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 445 446 // Symbols shifted -> "ABC" key + letter -> symbols shifted. 447 // Press and slide from "ABC" key, enter alphabet. 448 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 449 // Enter/release letter key, switch back to symbols shifted. 450 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 451 // Press/release "ABC" key, switch to alphabet. 452 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 453 454 // Alphabet shifted -> symbols shifted -> "ABC" + letter -> symbols shifted -> alphabet. 455 // Load keyboard 456 loadKeyboard(ALPHABET_UNSHIFTED); 457 // Press/release shift key, enter alphabet shifted. 458 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 459 // Press/release "?123" key, enter into symbols. 460 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 461 // Press/release "=\<" key, enter into symbols shifted. 462 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 463 // Press and slide from "ABC" key. 464 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 465 // Enter/release letter key, switch back to symbols shifted. 466 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 467 // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 468 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 469 470 // Alphabet shift locked -> symbols shifted -> "ABC" + letter -> symbols shifted 471 // -> alphabet shift locked. 472 // Load keyboard 473 loadKeyboard(ALPHABET_UNSHIFTED); 474 // Long press shift key, enter alphabet shift locked. 475 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 476 // Press/release "?123" key, enter into symbols. 477 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 478 // Press/release "=\<" key, enter into symbols shifted. 479 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 480 // Press and slide from "ABC" key. 481 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 482 // Enter/release letter key, switch back to symbols shifted. 483 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_SHIFTED); 484 // Press/release "ABC" key, switch to alphabet shift locked. 485 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 486 } 487 488 // Change focus to new text field. 489 public void testChangeFocus() { 490 // Press/release shift key. 491 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 492 // Change focus to new text field. 493 loadKeyboard(ALPHABET_UNSHIFTED); 494 495 // Long press shift key, enter alphabet shift locked. 496 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 497 // Change focus to new text field. 498 loadKeyboard(ALPHABET_UNSHIFTED); 499 500 // Press/release "?123" key. 501 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 502 // Change focus to new text field. 503 loadKeyboard(ALPHABET_UNSHIFTED); 504 505 // Press/release "?123" key. 506 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 507 // Press/release "=\<" key. 508 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 509 // Change focus to new text field. 510 loadKeyboard(ALPHABET_UNSHIFTED); 511 } 512 513 // Change focus to auto caps text field. 514 public void testChangeFocusAutoCaps() { 515 // Set auto caps mode on. 516 setAutoCapsMode(AUTO_CAPS); 517 518 // Update shift state. 519 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 520 // Change focus to new text field. 521 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 522 523 // Press/release shift key, enter alphabet. 524 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 525 // Change focus to new text field. 526 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 527 528 // Long press shift key, enter alphabet shift locked. 529 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 530 // Change focus to new text field. 531 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 532 533 // Press/release "?123" key. 534 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 535 // Change focus to new text field. 536 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 537 538 // Press/release "?123" key. 539 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 540 // Press/release "=\<" key. 541 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 542 // Change focus to new text field. 543 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 544 } 545 546 // Change orientation. 547 public void testChangeOrientation() { 548 // Press/release shift key. 549 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 550 // Rotate device. 551 rotateDevice(ALPHABET_MANUAL_SHIFTED); 552 553 // Long press shift key, enter alphabet shift locked. 554 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 555 // Rotate device. 556 rotateDevice(ALPHABET_SHIFT_LOCKED); 557 558 // Press/release "?123" key. 559 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 560 // Rotate device. 561 rotateDevice(SYMBOLS_UNSHIFTED); 562 563 // Press/release "=\<" key. 564 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 565 // Rotate device. 566 rotateDevice(SYMBOLS_SHIFTED); 567 } 568} 569