Improved KeyEventTest.

- Added tests for all constructors.
- Fixed some assertion error messages.

Test: atest android.view.KeyEventTest
Bug: 268103680
Change-Id: I99c9b30e027c97f571192918777a68ff7a755776
This commit is contained in:
Felipe Leme
2023-02-14 11:41:27 -08:00
parent a15206b9b3
commit 72a5a8b3ce

View File

@@ -43,9 +43,12 @@ public final class KeyEventTest {
private static final int DOWN_TIME = 50;
private static final long EVENT_TIME = 100;
private static final long ANOTHER_EVENT_TIME = 108;
private static final int ACTION = KeyEvent.ACTION_DOWN;
private static final int ANOTHER_ACTION = KeyEvent.ACTION_UP;
private static final int KEYCODE = KeyEvent.KEYCODE_0;
private static final int REPEAT = 0;
private static final int ANOTHER_REPEAT = 42;
private static final int METASTATE = 0;
private static final int DEVICE_ID = 0;
private static final int SCAN_CODE = 0;
@@ -155,6 +158,20 @@ public final class KeyEventTest {
compareKeys(key1, key2);
}
@Test
public void testCopyConstructorWith2ChangedFields() {
KeyEvent key1 = createKey();
@SuppressWarnings("deprecation")
KeyEvent key2 = new KeyEvent(key1, ANOTHER_EVENT_TIME, ANOTHER_REPEAT);
assertKeyEventFields(key2, DOWN_TIME, ANOTHER_EVENT_TIME, ACTION, KEYCODE, ANOTHER_REPEAT,
METASTATE, DEVICE_ID, SCAN_CODE, FLAGS, InputDevice.SOURCE_KEYBOARD,
INVALID_DISPLAY, CHARACTERS);
expect.withMessage("id (key1=%s, key2=%s", key1, key2).that(key2.getId())
.isNotEqualTo(key1.getId());
}
@Test
public void testConstructorWith10Args() {
KeyEvent key = new KeyEvent(DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT, METASTATE,
@@ -188,7 +205,7 @@ public final class KeyEventTest {
KeyEvent key = new KeyEvent(DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT, METASTATE);
assertKeyEventFields(key, DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT, METASTATE,
KeyCharacterMap.VIRTUAL_KEYBOARD, /* scanCode= */ 0, /* flags= */ 0,
/* deviceId= */ KeyCharacterMap.VIRTUAL_KEYBOARD, /* scanCode= */ 0, /* flags= */ 0,
/* source= */ 0, INVALID_DISPLAY, CHARACTERS);
}
@@ -197,8 +214,8 @@ public final class KeyEventTest {
KeyEvent key = new KeyEvent(DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT);
assertKeyEventFields(key, DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT,
/* metaState= */ 0, KeyCharacterMap.VIRTUAL_KEYBOARD, /* scanCode= */ 0,
/* flags= */ 0, /* source= */ 0, INVALID_DISPLAY, CHARACTERS);
/* metaState= */ 0, /* deviceId= */ KeyCharacterMap.VIRTUAL_KEYBOARD,
/* scanCode= */ 0, /* flags= */ 0, /* source= */ 0, INVALID_DISPLAY, CHARACTERS);
}
@Test
@@ -211,17 +228,30 @@ public final class KeyEventTest {
}
@Test
public void testConstructorWith2rgs() {
public void testConstructorWith2Args() {
KeyEvent key = new KeyEvent(ACTION, KEYCODE);
assertKeyEventFields(key, /* downTime= */ 0, /* eventTime= */ 0, ACTION, KEYCODE,
/* repeat= */ 0, /* metaState= */ 0, KeyCharacterMap.VIRTUAL_KEYBOARD,
/* scanCode= */ 0, FLAGS, /* source= */ 0, INVALID_DISPLAY, CHARACTERS);
/* repeat= */ 0, /* metaState= */ 0,
/* deviceId= */ KeyCharacterMap.VIRTUAL_KEYBOARD, /* scanCode= */ 0, FLAGS,
/* source= */ 0, INVALID_DISPLAY, CHARACTERS);
}
@Test
public void testCopyChangeAction() {
KeyEvent key1 = createKey();
KeyEvent key2 = KeyEvent.changeAction(key1, ANOTHER_ACTION);
assertKeyEventFields(key2, DOWN_TIME, EVENT_TIME, ANOTHER_ACTION, KEYCODE, REPEAT,
METASTATE, DEVICE_ID, SCAN_CODE, FLAGS, InputDevice.SOURCE_KEYBOARD,
INVALID_DISPLAY, CHARACTERS);
expect.withMessage("id (key1=%s, key2=%s", key1, key2).that(key2.getId())
.isNotEqualTo(key1.getId());
}
private static KeyEvent createKey() {
return KeyEvent.obtain(DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT, METASTATE,
DEVICE_ID, SCAN_CODE, FLAGS, SOURCE, INVALID_DISPLAY, CHARACTERS);
return KeyEvent.obtain(DOWN_TIME, EVENT_TIME, ACTION, KEYCODE, REPEAT, METASTATE, DEVICE_ID,
SCAN_CODE, FLAGS, SOURCE, INVALID_DISPLAY, CHARACTERS);
}
private void compareKeys(KeyEvent key1, KeyEvent key2) {
@@ -247,9 +277,9 @@ public final class KeyEventTest {
.that(key2.getFlags()).isEqualTo(key1.getFlags());
expect.withMessage("source (key1=%s, key2=%s)", key1, key2)
.that(key2.getSource()).isEqualTo(key1.getSource());
expect.withMessage("displayId(key1=%s, key2=%s)", key1, key2)
expect.withMessage("displayId (key1=%s, key2=%s)", key1, key2)
.that(key2.getDisplayId()).isEqualTo(key1.getDisplayId());
expect.withMessage("characters(key1=%s, key2=%s)", key1, key2)
expect.withMessage("characters (key1=%s, key2=%s)", key1, key2)
.that(key2.getCharacters()).isEqualTo(key1.getCharacters());
}