• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package android.view;
2 
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assume.assumeTrue;
5 
6 import android.os.Build.VERSION;
7 import android.os.Build.VERSION_CODES;
8 import androidx.test.ext.junit.runners.AndroidJUnit4;
9 import org.junit.Test;
10 import org.junit.runner.RunWith;
11 import org.robolectric.annotation.internal.DoNotInstrument;
12 
13 /**
14  * Test {@link KeyEventTest}.
15  *
16  * <p>Inspired from Android cts/tests/tests/view/src/android/view/cts/KeyEventTest.java
17  */
18 @DoNotInstrument
19 @RunWith(AndroidJUnit4.class)
20 public final class KeyEventTest {
21 
22   @Test
testKeyCodeFromString()23   public void testKeyCodeFromString() {
24     assertEquals(KeyEvent.KEYCODE_A, KeyEvent.keyCodeFromString("KEYCODE_A"));
25     assertEquals(
26         KeyEvent.KEYCODE_A, KeyEvent.keyCodeFromString(Integer.toString(KeyEvent.KEYCODE_A)));
27     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("keycode_a"));
28     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("a"));
29     assertEquals(0, KeyEvent.keyCodeFromString("0"));
30     assertEquals(1, KeyEvent.keyCodeFromString("1"));
31     assertEquals(KeyEvent.KEYCODE_HOME, KeyEvent.keyCodeFromString("3"));
32     assertEquals(
33         KeyEvent.KEYCODE_POWER,
34         KeyEvent.keyCodeFromString(Integer.toString(KeyEvent.KEYCODE_POWER)));
35     assertEquals(
36         KeyEvent.KEYCODE_MENU, KeyEvent.keyCodeFromString(Integer.toString(KeyEvent.KEYCODE_MENU)));
37     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("back"));
38 
39     assertEquals(
40         KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("KEYCODE_NOT_A_REAL_KEYCODE"));
41     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("NOT_A_REAL_KEYCODE"));
42     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("KEYCODE"));
43     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString("KEYCODE_"));
44     assertEquals(KeyEvent.KEYCODE_UNKNOWN, KeyEvent.keyCodeFromString(""));
45     assertEquals(
46         KeyEvent.getMaxKeyCode(),
47         KeyEvent.keyCodeFromString(Integer.toString(KeyEvent.getMaxKeyCode())));
48   }
49 
50   /**
51    * Verify the "starting in {@link android.os.Build.VERSION_CODES#Q} the prefix "KEYCODE_" is
52    * optional." statement in {@link KeyEvent#keyCodeFromString(String)} reference docs.
53    */
54   @Test
testKeyCodeFromString_prefixOptionalFromQ()55   public void testKeyCodeFromString_prefixOptionalFromQ() {
56     assumeTrue(VERSION.SDK_INT >= VERSION_CODES.Q);
57     assertEquals(KeyEvent.KEYCODE_A, KeyEvent.keyCodeFromString("A"));
58 
59     assertEquals(KeyEvent.KEYCODE_POWER, KeyEvent.keyCodeFromString("POWER"));
60   }
61 }
62