Пример #1
0
TEST(FlagStatus, ScopedTemporaryFlagsChanger) {
  {
    FlagStatus flagStatus;

    flagStatus.increase(ModifierFlag::SHIFT_L);
    flagStatus.increase(ModifierFlag::SHIFT_L);
    flagStatus.increase(ModifierFlag::SHIFT_L);
    flagStatus.increase(ModifierFlag::SHIFT_L);
    flagStatus.increase(ModifierFlag::SHIFT_R);
    flagStatus.temporary_increase(ModifierFlag::CONTROL_L);
    flagStatus.lock_increase(ModifierFlag::COMMAND_R);
    flagStatus.sticky_increase(ModifierFlag::OPTION_R);

    EXPECT_EQ(Flags(ModifierFlag::SHIFT_L | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());

    {
      FlagStatus::ScopedTemporaryFlagsChanger stfc(flagStatus,
                                                   ModifierFlag::FN | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_R);

      EXPECT_EQ(Flags(ModifierFlag::FN | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_R), flagStatus.makeFlags());
    }

    EXPECT_EQ(Flags(ModifierFlag::SHIFT_L | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());

    flagStatus.decrease(ModifierFlag::SHIFT_L);
    flagStatus.decrease(ModifierFlag::SHIFT_L);
    flagStatus.decrease(ModifierFlag::SHIFT_L);

    EXPECT_EQ(Flags(ModifierFlag::SHIFT_L | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());

    flagStatus.decrease(ModifierFlag::SHIFT_L);

    EXPECT_EQ(Flags(ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());
  }

  // ------------------------------------------------------------
  {
    FlagStatus flagStatus;

    flagStatus.decrease(ModifierFlag::SHIFT_L);
    flagStatus.decrease(ModifierFlag::SHIFT_L);

    {
      Flags flags(ModifierFlag::SHIFT_R);
      FlagStatus::ScopedTemporaryFlagsChanger stfc(flagStatus, flags);
      EXPECT_EQ(Flags(ModifierFlag::SHIFT_R), flagStatus.makeFlags());
    }

    flagStatus.increase(ModifierFlag::SHIFT_L);
    flagStatus.increase(ModifierFlag::SHIFT_L);

    EXPECT_EQ(Flags(0), flagStatus.makeFlags());
  }
}
Пример #2
0
TEST(FlagStatus, decrease) {
  FlagStatus flagStatus;

  flagStatus.increase(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L);
  EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L), flagStatus.makeFlags());

  flagStatus.decrease(ModifierFlag::CONTROL_L);
  EXPECT_EQ(Flags(ModifierFlag::COMMAND_L), flagStatus.makeFlags());
}
Пример #3
0
TEST(FlagStatus, decrease) {
  FlagStatus flagStatus;

  {
    Vector_ModifierFlag v;
    v.push_back(ModifierFlag::COMMAND_L);
    v.push_back(ModifierFlag::CONTROL_L);
    flagStatus.increase(v);
    EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L), flagStatus.makeFlags());
  }

  flagStatus.decrease(ModifierFlag::CONTROL_L);
  EXPECT_EQ(Flags(ModifierFlag::COMMAND_L), flagStatus.makeFlags());
}
Пример #4
0
TEST(FlagStatus, increase) {
  {
    FlagStatus flagStatus;

    // Do nothing with ModifierFlag::NONE.
    flagStatus.increase(ModifierFlag::NONE);
    EXPECT_EQ(Flags(0), flagStatus.makeFlags());

    flagStatus.increase(ModifierFlag::SHIFT_L);
    EXPECT_EQ(Flags(ModifierFlag::SHIFT_L), flagStatus.makeFlags());

    {
      Vector_ModifierFlag v;
      v.push_back(ModifierFlag::COMMAND_L);
      v.push_back(ModifierFlag::CONTROL_L);
      flagStatus.increase(v);
      EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L), flagStatus.makeFlags());
    }

    flagStatus.increase(ModifierFlag::NONE);
    EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L), flagStatus.makeFlags());
  }

  {
    FlagStatus flagStatus;
    Vector_ModifierFlag v;
    v.push_back(ModifierFlag::COMMAND_L);
    v.push_back(ModifierFlag::CONTROL_L);
    flagStatus.increase(ModifierFlag::SHIFT_L, v);
    EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L), flagStatus.makeFlags());
  }
  {
    FlagStatus flagStatus;
    Vector_ModifierFlag v;
    v.push_back(ModifierFlag::COMMAND_L);
    v.push_back(ModifierFlag::CONTROL_L);
    flagStatus.increase(ModifierFlag::COMMAND_L, v);
    EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L), flagStatus.makeFlags());
    flagStatus.decrease(v);
    EXPECT_EQ(Flags(0), flagStatus.makeFlags());
  }
}