102 lines
2.4 KiB
C++
102 lines
2.4 KiB
C++
#include <catch2/catch.hpp>
|
|
#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());
|
|
}
|