From 72a5a8b3ce485317d9c18c30479ea86edc203713 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Tue, 14 Feb 2023 11:41:27 -0800 Subject: [PATCH] Improved KeyEventTest. - Added tests for all constructors. - Fixed some assertion error messages. Test: atest android.view.KeyEventTest Bug: 268103680 Change-Id: I99c9b30e027c97f571192918777a68ff7a755776 --- .../src/android/view/KeyEventTest.java | 50 +++++++++++++++---- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/core/tests/coretests/src/android/view/KeyEventTest.java b/core/tests/coretests/src/android/view/KeyEventTest.java index cbf11c4e2e1f4..32078ca99b482 100644 --- a/core/tests/coretests/src/android/view/KeyEventTest.java +++ b/core/tests/coretests/src/android/view/KeyEventTest.java @@ -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()); }