AI 147658: CTS: add test cases for android.view.KeyCharacterMap
Automated import of CL 147658
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index a46c34b..da128ee 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -639,6 +639,16 @@
</intent-filter>
</activity>
+ <service android:name="android.os.cts.EmptyService"
+ android:process=":remote">
+ <intent-filter>
+ <action
+ android:name="android.os.cts.IEmptyService" />
+ <action
+ android:name="android.os.REMOTESERVICE" />
+ </intent-filter>
+ </service>
+
</application>
<!--Test for PackageManager, please put this at the very beginning-->
diff --git a/tests/tests/view/src/android/view/cts/KeyCharacterMapTest.java b/tests/tests/view/src/android/view/cts/KeyCharacterMapTest.java
new file mode 100644
index 0000000..5bed0b4
--- /dev/null
+++ b/tests/tests/view/src/android/view/cts/KeyCharacterMapTest.java
@@ -0,0 +1,281 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view.cts;
+
+import android.test.AndroidTestCase;
+import android.text.TextUtils;
+import android.view.KeyCharacterMap;
+import android.view.KeyEvent;
+import android.view.KeyCharacterMap.KeyData;
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+
+@TestTargetClass(KeyCharacterMap.class)
+public class KeyCharacterMapTest extends AndroidTestCase {
+
+ private KeyCharacterMap mKeyCharacterMap;
+ private final char[] chars = {'A', 'B', 'C'};
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mKeyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD);
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "isPrintingKey",
+ args = {int.class}
+ )
+ public void testIsPrintingKey() throws Exception {
+
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_UNKNOWN));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SOFT_LEFT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SOFT_RIGHT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_HOME));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BACK));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CALL));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ENDCALL));
+
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_0));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_1));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_2));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_3));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_4));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_5));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_6));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_7));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_8));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_9));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_STAR));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_POUND));
+
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_UP));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_DOWN));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_LEFT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_RIGHT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_CENTER));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_VOLUME_UP));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_VOLUME_DOWN));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_POWER));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CAMERA));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CLEAR));
+
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_A));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_B));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_C));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_D));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_E));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_G));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_H));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_I));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_J));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_K));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_L));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_M));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_N));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_O));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_P));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_Q));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_R));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_S));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_T));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_U));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_V));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_W));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_X));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_Y));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_Z));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_COMMA));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PERIOD));
+
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ALT_LEFT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ALT_RIGHT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SHIFT_LEFT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SHIFT_RIGHT));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_TAB));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SPACE));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUM));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SYM));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_EXPLORER));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ENVELOPE));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ENTER));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DEL));
+
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_GRAVE));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MINUS));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_EQUALS));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_LEFT_BRACKET));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_RIGHT_BRACKET));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BACKSLASH));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SEMICOLON));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_APOSTROPHE));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SLASH));
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_AT));
+
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUM));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_HEADSETHOOK));
+
+ assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PLUS));
+
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MENU));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NOTIFICATION));
+ assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SEARCH));
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "load",
+ args = {int.class}
+ )
+ public void testLoad() throws Exception {
+ mKeyCharacterMap = null;
+ mKeyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD);
+ assertNotNull(mKeyCharacterMap);
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getNumber",
+ args = {int.class}
+ )
+ public void testGetNumber() throws Exception {
+ assertEquals('0', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_0));
+ assertEquals('1', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_1));
+ assertEquals('2', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_2));
+ assertEquals('3', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_3));
+ assertEquals('4', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_4));
+ assertEquals('5', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_5));
+ assertEquals('6', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_6));
+ assertEquals('7', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_7));
+ assertEquals('8', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_8));
+ assertEquals('9', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_9));
+ assertEquals('*', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_STAR));
+ assertEquals('#', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_POUND));
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getMatch",
+ args = {int.class, char[].class}
+ )
+ public void testGetMatch1() throws Exception {
+ try {
+ mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_0, null);
+ fail("should throw exception");
+ } catch (Exception e) {
+ }
+ assertEquals('\0', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_E, chars));
+ assertEquals('A', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_A, chars));
+ assertEquals('B', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_B, chars));
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getMatch",
+ args = {int.class, char[].class, int.class}
+ )
+ public void testGetMatch2() throws Exception {
+ try {
+ mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_0, null, 1);
+ fail("should throw exception");
+ } catch (Exception e) {
+ }
+ assertEquals('\0', mKeyCharacterMap.getMatch(1000, chars, 2));
+ assertEquals('\0', mKeyCharacterMap.getMatch(10000, chars, 2));
+ assertEquals('\0', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_E, chars, 0));
+ assertEquals('A', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_A, chars, 0));
+ assertEquals('B', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_B, chars, 0));
+ assertEquals('A', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_A, chars, KeyEvent.KEYCODE_A));
+ assertEquals('\0', mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_B, chars, KeyEvent.KEYCODE_B));
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getKeyboardType",
+ args = {}
+ )
+ public void testGetKeyboardType() throws Exception {
+ mKeyCharacterMap.getKeyboardType();
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getEvents",
+ args = {char[].class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.NOT_FEASIBLE,
+ method = "getDisplayLabel",
+ args = {int.class}
+ )
+ })
+ public void testGetEvents() {
+ try {
+ mKeyCharacterMap.getEvents(null);
+ fail("should throw exception");
+ } catch (Exception e) {
+ }
+ CharSequence mCharSequence = "TestMessage123";
+ int len = mCharSequence.length();
+ char[] charsArray = new char[len];
+ TextUtils.getChars(mCharSequence, 1, len, charsArray, 0);
+ mKeyCharacterMap.getEvents(charsArray);
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+
+ method = "getKeyData",
+ args = {int.class, android.view.KeyCharacterMap.KeyData.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.NOT_FEASIBLE,
+ method = "get",
+ args = {int.class, int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.NOT_FEASIBLE,
+ method = "finalize",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.NOT_FEASIBLE,
+ method = "getDeadChar",
+ args = {int.class, int.class}
+ )
+ })
+ public void testGetKeyData() throws Exception {
+ KeyData result = new KeyData();
+ result.meta = new char[2];
+ try {
+ mKeyCharacterMap.getKeyData(KeyEvent.KEYCODE_HOME, result);
+ fail("should throw exception");
+ } catch (Exception e) {
+ }
+ result.meta = new char[4];
+ assertFalse(mKeyCharacterMap.getKeyData(KeyEvent.KEYCODE_HOME, result));
+ assertTrue(mKeyCharacterMap.getKeyData(KeyEvent.KEYCODE_0, result));
+ assertEquals(48, result.meta[0]);
+ }
+
+}