#include #include "../src/KeyMod.hpp" class KeyModTest { public: explicit KeyModTest() {} virtual ~KeyModTest() {} protected: }; TEST_CASE_METHOD(KeyModTest, "KeyMod_to_string") { SECTION("text, no mod") { pwq::KeyMod km {pwq::PWQ_KEY_TEXT, 'h'}; REQUIRE(L"h" == km.string()); } SECTION("text, ctrl mod") { auto km = pwq::KeyMod(pwq::PWQ_KEY_TEXT, 'h') .mod(pwq::PWQ_MOD_CTRL); REQUIRE(L"C-h" == km.string()); } SECTION("text, alt mod") { auto km = pwq::KeyMod(pwq::PWQ_KEY_TEXT, 'h') .mod(pwq::PWQ_MOD_ALT); REQUIRE(L"A-h" == km.string()); } SECTION("text, ctrl + alt mod") { auto km = pwq::KeyMod(pwq::PWQ_KEY_TEXT, 'h') .mod(pwq::PWQ_MOD_ALT) .mod(pwq::PWQ_MOD_CTRL); REQUIRE(L"C-A-h" == km.string()); } SECTION("no text, no mod") { pwq::KeyMod km {pwq::PWQ_KEY_UP}; REQUIRE(L"UP" == km.string()); } SECTION("no text, ctrl mod") { auto km = pwq::KeyMod(pwq::PWQ_KEY_DOWN) .mod(pwq::PWQ_MOD_CTRL); REQUIRE(L"C-DOWN" == km.string()); } SECTION("no text, alt mod") { auto km = pwq::KeyMod(pwq::PWQ_KEY_LEFT) .mod(pwq::PWQ_MOD_ALT); REQUIRE(L"A-LEFT" == km.string()); } SECTION("no text, alt mod") { auto km = pwq::KeyMod(pwq::PWQ_KEY_RIGHT) .mod(pwq::PWQ_MOD_CTRL) .mod(pwq::PWQ_MOD_ALT); REQUIRE(L"C-A-RIGHT" == km.string()); } } TEST_CASE_METHOD(KeyModTest, "KeyMod_from_string") { REQUIRE(L"w" == pwq::KeyMod(L"w").string()); REQUIRE(L"t" == pwq::KeyMod(L" t ").string()); REQUIRE(L"C-w" == pwq::KeyMod(L"C-w ").string()); REQUIRE(L"A-w" == pwq::KeyMod(L" A-w").string()); REQUIRE(L"C-A-w" == pwq::KeyMod(L"C-A-w").string()); REQUIRE(L"C-A-w" == pwq::KeyMod(L" A-C-w ").string()); REQUIRE(L"UP" == pwq::KeyMod(L" UP ").string()); REQUIRE(L"C-DOWN" == pwq::KeyMod(L"C-DOWN ").string()); REQUIRE(L"A-LEFT" == pwq::KeyMod(L" A-LEFT ").string()); REQUIRE(L"C-A-RIGHT" == pwq::KeyMod(L"A-C-RIGHT").string()); REQUIRE(pwq::PWQ_KEY_TEXT == pwq::KeyMod(L" U ").key()); REQUIRE(pwq::PWQ_KEY_UP == pwq::KeyMod(L" UP ").key()); REQUIRE(pwq::PWQ_KEY_DOWN == pwq::KeyMod(L" DOWN ").key()); REQUIRE(pwq::PWQ_KEY_LEFT == pwq::KeyMod(L" LEFT ").key()); REQUIRE(pwq::PWQ_KEY_RIGHT == pwq::KeyMod(L" RIGHT ").key()); }