diff --git a/tests/ut_applicationmanager.cpp b/tests/ut_applicationmanager.cpp index cef71e91..61efb2bb 100644 --- a/tests/ut_applicationmanager.cpp +++ b/tests/ut_applicationmanager.cpp @@ -59,19 +59,22 @@ TEST_F(TestApplicationManager, identifyService) } using namespace std::chrono_literals; // for service unit - auto workingDir = QDir::cleanPath(QDir::current().absolutePath() + QDir::separator() + ".." + QDir::separator() + "tools"); - QFile pidFile{workingDir + QDir::separator() + "pid.txt"}; + auto workingDir = QDir::current(); + ASSERT_TRUE(workingDir.cdUp()); + ASSERT_TRUE(workingDir.cdUp()); + ASSERT_TRUE(workingDir.cd("tools")); + QFile pidFile{workingDir.absoluteFilePath("pid.txt")}; if (pidFile.exists()) { ASSERT_TRUE(pidFile.remove()); } QProcess fakeServiceProc; - fakeServiceProc.setWorkingDirectory(workingDir); + fakeServiceProc.setWorkingDirectory(workingDir.absolutePath()); auto InstanceId = InstancePath.path().split('/').last(); fakeServiceProc.start("/usr/bin/systemd-run", {{QString{R"(--unit=app-DDE-test\x2dApplication@%1.service)"}.arg(InstanceId)}, {"--user"}, - {QString{"--working-directory=%1"}.arg(workingDir)}, + {QString{"--working-directory=%1"}.arg(workingDir.absolutePath())}, {"--slice=app.slice"}, {"./fake-process.sh"}}); fakeServiceProc.waitForFinished(); @@ -123,11 +126,11 @@ TEST_F(TestApplicationManager, identifyService) {{"--scope"}, {QString{R"(--unit=app-DDE-test\x2dApplication-%1.scope)"}.arg(InstanceId)}, {"--user"}, - {QString{"--working-directory=%1"}.arg(workingDir)}, + {QString{"--working-directory=%1"}.arg(workingDir.absolutePath())}, {"--slice=app.slice"}, {"./fake-process.sh"}, {"Scope"}}, - workingDir)); + workingDir.absolutePath())); std::this_thread::sleep_for(500ms); diff --git a/tests/ut_desktopentry.cpp b/tests/ut_desktopentry.cpp index 50136c24..91c18651 100644 --- a/tests/ut_desktopentry.cpp +++ b/tests/ut_desktopentry.cpp @@ -16,9 +16,11 @@ class TestDesktopEntry : public testing::Test static void SetUpTestCase() { env = qgetenv("XDG_DATA_DIRS"); - auto curDir = QDir::current(); - QByteArray fakeXDG = (curDir.absolutePath() + QDir::separator() + "data").toLocal8Bit(); - ASSERT_TRUE(qputenv("XDG_DATA_DIRS", fakeXDG)); + auto fakeXDG = QDir::current(); + ASSERT_TRUE(fakeXDG.cdUp()); + ASSERT_TRUE(fakeXDG.cdUp()); + ASSERT_TRUE(fakeXDG.cd("tests/data")); + ASSERT_TRUE(qputenv("XDG_DATA_DIRS", fakeXDG.absolutePath().toLocal8Bit())); ParserError err; auto file = DesktopFile::searchDesktopFileById("deepin-editor", err); if (!file.has_value()) { @@ -42,9 +44,11 @@ TEST_F(TestDesktopEntry, desktopFile) const auto &fileptr = file(); ASSERT_FALSE(fileptr.isNull()); const auto &exampleFile = file(); - auto curDir = QDir::current(); - QString path{curDir.absolutePath() + QDir::separator() + "data" + QDir::separator() + "applications" + QDir::separator() + - "deepin-editor.desktop"}; + auto desktopFileDir = QDir::current(); + ASSERT_TRUE(desktopFileDir.cdUp()); + ASSERT_TRUE(desktopFileDir.cdUp()); + ASSERT_TRUE(desktopFileDir.cd("tests/data/applications")); + const auto& path = desktopFileDir.absoluteFilePath("deepin-editor.desktop"); EXPECT_EQ(exampleFile->sourcePath(), path); EXPECT_EQ(exampleFile->desktopId().toStdString(), "deepin-editor"); } diff --git a/tests/ut_hook.cpp b/tests/ut_hook.cpp index 28b9fc41..1e0f664d 100644 --- a/tests/ut_hook.cpp +++ b/tests/ut_hook.cpp @@ -3,14 +3,18 @@ // SPDX-License-Identifier: LGPL-3.0-or-later #include "applicationHooks.h" +#include #include #include -#include TEST(ApplicationHookTest, load) { - auto file = - QDir::currentPath() + QDir::separator() + "data" + QDir::separator() + "hooks.d" + QDir::separator() + "1-test.json"; + auto hooksDir = QDir::current(); + ASSERT_TRUE(hooksDir.cdUp()); + ASSERT_TRUE(hooksDir.cdUp()); + ASSERT_TRUE(hooksDir.cd("tests/data/hooks.d")); + + auto file = hooksDir.absoluteFilePath("1-test.json"); auto hook = ApplicationHook::loadFromFile(file); EXPECT_TRUE(hook); EXPECT_EQ(hook->hookName(), QString{"1-test.json"});