TEST(FlagStatus, lock_increase) { FlagStatus flagStatus; // Do nothing with ModifierFlag::NONE. flagStatus.lock_increase(ModifierFlag::NONE); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.lock_increase(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(ModifierFlag::COMMAND_L), flagStatus.makeFlags()); // lock don't cancel by reset & set. flagStatus.reset(); flagStatus.set(KeyCode::A, Flags(0)); EXPECT_EQ(Flags(ModifierFlag::COMMAND_L), flagStatus.makeFlags()); flagStatus.lock_decrease(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(), flagStatus.makeFlags()); }