KeyboardStateMultiTouchTests.java revision 64e01baadeb624781d9d056b62679b25ea0fe5c0
1dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka/* 2dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * Copyright (C) 2011 The Android Open Source Project 3dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * 4dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * use this file except in compliance with the License. You may obtain a copy of 6dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * the License at 7dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * 8dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * http://www.apache.org/licenses/LICENSE-2.0 9dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * 10dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software 11dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * License for the specific language governing permissions and limitations under 14dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka * the License. 15dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka */ 16dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 17dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaokapackage com.android.inputmethod.keyboard.internal; 18dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 1987e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaokapublic class KeyboardStateTests extends KeyboardStateNonDistinctTests { 20dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka @Override 2187e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka public boolean hasDistinctMultitouch() { 2287e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka return true; 236d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka } 246d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka 256d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Shift key chording input. 266d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka public void testShiftChording() { 276d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press shift key and hold, enter into choring shift state. 2864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); 296d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka 306d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press/release letter keys. 3164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 3264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka chordingPressAndReleaseKey('X', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 33dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 346d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Release shift key, snap back to normal state. 3564e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); 36dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka } 37dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 386d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Symbols key chording input. 396d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka public void testSymbolsChording() { 406d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press symbols key and hold, enter into choring shift state. 4164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); 426d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka 436d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press/release symbol letter keys. 4464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 4564e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka chordingPressAndReleaseKey('2', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 466d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka 476d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Release shift key, snap back to normal state. 4864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); 496d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka } 506d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka 516d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Chording shift key in automatic upper case. 526d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka public void testAutomaticUpperCaseChording() { 5364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Set auto caps mode on. 5464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka setAutoCapsMode(AUTO_CAPS); 5564e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 566d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Update shift state with auto caps enabled. 5764e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 58dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 596d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press shift key. 6064e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); 6164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 626d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press/release letter keys. 6364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 6464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 656d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Release shift key, snap back to alphabet. 6664e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); 67dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka } 68dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 696d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Chording symbol key in automatic upper case. 7064e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka public void testAutomaticUpperCaseChording2() { 7164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Set auto caps mode on. 7264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka setAutoCapsMode(AUTO_CAPS); 7364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 746d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Update shift state with auto caps enabled. 7564e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 76dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 776d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press "123?" key. 7864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); 7964e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 806d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Press/release symbol letter keys. 8164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 8264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 836d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // Release "123?" key, snap back to alphabet. 8464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); 856d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka } 86dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka 876d5c9c9edceddb70b03728aca21fed48d01bd973Tadashi G. Takaoka // TODO: Multitouch test 885731b939c7baa2ca64a59b35f48fb3c2a43ba739Tadashi G. Takaoka 895731b939c7baa2ca64a59b35f48fb3c2a43ba739Tadashi G. Takaoka // TODO: n-Keys roll over test 90dfbe254de6f0bf722d9cb5a3ab6dc97d135c73d5Tadashi G. Takaoka} 91