gui/test: Add tests for Hotkey serialization to QSettings

This commit is contained in:
Povilas Kanapickas
2021-01-10 13:39:39 +02:00
parent 68cfb4e585
commit fb067d4001
4 changed files with 284 additions and 4 deletions

View File

@@ -74,6 +74,15 @@ namespace {
Qt::Key_Launch1,
Qt::Key_Select,
};
std::string keySequenceToString(const std::vector<TestKey>& key_pairs)
{
KeySequence sequence;
for (auto key_pair : key_pairs) {
sequence.appendKey(key_pair.key, key_pair.modifier);
}
return sequence.toString().toStdString();
}
} // namespace
class KeySequenceLoadSaveTestFixture :
@@ -118,3 +127,21 @@ INSTANTIATE_TEST_CASE_P(
KeySequenceLoadSaveTestFixture,
::testing::Combine(::testing::ValuesIn(s_key_sequence_test_keys),
::testing::Values(QSettings::NativeFormat, QSettings::IniFormat)));
TEST(KeySequenceTests, ToString)
{
ASSERT_EQ(keySequenceToString({{Qt::Key_Menu, Qt::MetaModifier}}),
"Meta");
ASSERT_EQ(keySequenceToString({{Qt::Key_A, 0}, {Qt::Key_B, 0}}),
"a+b");
ASSERT_EQ(keySequenceToString({{Qt::Key_A, 0}, {Qt::Key_Comma, 0}, {Qt::Key_B, 0}}),
"a+,+b");
ASSERT_EQ(keySequenceToString({{Qt::Key_A, 0}, {Qt::Key_Semicolon, 0}, {Qt::Key_B, 0}}),
"a+;+b");
ASSERT_EQ(keySequenceToString({{Qt::Key_A, 0}, {Qt::Key_Shift, Qt::ShiftModifier},
{Qt::Key_0, Qt::ShiftModifier}}),
"a+Shift+0");
ASSERT_EQ(keySequenceToString({{Qt::Key_A, 0}, {Qt::Key_Control, Qt::ControlModifier},
{Qt::Key_0, Qt::ControlModifier}}),
"a+Control+0");
}