mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-06 13:22:36 +08:00
gui/test: Add tests for Hotkey serialization to QSettings
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user