Skip to content

Commit 0cbf130

Browse files
distericsAndroid (Google) Code Review
authored andcommitted
Merge "KeyboardInputMapper: Refactor alphabetic keyboard wake unit tests" into main
2 parents cedbda8 + 81a698e commit 0cbf130

1 file changed

Lines changed: 141 additions & 10 deletions

File tree

services/inputflinger/tests/KeyboardInputMapper_test.cpp

Lines changed: 141 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -691,32 +691,163 @@ TEST_F(KeyboardInputMapperUnitTest, Process_GestureEventToSetFlagKeepTouchMode)
691691
expectSingleKeyArg(argsList).flags);
692692
}
693693

694-
TEST_F_WITH_FLAGS(KeyboardInputMapperUnitTest, WakeBehavior_AlphabeticKeyboard,
695-
REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(com::android::input::flags,
696-
enable_alphabetic_keyboard_wake))) {
697-
// For internal alphabetic devices, keys will trigger wake on key down.
694+
// --- KeyboardInputMapperUnitTest_WakeFlagOverride ---
695+
696+
class KeyboardInputMapperUnitTest_WakeFlagOverride : public KeyboardInputMapperUnitTest {
697+
protected:
698+
virtual void SetUp() override {
699+
SetUp(/*wakeFlag=*/com::android::input::flags::enable_alphabetic_keyboard_wake());
700+
}
701+
702+
void SetUp(bool wakeFlag) {
703+
mWakeFlagInitialValue = com::android::input::flags::enable_alphabetic_keyboard_wake();
704+
com::android::input::flags::enable_alphabetic_keyboard_wake(wakeFlag);
705+
KeyboardInputMapperUnitTest::SetUp();
706+
}
707+
708+
void TearDown() override {
709+
com::android::input::flags::enable_alphabetic_keyboard_wake(mWakeFlagInitialValue);
710+
KeyboardInputMapperUnitTest::TearDown();
711+
}
712+
713+
bool mWakeFlagInitialValue;
714+
};
715+
716+
// --- KeyboardInputMapperUnitTest_NonAlphabeticKeyboard_WakeFlagEnabled ---
717+
718+
class KeyboardInputMapperUnitTest_NonAlphabeticKeyboard_WakeFlagEnabled
719+
: public KeyboardInputMapperUnitTest_WakeFlagOverride {
720+
protected:
721+
void SetUp() override {
722+
KeyboardInputMapperUnitTest_WakeFlagOverride::SetUp(/*wakeFlag=*/true);
723+
}
724+
};
725+
726+
TEST_F(KeyboardInputMapperUnitTest_NonAlphabeticKeyboard_WakeFlagEnabled,
727+
NonAlphabeticDevice_WakeBehavior) {
728+
// For internal non-alphabetic devices keys will not trigger wake.
698729

699730
addKeyByEvdevCode(KEY_A, AKEYCODE_A);
700731
addKeyByEvdevCode(KEY_HOME, AKEYCODE_HOME);
701732
addKeyByEvdevCode(KEY_PLAYPAUSE, AKEYCODE_MEDIA_PLAY_PAUSE);
702733

703734
std::list<NotifyArgs> argsList = processKeyAndSync(ARBITRARY_TIME, KEY_A, 1);
704-
ASSERT_EQ(POLICY_FLAG_WAKE, expectSingleKeyArg(argsList).policyFlags);
735+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
705736

706737
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_A, 0);
707-
ASSERT_EQ(uint32_t(0), expectSingleKeyArg(argsList).policyFlags);
738+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
708739

709740
argsList = processKeyAndSync(ARBITRARY_TIME, KEY_HOME, 1);
710-
ASSERT_EQ(POLICY_FLAG_WAKE, expectSingleKeyArg(argsList).policyFlags);
741+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
711742

712743
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_HOME, 0);
713-
ASSERT_EQ(uint32_t(0), expectSingleKeyArg(argsList).policyFlags);
744+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
714745

715746
argsList = processKeyAndSync(ARBITRARY_TIME, KEY_PLAYPAUSE, 1);
716-
ASSERT_EQ(POLICY_FLAG_WAKE, expectSingleKeyArg(argsList).policyFlags);
747+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
717748

