TEST(FlagStatus, negative_lock_clear) { FlagStatus flagStatus; { Vector_ModifierFlag v; v.push_back(ModifierFlag::COMMAND_L); v.push_back(ModifierFlag::FN); v.push_back(ModifierFlag::SHIFT_L); flagStatus.negative_lock_increase(v); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.increase(v); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.increase(v); EXPECT_EQ(ModifierFlag::COMMAND_L | ModifierFlag::FN | ModifierFlag::SHIFT_L, flagStatus.makeFlags()); flagStatus.reset(); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.increase(v); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.negative_lock_clear(); EXPECT_EQ(ModifierFlag::COMMAND_L | ModifierFlag::FN | ModifierFlag::SHIFT_L, flagStatus.makeFlags()); } }
TEST(FlagStatus, negative_lock_increase) { FlagStatus flagStatus; // ---------------------------------------- flagStatus.negative_lock_increase(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.increase(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.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(0), flagStatus.makeFlags()); flagStatus.increase(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.increase(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(ModifierFlag::COMMAND_L), flagStatus.makeFlags()); // ---------------------------------------- flagStatus.reset(); flagStatus.negative_lock_decrease(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(0), flagStatus.makeFlags()); flagStatus.increase(ModifierFlag::COMMAND_L); EXPECT_EQ(Flags(ModifierFlag::COMMAND_L), flagStatus.makeFlags()); }