klibexectest.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
  3. SPDX-FileCopyrightText: 2021 Harald Sitter <sitter@kde.org>
  4. */
  5. #include <QObject>
  6. #include <QTest>
  7. #include <QFileInfo>
  8. #include <KLibexec>
  9. class KLibexecTest : public QObject
  10. {
  11. Q_OBJECT
  12. const QString m_relative = QStringLiteral("fakeexec/kf" QT_STRINGIFY(QT_VERSION_MAJOR));
  13. const QString m_fixtureName =
  14. #ifdef Q_OS_WIN
  15. QStringLiteral("klibexectest-fixture-binary.exe");
  16. #else
  17. QStringLiteral("klibexectest-fixture-binary");
  18. #endif
  19. QString m_fixtureDir;
  20. QString m_fixturePath;
  21. private Q_SLOTS:
  22. void initTestCase()
  23. {
  24. m_fixtureDir = QDir::cleanPath(QCoreApplication::applicationDirPath() + QDir::separator() + m_relative);
  25. m_fixturePath = QDir::cleanPath(m_fixtureDir + QDir::separator() + m_fixtureName);
  26. QVERIFY(QDir().mkpath(m_fixtureDir));
  27. QFile fixture(m_fixturePath);
  28. QVERIFY(fixture.open(QFile::ReadWrite));
  29. fixture.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner);
  30. m_fixtureDir = QFileInfo(m_fixtureDir).canonicalFilePath();
  31. m_fixturePath = QFileInfo(m_fixtureDir).canonicalFilePath();
  32. }
  33. void testPath()
  34. {
  35. QCOMPARE(KLibexec::path(m_relative), m_fixtureDir);
  36. }
  37. void testKDEFrameworksPaths()
  38. {
  39. auto paths = KLibexec::kdeFrameworksPaths(m_relative);
  40. QVERIFY(paths.contains(QCoreApplication::applicationDirPath()));
  41. QVERIFY(paths.contains(m_fixtureDir));
  42. // not exhaustive verification
  43. }
  44. };
  45. QTEST_MAIN(KLibexecTest)
  46. #include "klibexectest.moc"