718749
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_PLAYPAUSE, 0);
719-
ASSERT_EQ(uint32_t(0), expectSingleKeyArg(argsList).policyFlags);
750+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
751+
}
752+
753+
// --- KeyboardInputMapperUnitTest_AlphabeticKeyboard_WakeFlagEnabled ---
754+
755+
class KeyboardInputMapperUnitTest_AlphabeticKeyboard_WakeFlagEnabled
756+
: public KeyboardInputMapperUnitTest_WakeFlagOverride {
757+
protected:
758+
void SetUp() override {
759+
KeyboardInputMapperUnitTest_WakeFlagOverride::SetUp(/*wakeFlag=*/true);
760+
761+
ON_CALL((*mDevice), getKeyboardType).WillByDefault(Return(KeyboardType::ALPHABETIC));
762+
}
763+
};
764+
765+
TEST_F(KeyboardInputMapperUnitTest_AlphabeticKeyboard_WakeFlagEnabled, WakeBehavior) {
766+
// For internal alphabetic devices, keys will trigger wake on key down when
767+
// flag is enabled.
768+
addKeyByEvdevCode(KEY_A, AKEYCODE_A);
769+
addKeyByEvdevCode(KEY_HOME, AKEYCODE_HOME);
770+
addKeyByEvdevCode(KEY_PLAYPAUSE, AKEYCODE_MEDIA_PLAY_PAUSE);
771+
772+
std::list<NotifyArgs> argsList = processKeyAndSync(ARBITRARY_TIME, KEY_A, 1);
773+
EXPECT_THAT(argsList,
774+
ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(POLICY_FLAG_WAKE))));
775+
776+
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_A, 0);
777+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
778+
779+
argsList = processKeyAndSync(ARBITRARY_TIME, KEY_HOME, 1);
780+
EXPECT_THAT(argsList,
781+
ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(POLICY_FLAG_WAKE))));
782+
783+
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_HOME, 0);
784+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
785+
786+
argsList = processKeyAndSync(ARBITRARY_TIME, KEY_PLAYPAUSE, 1);
787+
EXPECT_THAT(argsList,
788+
ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(POLICY_FLAG_WAKE))));
789+
790+
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_PLAYPAUSE, 0);
791+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
792+
}
793+
794+
TEST_F(KeyboardInputMapperUnitTest_AlphabeticKeyboard_WakeFlagEnabled, WakeBehavior_UnknownKey) {
795+
// For internal alphabetic devices, unknown keys will trigger wake on key down when
796+
// flag is enabled.
797+
798+
const int32_t USAGE_UNKNOWN = 0x07ffff;
799+
EXPECT_CALL(mMockEventHub, mapKey(EVENTHUB_ID, KEY_UNKNOWN, USAGE_UNKNOWN, _, _, _, _))
800+
.WillRepeatedly(Return(NAME_NOT_FOUND));
801+
802+
// Key down with unknown scan code or usage code.
803+
std::list<NotifyArgs> argsList = process(ARBITRARY_TIME, EV_MSC, MSC_SCAN, USAGE_UNKNOWN);
804+
argsList += process(ARBITRARY_TIME, EV_KEY, KEY_UNKNOWN, 1);
805+
EXPECT_THAT(argsList,
806+
ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(POLICY_FLAG_WAKE))));
807+
808+
// Key up with unknown scan code or usage code.
809+
argsList = process(ARBITRARY_TIME, EV_MSC, MSC_SCAN, USAGE_UNKNOWN);
810+
argsList += process(ARBITRARY_TIME + 1, EV_KEY, KEY_UNKNOWN, 0);
811+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
812+
}
813+
814+
// --- KeyboardInputMapperUnitTest_AlphabeticDevice_AlphabeticKeyboardWakeDisabled ---
815+
816+
class KeyboardInputMapperUnitTest_AlphabeticKeyboard_WakeFlagDisabled
817+
: public KeyboardInputMapperUnitTest_WakeFlagOverride {
818+
protected:
819+
void SetUp() override {
820+
KeyboardInputMapperUnitTest_WakeFlagOverride::SetUp(/*wakeFlag=*/false);
821+
822+
ON_CALL((*mDevice), getKeyboardType).WillByDefault(Return(KeyboardType::ALPHABETIC));
823+
}
824+
};
825+
826+
TEST_F(KeyboardInputMapperUnitTest_AlphabeticKeyboard_WakeFlagDisabled, WakeBehavior) {
827+
// For internal alphabetic devices, keys will not trigger wake when flag is
828+
// disabled.
829+
830+
addKeyByEvdevCode(KEY_A, AKEYCODE_A);
831+
addKeyByEvdevCode(KEY_HOME, AKEYCODE_HOME);
832+
addKeyByEvdevCode(KEY_PLAYPAUSE, AKEYCODE_MEDIA_PLAY_PAUSE);
833+
834+
std::list<NotifyArgs> argsList = processKeyAndSync(ARBITRARY_TIME, KEY_A, 1);
835+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
836+
837+
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_A, 0);
838+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
839+
840+
argsList = processKeyAndSync(ARBITRARY_TIME, KEY_HOME, 1);
841+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
842+
843+
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_HOME, 0);
844+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
845+
846+
argsList = processKeyAndSync(ARBITRARY_TIME, KEY_PLAYPAUSE, 1);
847+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
848+
849+
argsList = processKeyAndSync(ARBITRARY_TIME + 1, KEY_PLAYPAUSE, 0);
850+
EXPECT_THAT(argsList, ElementsAre(VariantWith<NotifyKeyArgs>(WithPolicyFlags(0U))));
720851
}
721852

722853
// --- KeyboardInputMapperTest ---

0 commit comments

Comments
 (0)