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