Warning, file /frameworks/kservice/autotests/ktoolinvocation_x11test.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2020 Alexander Lohnau <alexander.lohnau@gmx.de> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <KConfigGroup> 0008 #include <KService> 0009 #include <KSharedConfig> 0010 #include <QTest> 0011 #include <ktoolinvocation.h> 0012 0013 class KToolInvocationTest : public QObject 0014 { 0015 Q_OBJECT 0016 private Q_SLOTS: 0017 void initTestCase(); 0018 void testTerminalEntryParsing(); 0019 void testLegacyEntryParsing(); 0020 void testTerminalEntryParsingWithParameters(); 0021 void testNoKonsole(); 0022 0023 private: 0024 KConfigGroup general; 0025 }; 0026 0027 void KToolInvocationTest::initTestCase() 0028 { 0029 QStandardPaths::setTestModeEnabled(true); 0030 general = KSharedConfig::openConfig()->group("General"); 0031 } 0032 0033 void KToolInvocationTest::testTerminalEntryParsing() 0034 { 0035 general.writeEntry("TerminalService", QFINDTESTDATA("org.kde.konsole.desktop")); 0036 general.sync(); 0037 0038 const KService::Ptr ptr = KToolInvocation::terminalApplication(); 0039 QVERIFY(ptr->isValid()); 0040 QCOMPARE(ptr->exec(), QStringLiteral("konsole")); 0041 QCOMPARE(ptr->workingDirectory(), QString()); 0042 } 0043 0044 void KToolInvocationTest::testLegacyEntryParsing() 0045 { 0046 general.deleteGroup(); 0047 general.writeEntry("TerminalApplication", "/bin/true"); 0048 general.sync(); 0049 0050 const KService::Ptr ptr = KToolInvocation::terminalApplication(); 0051 QVERIFY(ptr->isValid()); 0052 QCOMPARE(ptr->exec(), QStringLiteral("/bin/true")); 0053 QCOMPARE(ptr->workingDirectory(), QString()); 0054 } 0055 0056 void KToolInvocationTest::testTerminalEntryParsingWithParameters() 0057 { 0058 general.writeEntry("TerminalService", QFINDTESTDATA("org.kde.konsole.desktop")); 0059 general.sync(); 0060 0061 const KService::Ptr ptr = KToolInvocation::terminalApplication(QStringLiteral("/bin/true"), QDir::homePath()); 0062 QVERIFY(ptr->isValid()); 0063 QCOMPARE(ptr->exec(), QStringLiteral("konsole --noclose -e /bin/true --workdir %1").arg(QDir::homePath())); 0064 QCOMPARE(ptr->workingDirectory(), QDir::homePath()); 0065 } 0066 0067 void KToolInvocationTest::testNoKonsole() 0068 { 0069 general.deleteGroup(); 0070 general.sync(); 0071 0072 const KService::Ptr ptr = KToolInvocation::terminalApplication(); 0073 QVERIFY(!ptr); 0074 } 0075 0076 QTEST_MAIN(KToolInvocationTest) 0077 0078 #include "ktoolinvocation_x11test.moc"