mirror of
https://github.com/hyprwm/Hyprland.git
synced 2026-08-18 11:02:10 +00:00
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
#include <keybinds/Resolver.hpp>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
using namespace Keybinds;
|
|
using namespace Input;
|
|
|
|
TEST(KeybindsResolver, ModifierFromString) {
|
|
EXPECT_EQ(modifierFromString("SHIFT"), HL_MODIFIER_SHIFT);
|
|
EXPECT_EQ(modifierFromString("CONTROL"), HL_MODIFIER_CTRL);
|
|
EXPECT_EQ(modifierFromString("MOD1"), HL_MODIFIER_ALT);
|
|
EXPECT_EQ(modifierFromString("MOD4"), HL_MODIFIER_META);
|
|
EXPECT_EQ(modifierFromString("shift"), std::nullopt);
|
|
EXPECT_EQ(modifierFromString("UNKNOWN"), std::nullopt);
|
|
}
|
|
|
|
TEST(KeybindsResolver, ModMaskFromString) {
|
|
EXPECT_EQ(modMaskFromString("shift ctrl alt super"), HL_MODIFIER_SHIFT | HL_MODIFIER_CTRL | HL_MODIFIER_ALT | HL_MODIFIER_META);
|
|
EXPECT_EQ(modMaskFromString("CAPS MOD2 MOD3 MOD5"), HL_MODIFIER_CAPS | HL_MODIFIER_MOD2 | HL_MODIFIER_MOD3 | HL_MODIFIER_MOD5);
|
|
EXPECT_EQ(modMaskFromString(""), HL_MODIFIER_NONE);
|
|
}
|
|
|
|
TEST(KeybindsResolver, ExplicitKeycode) {
|
|
EXPECT_EQ(resolver()->resolveKeycode("42"), 42);
|
|
EXPECT_EQ(resolver()->resolveKeycode("code:7"), 7);
|
|
EXPECT_EQ(resolver()->resolveKeycode("mouse:272"), 272);
|
|
|
|
const auto INVALID_MOUSE = resolver()->resolveKeycode("mouse:271");
|
|
ASSERT_FALSE(INVALID_MOUSE.has_value());
|
|
EXPECT_EQ(INVALID_MOUSE.error(), "invalid mouse button");
|
|
}
|