KeyboardStateSingleTouchTests.java revision 0ed2d3a4491cb0f6142975a15b653be6079b6a4e
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 public void testDoubleTapShift() { 260 // First shift key tap. 261 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 262 // Second shift key tap. 263 secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 264 265 // First shift key tap. 266 pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 267 // Second shift key tap. 268 secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 269 270 // Press/release shift key, enter alphabet manual shifted. 271 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 272 273 // First shift key tap. 274 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 275 // Second shift key tap. 276 secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 277 278 // First shift key tap. 279 pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 280 // Second shift key tap. 281 secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 282 283 // Set auto caps mode on. 284 setAutoCapsMode(AUTO_CAPS); 285 // Load keyboard, should be in automatic shifted. 286 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 287 288 // First shift key tap. 289 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 290 // Second shift key tap. 291 secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 292 293 // First shift key tap. 294 pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 295 // Second shift key tap. 296 secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 297 } 298 299 // Update shift state. 300 public void testUpdateShiftState() { 301 // Set auto caps mode off. 302 setAutoCapsMode(NO_AUTO_CAPS); 303 // Load keyboard, should be in alphabet. 304 loadKeyboard(ALPHABET_UNSHIFTED); 305 // Update shift state, remained in alphabet. 306 updateShiftState(ALPHABET_UNSHIFTED); 307 308 // Press/release shift key, enter alphabet shifted. 309 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 310 // Update shift state, back to alphabet. 311 updateShiftState(ALPHABET_UNSHIFTED); 312 313 // Long press shift key, enter alphabet shift locked. 314 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 315 // Update shift state, remained in alphabet shift locked. 316 updateShiftState(ALPHABET_SHIFT_LOCKED); 317 // Long press shift key, back to alphabet. 318 longPressShiftKey(ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 319 320 // Press/release "?123" key, enter into symbols. 321 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 322 // Update shift state, remained in symbols. 323 updateShiftState(SYMBOLS_UNSHIFTED); 324 325 // Press/release "=\<" key, enter symbols shifted. 326 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 327 // Update shift state, remained in symbols shifted. 328 updateShiftState(SYMBOLS_SHIFTED); 329 330 // Set auto caps mode on. 331 setAutoCapsMode(AUTO_CAPS); 332 // Load keyboard, should be in automatic shifted. 333 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 334 // Update shift state, remained in automatic shifted. 335 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 336 337 // Press/release shift key, enter alphabet. 338 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 339 // Press/release shift key, enter alphabet shifted. 340 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 341 // Update shift state, enter to automatic shifted (not alphabet shifted). 342 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 343 344 // Long press shift key, enter alphabet shift locked. 345 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 346 // Update shift state, remained in alphabet shift locked (not automatic shifted). 347 updateShiftState(ALPHABET_SHIFT_LOCKED); 348 // Long press shift key, back to alphabet. 349 longPressShiftKey(ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 350 351 // Load keyboard, should be in automatic shifted. 352 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 353 // Press/release "?123" key, enter into symbols. 354 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 355 // Update shift state, remained in symbols. 356 updateShiftState(SYMBOLS_UNSHIFTED); 357 358 // Press/release "=\<" key, enter symbols shifted. 359 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 360 // Update shift state, remained in symbols shifted. 361 updateShiftState(SYMBOLS_SHIFTED); 362 } 363 364 // Sliding input in alphabet. 365 public void testSlidingAlphabet() { 366 // Alphabet -> shift key + letter -> alphabet. 367 // Press and slide from shift key, enter alphabet shifted. 368 pressAndSlideFromKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 369 // Enter/release letter key, switch back to alphabet. 370 pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 371 372 // Alphabet -> "?123" key + letter -> alphabet. 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. 376 pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 377 378 // Alphabet shifted -> shift key + letter -> alphabet. 379 // Press/release shift key, enter alphabet shifted. 380 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 381 // Press and slide from shift key, remain alphabet shifted. 382 pressAndSlideFromKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 383 // Enter/release letter key, switch back to alphabet (not alphabet shifted). 384 pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 385 386 // Alphabet shifted -> "?123" key + letter -> alphabet. 387 // Press/release shift key, enter alphabet shifted. 388 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 389 // Press and slide from "123?" key, enter symbols. 390 pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 391 // Enter/release into symbol letter key, switch back to alphabet (not alphabet shifted). 392 pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 393 394 // Alphabet shift locked -> shift key + letter -> alphabet shift locked. 395 // Long press shift key, enter alphabet shift locked. 396 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 397 // Press and slide from "123?" key, enter symbols. 398 pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 399 // Enter/release into symbol letter key, switch back to alphabet shift locked. 400 pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 401 402 // Alphabet shift locked -> "?123" key + letter -> alphabet shift locked. 403 // Press and slide from shift key, enter alphabet shifted. 404 pressAndSlideFromKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCKED); 405 // Enter/release letter key, switch back to shift locked. 406 pressAndReleaseKey('Z', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 407 } 408 409 // Sliding input in symbols. 410 public void testSlidingSymbols() { 411 // Symbols -> "=\<" key + letter -> symbols. 412 // Press/release "?123" key, enter into symbols. 413 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 414 // Press and slide from shift key, enter symols shifted. 415 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 416 // Enter/release symbol shifted letter key, switch back to symbols. 417 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 418 419 // Symbols -> "ABC" key + letter -> Symbols. 420 // Press and slide from "ABC" key, enter alphabet. 421 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 422 // Enter/release letter key, switch back to symbols. 423 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 424 // Press/release "ABC" key, switch to alphabet. 425 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 426 427 // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols -> 428 // alphabet. 429 // Load keyboard 430 loadKeyboard(ALPHABET_UNSHIFTED); 431 // Press/release shift key, enter alphabet shifted. 432 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 433 // Press/release "?123" key, enter into symbols. 434 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 435 // Press and slide from "ABC" key. 436 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 437 // Enter/release letter key, switch back to symbols. 438 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 439 // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 440 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 441 442 // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols -> 443 // alphabet shift locked. 444 // Load keyboard 445 loadKeyboard(ALPHABET_UNSHIFTED); 446 // Long press shift key, enter alphabet shift locked. 447 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 448 // Press/release "?123" key, enter into symbols. 449 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 450 // Press and slide from "ABC" key, enter alphabet shift locked. 451 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 452 // Enter/release letter key, switch back to symbols. 453 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_UNSHIFTED); 454 // Press/release "ABC" key, switch to alphabet shift locked. 455 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 456 457 // Alphabet shift locked -> symbols -> "=\<" key + letter -> symbols -> 458 // alphabet shift locked. 459 // Load keyboard 460 loadKeyboard(ALPHABET_UNSHIFTED); 461 // Long press shift key, enter alphabet shift locked. 462 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 463 // Press/release "?123" key, enter into symbols. 464 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 465 // Press and slide from "=\<" key, enter symbols shifted. 466 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 467 // Enter/release symbols shift letter key, switch back to symbols. 468 pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 469 // Press/release "ABC" key, switch to alphabet shift locked. 470 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 471 } 472 473 // Sliding input in symbols shifted. 474 public void testSlidingSymbolsShifted() { 475 // Symbols shifted -> "?123" + letter -> symbols shifted. 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 shift key, enter symbols. 481 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 482 // Enter/release symbol letter key, switch back to symbols shifted. 483 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 484 485 // Symbols shifted -> "ABC" key + letter -> symbols shifted. 486 // Press and slide from "ABC" key, enter alphabet. 487 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 488 // Enter/release letter key, switch back to symbols shifted. 489 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 490 // Press/release "ABC" key, switch to alphabet. 491 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 492 493 // Alphabet shifted -> symbols shifted -> "ABC" + letter -> symbols shifted -> 494 // alphabet. 495 // Load keyboard 496 loadKeyboard(ALPHABET_UNSHIFTED); 497 // Press/release shift key, enter alphabet shifted. 498 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 499 // Press/release "?123" key, enter into symbols. 500 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 501 // Press/release "=\<" key, enter into symbols shifted. 502 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 503 // Press and slide from "ABC" key. 504 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 505 // Enter/release letter key, switch back to symbols shifted. 506 pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 507 // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 508 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 509 510 // Alphabet shift locked -> symbols shifted -> "ABC" + letter -> symbols shifted -> 511 // alphabet shift locked. 512 // Load keyboard 513 loadKeyboard(ALPHABET_UNSHIFTED); 514 // Long press shift key, enter alphabet shift locked. 515 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 516 // Press/release "?123" key, enter into symbols. 517 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 518 // Press/release "=\<" key, enter into symbols shifted. 519 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 520 // Press and slide from "ABC" key. 521 pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 522 // Enter/release letter key, switch back to symbols shifted. 523 pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_SHIFTED); 524 // Press/release "ABC" key, switch to alphabet shift locked. 525 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 526 527 // Alphabet shift locked -> symbols shifted -> "?123" + letter -> symbols shifted -> 528 // alphabet shift locked. 529 // Load keyboard 530 loadKeyboard(ALPHABET_UNSHIFTED); 531 // Long press shift key, enter alphabet shift locked. 532 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 533 // Press/release "?123" key, enter into symbols. 534 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 535 // Press/release "=\<" key, enter into symbols shifted. 536 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 537 // Press and slide from "?123" key. 538 pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 539 // Enter/release symbol letter key, switch back to symbols shifted. 540 pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 541 // Press/release "ABC" key, switch to alphabet shift locked. 542 pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 543 } 544 545 // Change focus to new text field. 546 public void testChangeFocus() { 547 // Press/release shift key. 548 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 549 // Change focus to new text field. 550 loadKeyboard(ALPHABET_UNSHIFTED); 551 552 // Long press shift key, enter alphabet shift locked. 553 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 554 // Change focus to new text field. 555 loadKeyboard(ALPHABET_UNSHIFTED); 556 557 // Press/release "?123" key. 558 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 559 // Change focus to new text field. 560 loadKeyboard(ALPHABET_UNSHIFTED); 561 562 // Press/release "?123" key. 563 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 564 // Press/release "=\<" key. 565 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 566 // Change focus to new text field. 567 loadKeyboard(ALPHABET_UNSHIFTED); 568 } 569 570 // Change focus to auto caps text field. 571 public void testChangeFocusAutoCaps() { 572 // Set auto caps mode on. 573 setAutoCapsMode(AUTO_CAPS); 574 575 // Update shift state. 576 updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 577 // Change focus to new text field. 578 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 579 580 // Press/release shift key, enter alphabet. 581 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 582 // Change focus to new text field. 583 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 584 585 // Long press shift key, enter alphabet shift locked. 586 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 587 // Change focus to new text field. 588 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 589 590 // Press/release "?123" key. 591 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 592 // Change focus to new text field. 593 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 594 595 // Press/release "?123" key. 596 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 597 // Press/release "=\<" key. 598 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 599 // Change focus to new text field. 600 loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 601 } 602 603 // Change orientation. 604 public void testChangeOrientation() { 605 // Press/release shift key. 606 pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 607 // Rotate device. 608 rotateDevice(ALPHABET_MANUAL_SHIFTED); 609 610 // Long press shift key, enter alphabet shift locked. 611 longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED); 612 // Rotate device. 613 rotateDevice(ALPHABET_SHIFT_LOCKED); 614 615 // Press/release "?123" key. 616 pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 617 // Rotate device. 618 rotateDevice(SYMBOLS_UNSHIFTED); 619 620 // Press/release "=\<" key. 621 pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 622 // Rotate device. 623 rotateDevice(SYMBOLS_SHIFTED); 624 } 625} 626