@@ -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