diff --git a/src/test/unittests/base/PathTests.cpp b/src/test/unittests/base/PathTests.cpp deleted file mode 100644 index 334d476c3..000000000 --- a/src/test/unittests/base/PathTests.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2014 - 2021 Symless Ltd. - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#include "base/Path.h" -#include - -#include - -const std::string testDir = "tmp/test"; -const std::wstring testDirW = L"tmp/test"; - -TEST(PathTests, open_file_using_path) -{ - std::string utf8FileName = testDir + "/тіás.txt"; -#if SYSAPI_WIN32 - // Windows uses UTF-16 for file path and names - std::wstring fileName = testDirW + L"/\x0442\x0456\x00E1\x0073\x002E\x0074\x0078\x0074"; -#else - std::string fileName = utf8FileName; -#endif - - std::fstream file(fileName, std::fstream::out); - file << "test"; - file.close(); - - std::ifstream inFile(deskflow::filesystem::path(utf8FileName)); - EXPECT_TRUE(inFile.is_open()); -} diff --git a/src/unittests/CMakeLists.txt b/src/unittests/CMakeLists.txt index aacb012b0..11f5849f3 100644 --- a/src/unittests/CMakeLists.txt +++ b/src/unittests/CMakeLists.txt @@ -42,6 +42,7 @@ enable_testing() find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Test) add_subdirectory(arch) +add_subdirectory(base) add_subdirectory(common) add_subdirectory(deskflow) add_subdirectory(gui) diff --git a/src/unittests/base/CMakeLists.txt b/src/unittests/base/CMakeLists.txt new file mode 100644 index 000000000..e65fab1ed --- /dev/null +++ b/src/unittests/base/CMakeLists.txt @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2025 Deskflow Developers +# SPDX-License-Identifier: MIT + +create_test( + NAME PathTests + DEPENDS base + LIBS arch + SOURCE PathTests.cpp + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/base" +) diff --git a/src/unittests/base/PathTests.cpp b/src/unittests/base/PathTests.cpp new file mode 100644 index 000000000..a2e278de7 --- /dev/null +++ b/src/unittests/base/PathTests.cpp @@ -0,0 +1,35 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-FileCopyrightText: (C) 2014 - 2021 Symless Ltd. + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include "PathTests.h" + +#include "../../lib/base/Path.h" + +#include + +void PathTests::initTestCase() +{ + QDir dir; + QVERIFY(dir.mkpath("tmp/test")); +} + +void PathTests::testOpen() +{ + const QString filePath = QStringLiteral("tmp/test/тіás.txt"); + QFile file(filePath); + + QVERIFY(file.open(QIODevice::WriteOnly)); + QVERIFY(file.write("test", 4)); + + file.close(); + QVERIFY(!file.isOpen()); + + std::ifstream inFile(deskflow::filesystem::path(filePath.toStdString())); + QVERIFY(inFile.is_open()); +} + +QTEST_MAIN(PathTests) diff --git a/src/unittests/base/PathTests.h b/src/unittests/base/PathTests.h new file mode 100644 index 000000000..6184ed9a1 --- /dev/null +++ b/src/unittests/base/PathTests.h @@ -0,0 +1,15 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include + +class PathTests : public QObject +{ + Q_OBJECT +private slots: + void initTestCase(); + void testOpen(); +};