From 47f6d1035e5badfff8082b0fba78cb3b96f74bd8 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Tue, 30 Jul 2024 21:03:55 -0400 Subject: [PATCH] Add tests for the utility functions --- autotests/CMakeLists.txt | 6 ++++ autotests/utilitytest.cpp | 58 +++++++++++++++++++++++++++++++++++++++ launcher/CMakeLists.txt | 11 ++++---- launcher/src/utility.cpp | 2 +- 4 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 autotests/utilitytest.cpp diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 19a1fc3..d6cd2a1 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -5,4 +5,10 @@ ecm_add_test(patchlisttest.cpp TEST_NAME patchlisttest LINK_LIBRARIES astra_static Qt::Test NAME_PREFIX "astra-" +) + +ecm_add_test(utilitytest.cpp + TEST_NAME utilitytest + LINK_LIBRARIES astra_static Qt::Test + NAME_PREFIX "astra-" ) \ No newline at end of file diff --git a/autotests/utilitytest.cpp b/autotests/utilitytest.cpp new file mode 100644 index 0000000..f52123e --- /dev/null +++ b/autotests/utilitytest.cpp @@ -0,0 +1,58 @@ +// SPDX-FileCopyrightText: 2024 Joshua Goins +// SPDX-License-Identifier: GPL-3.0-or-later + +#include + +#include "utility.h" + +class UtilityTest : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void testToWindowsPath() + { + QCOMPARE(Utility::toWindowsPath(QStringLiteral("/home/testuser/test.txt")), QStringLiteral("Z:\\home\\testuser\\test.txt")); + } + + void testCreatePathIfNeeded() + { + QTemporaryDir dir; + QString testDirPath = dir.filePath(QStringLiteral("test-dir")); + + QVERIFY(!QDir().exists(testDirPath)); + + Utility::createPathIfNeeded(testDirPath); + + QVERIFY(QDir().exists(testDirPath)); + } + + void testReadVersion() + { + QTemporaryFile verFile; + verFile.open(); + + verFile.write(QByteArrayLiteral("2023.09.15.0000.0000")); + verFile.flush(); + + QCOMPARE(Utility::readVersion(verFile.fileName()), QStringLiteral("2023.09.15.0000.0000")); + + // lines should not affect the output + verFile.write(QByteArrayLiteral("\r\n")); + verFile.flush(); + + QCOMPARE(Utility::readVersion(verFile.fileName()), QStringLiteral("2023.09.15.0000.0000")); + } + + void testWriteVersion() + { + QTemporaryFile verFile; + verFile.open(); + + Utility::writeVersion(verFile.fileName(), QStringLiteral("2023.09.15.0000.0000")); + QCOMPARE(Utility::readVersion(verFile.fileName()), QStringLiteral("2023.09.15.0000.0000")); + } +}; + +QTEST_MAIN(UtilityTest) +#include "utilitytest.moc" diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index 6baf8c8..bcf520b 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -29,10 +29,13 @@ ecm_qt_declare_logging_category(astra_static target_sources(astra_static PRIVATE include/patchlist.h - src/patchlist.cpp) + include/utility.h + src/patchlist.cpp + src/utility.cpp) target_include_directories(astra_static PUBLIC include) target_link_libraries(astra_static PUBLIC - Qt6::Core) + Qt6::Core + Qt6::Network) add_executable(astra) @@ -62,7 +65,6 @@ target_sources(astra PRIVATE include/sapphirelogin.h include/squareenixlogin.h include/steamapi.h - include/utility.h src/account.cpp src/accountmanager.cpp @@ -86,7 +88,6 @@ target_sources(astra PRIVATE src/sapphirelogin.cpp src/squareenixlogin.cpp src/steamapi.cpp - src/utility.cpp ) qt_target_qml_sources(astra @@ -148,8 +149,6 @@ target_link_libraries(astra PRIVATE cotp KDAB::kdsingleapplication Qt6Keychain::Qt6Keychain - Qt6::Core - Qt6::Network Qt6::Widgets Qt6::Quick Qt6::QuickControls2 diff --git a/launcher/src/utility.cpp b/launcher/src/utility.cpp index cae56d0..04df639 100644 --- a/launcher/src/utility.cpp +++ b/launcher/src/utility.cpp @@ -39,7 +39,7 @@ QString Utility::readVersion(const QString &path) QFile file(path); file.open(QFile::ReadOnly | QFile::Text); - return QString::fromUtf8(file.readAll()); + return QString::fromUtf8(file.readAll()).trimmed(); } void Utility::writeVersion(const QString &path, const QString &version)