1 /* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of 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, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.view.cts; 18 19 import static org.junit.Assert.assertEquals; 20 import static org.junit.Assert.assertFalse; 21 import static org.junit.Assert.assertNotNull; 22 import static org.junit.Assert.assertTrue; 23 import static org.junit.Assert.fail; 24 25 import android.support.test.filters.SmallTest; 26 import android.support.test.runner.AndroidJUnit4; 27 import android.text.TextUtils; 28 import android.view.KeyCharacterMap; 29 import android.view.KeyCharacterMap.KeyData; 30 import android.view.KeyEvent; 31 32 import org.junit.Before; 33 import org.junit.Test; 34 import org.junit.runner.RunWith; 35 36 @SmallTest 37 @RunWith(AndroidJUnit4.class) 38 public class KeyCharacterMapTest { 39 40 private KeyCharacterMap mKeyCharacterMap; 41 private final char[] chars = {'A', 'B', 'C'}; 42 43 @Before 44 public void setup() { 45 mKeyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); 46 } 47 48 @Test 49 public void testIsPrintingKey() { 50 51 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_UNKNOWN)); 52 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SOFT_LEFT)); 53 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SOFT_RIGHT)); 54 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_HOME)); 55 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BACK)); 56 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CALL)); 57 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ENDCALL)); 58 59 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_0)); 60 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_1)); 61 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_2)); 62 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_3)); 63 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_4)); 64 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_5)); 65 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_6)); 66 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_7)); 67 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_8)); 68 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_9)); 69 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_STAR)); 70 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_POUND)); 71 72 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_UP)); 73 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_DOWN)); 74 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_LEFT)); 75 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_RIGHT)); 76 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DPAD_CENTER)); 77 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_VOLUME_UP)); 78 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_VOLUME_DOWN)); 79 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_POWER)); 80 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CAMERA)); 81 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CLEAR)); 82 83 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_A)); 84 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_B)); 85 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_C)); 86 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_D)); 87 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_E)); 88 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F)); 89 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_G)); 90 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_H)); 91 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_I)); 92 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_J)); 93 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_K)); 94 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_L)); 95 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_M)); 96 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_N)); 97 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_O)); 98 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_P)); 99 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_Q)); 100 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_R)); 101 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_S)); 102 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_T)); 103 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_U)); 104 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_V)); 105 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_W)); 106 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_X)); 107 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_Y)); 108 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_Z)); 109 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_COMMA)); 110 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PERIOD)); 111 112 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ALT_LEFT)); 113 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ALT_RIGHT)); 114 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SHIFT_LEFT)); 115 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SHIFT_RIGHT)); 116 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_TAB)); 117 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SPACE)); 118 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SYM)); 119 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUM)); 120 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_EXPLORER)); 121 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ENVELOPE)); 122 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ENTER)); 123 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DEL)); 124 125 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_GRAVE)); 126 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MINUS)); 127 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_EQUALS)); 128 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_LEFT_BRACKET)); 129 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_RIGHT_BRACKET)); 130 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BACKSLASH)); 131 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SEMICOLON)); 132 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_APOSTROPHE)); 133 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SLASH)); 134 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_AT)); 135 136 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUM)); 137 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_HEADSETHOOK)); 138 139 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_FOCUS)); 140 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PLUS)); 141 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MENU)); 142 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NOTIFICATION)); 143 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SEARCH)); 144 145 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE)); 146 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_STOP)); 147 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_NEXT)); 148 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_PREVIOUS)); 149 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_REWIND)); 150 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_FAST_FORWARD)); 151 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MUTE)); 152 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PAGE_UP)); 153 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PAGE_DOWN)); 154 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PICTSYMBOLS)); 155 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SWITCH_CHARSET)); 156 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_A)); 157 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_B)); 158 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_C)); 159 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_X)); 160 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_Y)); 161 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_Z)); 162 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_L1)); 163 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_R1)); 164 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_L2)); 165 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_R2)); 166 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_THUMBL)); 167 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_THUMBR)); 168 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_START)); 169 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_SELECT)); 170 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BUTTON_MODE)); 171 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ESCAPE)); 172 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_FORWARD_DEL)); 173 174 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CTRL_LEFT)); 175 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CTRL_RIGHT)); 176 177 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CAPS_LOCK)); 178 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SCROLL_LOCK)); 179 180 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_META_LEFT)); 181 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_META_RIGHT)); 182 183 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_FUNCTION)); 184 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SYSRQ)); 185 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BREAK)); 186 187 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MOVE_HOME)); 188 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MOVE_END)); 189 190 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_INSERT)); 191 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_FORWARD)); 192 193 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_PLAY)); 194 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_PAUSE)); 195 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_CLOSE)); 196 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_EJECT)); 197 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_MEDIA_RECORD)); 198 199 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F1)); 200 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F2)); 201 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F3)); 202 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F4)); 203 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F5)); 204 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F6)); 205 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F7)); 206 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F8)); 207 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F9)); 208 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F10)); 209 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F11)); 210 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_F12)); 211 212 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUM_LOCK)); 213 214 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_0)); 215 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_1)); 216 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_2)); 217 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_3)); 218 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_4)); 219 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_5)); 220 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_6)); 221 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_7)); 222 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_8)); 223 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_9)); 224 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_DIVIDE)); 225 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_MULTIPLY)); 226 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_SUBTRACT)); 227 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_ADD)); 228 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_DOT)); 229 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_COMMA)); 230 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_ENTER)); 231 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_EQUALS)); 232 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_LEFT_PAREN)); 233 assertTrue(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_NUMPAD_RIGHT_PAREN)); 234 235 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_VOLUME_MUTE)); 236 237 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_INFO)); 238 239 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CHANNEL_UP)); 240 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CHANNEL_DOWN)); 241 242 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ZOOM_IN)); 243 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_ZOOM_OUT)); 244 245 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_TV)); 246 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_WINDOW)); 247 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_GUIDE)); 248 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_DVR)); 249 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_BOOKMARK)); 250 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_CAPTIONS)); 251 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_SETTINGS)); 252 253 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_TV_POWER)); 254 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_TV_INPUT)); 255 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_STB_POWER)); 256 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_STB_INPUT)); 257 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_AVR_POWER)); 258 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_AVR_INPUT)); 259 260 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PROG_RED)); 261 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PROG_GREEN)); 262 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PROG_YELLOW)); 263 assertFalse(mKeyCharacterMap.isPrintingKey(KeyEvent.KEYCODE_PROG_BLUE)); 264 } 265 266 @Test 267 public void testLoad() { 268 mKeyCharacterMap = null; 269 mKeyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD); 270 assertNotNull(mKeyCharacterMap); 271 } 272 273 @Test 274 public void testGetNumber() { 275 assertEquals('0', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_0)); 276 assertEquals('1', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_1)); 277 assertEquals('2', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_2)); 278 assertEquals('3', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_3)); 279 assertEquals('4', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_4)); 280 assertEquals('5', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_5)); 281 assertEquals('6', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_6)); 282 assertEquals('7', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_7)); 283 assertEquals('8', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_8)); 284 assertEquals('9', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_9)); 285 assertEquals('*', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_STAR)); 286 assertEquals('#', mKeyCharacterMap.getNumber(KeyEvent.KEYCODE_POUND)); 287 } 288 289 @Test(expected=IllegalArgumentException.class) 290 public void testGetMatchNull() { 291 mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_0, null); 292 } 293 294 @Test 295 public void testGetMatch() { 296 assertEquals('\0', mKeyCharacterMap.getMatch(getCharacterKeyCode('E'), chars)); 297 assertEquals('A', mKeyCharacterMap.getMatch(getCharacterKeyCode('A'), chars)); 298 assertEquals('B', mKeyCharacterMap.getMatch(getCharacterKeyCode('B'), chars)); 299 } 300 301 private int getCharacterKeyCode(char oneChar) { 302 // Lowercase the character to avoid getting modifiers in the KeyEvent array. 303 char[] chars = new char[] {Character.toLowerCase(oneChar)}; 304 KeyEvent[] events = mKeyCharacterMap.getEvents(chars); 305 return events[0].getKeyCode(); 306 } 307 308 @Test(expected=IllegalArgumentException.class) 309 public void testGetMatchMetaStateNull() { 310 mKeyCharacterMap.getMatch(KeyEvent.KEYCODE_0, null, 1); 311 } 312 313 @Test 314 public void testGetMatchMetaState() { 315 assertEquals('\0', mKeyCharacterMap.getMatch(1000, chars, 2)); 316 assertEquals('\0', mKeyCharacterMap.getMatch(10000, chars, 2)); 317 assertEquals('\0', mKeyCharacterMap.getMatch(getCharacterKeyCode('E'), chars)); 318 assertEquals('A', mKeyCharacterMap.getMatch(getCharacterKeyCode('A'), chars)); 319 assertEquals('B', mKeyCharacterMap.getMatch(getCharacterKeyCode('B'), chars)); 320 } 321 322 @Test 323 public void testGetKeyboardType() { 324 mKeyCharacterMap.getKeyboardType(); 325 } 326 327 @Test(expected=IllegalArgumentException.class) 328 public void testGetEventsNull() { 329 mKeyCharacterMap.getEvents(null); 330 } 331 332 @Test 333 public void testGetEvents() { 334 CharSequence mCharSequence = "TestMessage123"; 335 int len = mCharSequence.length(); 336 char[] charsArray = new char[len]; 337 TextUtils.getChars(mCharSequence, 1, len, charsArray, 0); 338 mKeyCharacterMap.getEvents(charsArray); 339 } 340 341 @Test 342 public void testGetKeyData() { 343 KeyData result = new KeyData(); 344 result.meta = new char[2]; 345 try { 346 mKeyCharacterMap.getKeyData(KeyEvent.KEYCODE_HOME, result); 347 fail("should throw exception"); 348 } catch (Exception e) { 349 } 350 result.meta = new char[4]; 351 assertFalse(mKeyCharacterMap.getKeyData(KeyEvent.KEYCODE_HOME, result)); 352 assertTrue(mKeyCharacterMap.getKeyData(KeyEvent.KEYCODE_0, result)); 353 assertEquals(48, result.meta[0]); 354 355 // here just call deviceHasKey and deviceHasKeys. 356 KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_0); 357 final int[] keyChar = new int[] { 358 KeyEvent.KEYCODE_0, KeyEvent.KEYCODE_1, KeyEvent.KEYCODE_3 359 }; 360 boolean[] keys = KeyCharacterMap.deviceHasKeys(keyChar); 361 assertEquals(keyChar.length, keys.length); 362 } 363 364 } 365