File indexing completed on 2024-12-01 08:12:31

0001 /*
0002  * SPDX-FileCopyrightText: 2022 Aleix Pol Gonzalez <aleixpol@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #include <QStandardPaths>
0008 #include <QTest>
0009 
0010 #include "../src/xdgshortcut.h"
0011 
0012 class XdgShortcutTest : public QObject
0013 {
0014     Q_OBJECT
0015 public:
0016     XdgShortcutTest(QObject *parent = nullptr)
0017         : QObject(parent)
0018     {
0019         QStandardPaths::setTestModeEnabled(true);
0020     }
0021 
0022 private Q_SLOTS:
0023     void initTestCase()
0024     {
0025     }
0026 
0027     void testCheckShortcut_data()
0028     {
0029         QTest::addColumn<QString>("expression");
0030         QTest::addColumn<QKeySequence>("result");
0031 
0032         QTest::newRow("a") << "a" << QKeySequence(Qt::Key_A);
0033         QTest::newRow("ctrla") << "CTRL+a" << QKeySequence(Qt::Key_A | Qt::ControlModifier);
0034         QTest::newRow("ctrlshifta") << "CTRL+SHIFT+a" << QKeySequence(Qt::Key_A | Qt::ControlModifier | Qt::ShiftModifier);
0035         QTest::newRow("ctrlaltreturn") << "CTRL+ALT+Return" << QKeySequence(Qt::Key_Return | Qt::ControlModifier | Qt::AltModifier);
0036         QTest::newRow("withweirdtoken") << "CTRL+a;Banana" << QKeySequence(Qt::Key_A | Qt::ControlModifier);
0037         QTest::newRow("justcontrol") << "Control_L" << QKeySequence(Qt::Key_Control);
0038     }
0039 
0040     void testCheckShortcut()
0041     {
0042         QFETCH(QString, expression);
0043         QFETCH(QKeySequence, result);
0044 
0045         const auto shortcut = XdgShortcut::parse(expression);
0046         QVERIFY(shortcut.has_value());
0047         QCOMPARE(*shortcut, result);
0048     }
0049 };
0050 
0051 QTEST_GUILESS_MAIN(XdgShortcutTest)
0052 
0053 #include "xdgshortcuttest.moc"