Skip to content

Commit c233f0a

Browse files
committed
Add tests for AndroidInputEventProtoConverter::toProtoKeyEvent
Bug: 391468016 Test: Presubmit Flag: TEST_ONLY Change-Id: If328c29436200afeb2522a0f46fc4aaa87a58b67
1 parent 2889b8f commit c233f0a

2 files changed

Lines changed: 91 additions & 2 deletions

File tree

services/inputflinger/dispatcher/trace/InputTracingBackendInterface.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct TracedKeyEvent {
5050
uint32_t policyFlags;
5151
int32_t deviceId;
5252
uint32_t source;
53-
ui::LogicalDisplayId displayId;
53+
ui::LogicalDisplayId displayId = ui::LogicalDisplayId::INVALID;
5454
int32_t action;
5555
int32_t keyCode;
5656
int32_t scanCode;

services/inputflinger/tests/AndroidInputEventProtoConverter_test.cpp

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,24 @@ class MockProtoMotion {
6060
MOCK_METHOD(MockProtoPointer*, add_pointer, ());
6161
};
6262

63-
using TestProtoConverter = AndroidInputEventProtoConverter<MockProtoMotion, proto::AndroidKeyEvent,
63+
class MockProtoKey {
64+
public:
65+
MOCK_METHOD(void, set_event_id, (uint32_t));
66+
MOCK_METHOD(void, set_event_time_nanos, (int64_t));
67+
MOCK_METHOD(void, set_down_time_nanos, (int64_t));
68+
MOCK_METHOD(void, set_source, (uint32_t));
69+
MOCK_METHOD(void, set_action, (int32_t));
70+
MOCK_METHOD(void, set_device_id, (uint32_t));
71+
MOCK_METHOD(void, set_display_id, (uint32_t));
72+
MOCK_METHOD(void, set_repeat_count, (uint32_t));
73+
MOCK_METHOD(void, set_flags, (uint32_t));
74+
MOCK_METHOD(void, set_policy_flags, (uint32_t));
75+
MOCK_METHOD(void, set_key_code, (uint32_t));
76+
MOCK_METHOD(void, set_scan_code, (uint32_t));
77+
MOCK_METHOD(void, set_meta_state, (uint32_t));
78+
};
79+
80+
using TestProtoConverter = AndroidInputEventProtoConverter<MockProtoMotion, MockProtoKey,
6481
proto::AndroidWindowInputDispatchEvent,
6582
proto::AndroidInputEventConfig::Decoder>;
6683

@@ -346,6 +363,78 @@ TEST(AndroidInputEventProtoConverterTest, ToProtoMotionEvent_ZeroValues) {
346363
TestProtoConverter::toProtoMotionEvent(event, proto, /*isRedacted=*/false);
347364
}
348365

366+
TEST(AndroidInputEventProtoConverterTest, ToProtoKeyEvent) {
367+
TracedKeyEvent event{};
368+
event.id = 1;
369+
event.eventTime = 2;
370+
event.downTime = 3;
371+
event.source = AINPUT_SOURCE_KEYBOARD;
372+
event.action = AKEY_EVENT_ACTION_DOWN;
373+
event.deviceId = 4;
374+
event.displayId = ui::LogicalDisplayId(5);
375+
event.repeatCount = 6;
376+
event.flags = 7;
377+
event.policyFlags = 8;
378+
event.keyCode = 9;
379+
event.scanCode = 10;
380+
event.metaState = 11;
381+
382+
testing::StrictMock<MockProtoKey> proto;
383+
384+
EXPECT_CALL(proto, set_event_id(1));
385+
EXPECT_CALL(proto, set_event_time_nanos(2));
386+
EXPECT_CALL(proto, set_down_time_nanos(3));
387+
EXPECT_CALL(proto, set_source(AINPUT_SOURCE_KEYBOARD));
388+
EXPECT_CALL(proto, set_action(AKEY_EVENT_ACTION_DOWN));
389+
EXPECT_CALL(proto, set_device_id(4));
390+
EXPECT_CALL(proto, set_display_id(5));
391+
EXPECT_CALL(proto, set_repeat_count(6));
392+
EXPECT_CALL(proto, set_flags(7));
393+
EXPECT_CALL(proto, set_policy_flags(8));
394+
EXPECT_CALL(proto, set_key_code(9));
395+
EXPECT_CALL(proto, set_scan_code(10));
396+
EXPECT_CALL(proto, set_meta_state(11));
397+
398+
TestProtoConverter::toProtoKeyEvent(event, proto, /*isRedacted=*/false);
399+
}
400+
401+
TEST(AndroidInputEventProtoConverterTest, ToProtoKeyEvent_Redacted) {
402+
TracedKeyEvent event{};
403+
event.id = 1;
404+
event.eventTime = 2;
405+
event.downTime = 3;
406+
event.source = AINPUT_SOURCE_KEYBOARD;
407+
event.action = AKEY_EVENT_ACTION_DOWN;
408+
event.deviceId = 4;
409+
event.displayId = ui::LogicalDisplayId(5);
410+
event.repeatCount = 6;
411+
event.flags = 7;
412+
event.policyFlags = 8;
413+
event.keyCode = 9;
414+
event.scanCode = 10;
415+
event.metaState = 11;
416+
417+
testing::StrictMock<MockProtoKey> proto;
418+
419+
EXPECT_CALL(proto, set_event_id(1));
420+
EXPECT_CALL(proto, set_event_time_nanos(2));
421+
EXPECT_CALL(proto, set_down_time_nanos(3));
422+
EXPECT_CALL(proto, set_source(AINPUT_SOURCE_KEYBOARD));
423+
EXPECT_CALL(proto, set_action(AKEY_EVENT_ACTION_DOWN));
424+
EXPECT_CALL(proto, set_device_id(4));
425+
EXPECT_CALL(proto, set_display_id(5));
426+
EXPECT_CALL(proto, set_repeat_count(6));
427+
EXPECT_CALL(proto, set_flags(7));
428+
EXPECT_CALL(proto, set_policy_flags(8));
429+
430+
// Redacted fields
431+
EXPECT_CALL(proto, set_key_code(_)).Times(0);
432+
EXPECT_CALL(proto, set_scan_code(_)).Times(0);
433+
EXPECT_CALL(proto, set_meta_state(_)).Times(0);
434+
435+
TestProtoConverter::toProtoKeyEvent(event, proto, /*isRedacted=*/true);
436+
}
437+
349438
} // namespace
350439

351440
} // namespace android::inputdispatcher::trace

0 commit comments

Comments
 (0)