File indexing completed on 2024-04-28 05:31:30

0001 /*
0002     SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include <QObject>
0007 #include <QStandardPaths>
0008 #include <QTest>
0009 #define private public
0010 #include "cgroup.h"
0011 #define private private
0012 
0013 class CGroupTest : public QObject
0014 {
0015     Q_OBJECT
0016 
0017 private Q_SLOTS:
0018     void testAppUnitRegex_data()
0019     {
0020         QTest::addColumn<QString>("id");
0021         QTest::addColumn<QString>("desktopName");
0022         QTest::newRow("service") << "app-gnome-org.gnome.Evince@12345.service"
0023                                  << "org.gnome.Evince";
0024         QTest::newRow("service .desktop") << "app-flatpak-org.telegram.desktop@12345.service"
0025                                           << "org.telegram.desktop";
0026         QTest::newRow("service no launcher") << "app-org.kde.okular@12345.service"
0027                                              << "org.kde.okular";
0028         QTest::newRow("service no random") << "app-KDE-org.kde.okular.service"
0029                                            << "org.kde.okular";
0030         QTest::newRow("service no launcher no random") << "app-org.kde.amarok.service"
0031                                                        << "org.kde.amarok";
0032         QTest::newRow("scope") << "app-gnome-org.gnome.Evince-12345.scope"
0033                                << "org.gnome.Evince";
0034         QTest::newRow("scope no launcher") << "app-org.gnome.Evince-12345.scope"
0035                                            << "org.gnome.Evince";
0036     }
0037 
0038     void testAppUnitRegex()
0039     {
0040         QFETCH(QString, id);
0041         QFETCH(QString, desktopName);
0042         KSysGuard::CGroup c(id);
0043         if (c.service()->menuId().isEmpty()) {
0044             // The service is not known on this machine and we constructed a service with the id as name
0045             QCOMPARE(c.service()->name(), desktopName);
0046         } else {
0047             QCOMPARE(c.service()->desktopEntryName(), desktopName.toLower());
0048         }
0049     }
0050 
0051     void findAutostartApplication()
0052     {
0053         qputenv("XDG_CONFIG_DIRS", QFINDTESTDATA("data").toLocal8Bit());
0054         KSysGuard::CGroup cgroup("app-org.kde.korgac@autostart.service");
0055         QCOMPARE(cgroup.service()->desktopEntryName(), "org.kde.korgac");
0056         QCOMPARE(cgroup.service()->name(), "KOrganizer Reminder Client");
0057     }
0058 };
0059 QTEST_MAIN(CGroupTest);
0060 #include "cgrouptest.moc"