Changeset View
Changeset View
Standalone View
Standalone View
autotests/krununittest.cpp
Show First 20 Lines • Show All 227 Lines • ▼ Show 20 Line(s) | 225 | { | |||
---|---|---|---|---|---|
228 | QFETCH(QList<QUrl>, urls); | 228 | QFETCH(QList<QUrl>, urls); | ||
229 | QFETCH(bool, tempfiles); | 229 | QFETCH(bool, tempfiles); | ||
230 | QFETCH(QString, expected); | 230 | QFETCH(QString, expected); | ||
231 | KIO::DesktopExecParser parser(service, urls); | 231 | KIO::DesktopExecParser parser(service, urls); | ||
232 | parser.setUrlsAreTempFiles(tempfiles); | 232 | parser.setUrlsAreTempFiles(tempfiles); | ||
233 | QCOMPARE(KShell::joinArgs(parser.resultingArguments()), expected); | 233 | QCOMPARE(KShell::joinArgs(parser.resultingArguments()), expected); | ||
234 | } | 234 | } | ||
235 | 235 | | |||
236 | void KRunUnitTest::testKtelnetservice() | ||||
237 | { | ||||
238 | const QString ktelnetDesk = QFINDTESTDATA(QStringLiteral("../src/ioslaves/telnet/ktelnetservice5.desktop")); | ||||
dfaure: QFINDTESTDATA() is more flexible than a solution like CMAKE_SOURCE_DIR [e.g. it allows… | |||||
dfaure: Good practice is to follow that with QVERIFY(!ktelnet.isEmpty()); | |||||
239 | QVERIFY(!ktelnetDesk.isEmpty()); | ||||
240 | | ||||
241 | QString ktelnetExec = QStandardPaths::findExecutable(QStringLiteral("ktelnetservice5")); | ||||
242 | | ||||
243 | const KService service(ktelnetDesk); | ||||
244 | | ||||
245 | // if KIO is installed we'll find <bindir>/ktelnetservice5, otherwise KIO::DesktopExecParser will | ||||
Wait, I didn't notice before, but this is broken. dfaure: Wait, I didn't notice before, but this is broken.
On my system it's in another prefix.
On… | |||||
246 | // use the executable from Exec= line | ||||
247 | if (ktelnetExec.isEmpty()) { | ||||
248 | ktelnetExec = service.exec().remove(QLatin1String(" %u")); | ||||
249 | } | ||||
250 | QVERIFY(!ktelnetExec.isEmpty()); | ||||
251 | | ||||
252 | const QStringList protocols({QStringLiteral("ssh"), QStringLiteral("telnet"), QStringLiteral("rlogin")}); | ||||
253 | for (const QString &protocol : protocols) { | ||||
254 | QList<QUrl> urls({QUrl(QStringLiteral("%1://root@10.1.1.1").arg(protocol))}); | ||||
255 | KIO::DesktopExecParser parser(service, urls); | ||||
256 | QCOMPARE(KShell::joinArgs(parser.resultingArguments()), | ||||
257 | QStringLiteral("%1 %2://root@10.1.1.1").arg(ktelnetExec, protocol)); | ||||
258 | } | ||||
259 | } | ||||
260 | | ||||
236 | class KRunImpl : public KRun | 261 | class KRunImpl : public KRun | ||
237 | { | 262 | { | ||
238 | public: | 263 | public: | ||
239 | KRunImpl(const QUrl &url) | 264 | KRunImpl(const QUrl &url) | ||
240 | : KRun(url, nullptr, false), m_errCode(-1) {} | 265 | : KRun(url, nullptr, false), m_errCode(-1) {} | ||
241 | 266 | | |||
242 | void foundMimeType(const QString &type) override { | 267 | void foundMimeType(const QString &type) override { | ||
243 | m_mimeType = type; | 268 | m_mimeType = type; | ||
▲ Show 20 Lines • Show All 155 Lines • Show Last 20 Lines |
QFINDTESTDATA() is more flexible than a solution like CMAKE_SOURCE_DIR [e.g. it allows deploying unittests to android devices]. It's also simpler to use (no buildsystem change).