diff options
-rw-r--r-- | .gitattributes | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 8 | ||||
-rw-r--r-- | api/gui/CMakeLists.txt | 2 | ||||
-rw-r--r-- | api/logic/CMakeLists.txt | 220 | ||||
-rw-r--r-- | api/logic/FileSystem_test.cpp (renamed from tests/tst_FileSystem.cpp) | 51 | ||||
-rw-r--r-- | api/logic/GZip_test.cpp (renamed from tests/tst_GZip.cpp) | 2 | ||||
-rw-r--r-- | api/logic/Version_test.cpp (renamed from tests/tst_modutils.cpp) | 2 | ||||
-rw-r--r-- | api/logic/java/JavaVersion_test.cpp (renamed from tests/tst_JavaVersion.cpp) | 6 | ||||
-rw-r--r-- | api/logic/minecraft/GradleSpecifier_test.cpp (renamed from tests/tst_gradlespecifier.cpp) | 2 | ||||
-rw-r--r-- | api/logic/minecraft/Library_test.cpp (renamed from tests/tst_Library.cpp) | 2 | ||||
-rw-r--r-- | api/logic/minecraft/ModList_test.cpp (renamed from tests/tst_ModList.cpp) | 4 | ||||
-rw-r--r-- | api/logic/minecraft/MojangVersionFormat_test.cpp (renamed from tests/tst_MojangVersionFormat.cpp) | 6 | ||||
-rw-r--r-- | api/logic/minecraft/ParseUtils_test.cpp (renamed from tests/tst_ParseUtils.cpp) | 2 | ||||
-rw-r--r-- | api/logic/minecraft/testdata/1.9-simple.json (renamed from tests/data/1.9-simple.json) | 0 | ||||
-rw-r--r-- | api/logic/minecraft/testdata/1.9.json (renamed from tests/data/1.9.json) | 0 | ||||
-rw-r--r-- | api/logic/minecraft/testdata/lib-native-arch.json (renamed from tests/data/lib-native-arch.json) | 0 | ||||
-rw-r--r-- | api/logic/minecraft/testdata/lib-native.json (renamed from tests/data/lib-native.json) | 0 | ||||
-rw-r--r-- | api/logic/minecraft/testdata/lib-simple.json (renamed from tests/data/lib-simple.json) | 0 | ||||
-rw-r--r-- | api/logic/settings/INIFile_test.cpp (renamed from tests/tst_inifile.cpp) | 2 | ||||
-rwxr-xr-x | api/logic/testdata/FileSystem-test_createShortcut-unix (renamed from tests/data/tst_userutils-test_createShortcut-unix) | 0 | ||||
-rw-r--r-- | api/logic/testdata/test_folder/assets/minecraft/textures/blah.txt (renamed from tests/data_raw/test_folder/assets/minecraft/textures/blah.txt) | 0 | ||||
-rw-r--r-- | api/logic/testdata/test_folder/pack.mcmeta (renamed from tests/data_raw/test_folder/pack.mcmeta) | 0 | ||||
-rw-r--r-- | api/logic/testdata/test_folder/pack.nfo (renamed from tests/data_raw/test_folder/pack.nfo) | 0 | ||||
-rw-r--r-- | api/logic/updater/DownloadTask_test.cpp (renamed from tests/tst_DownloadTask.cpp) | 32 | ||||
-rw-r--r-- | api/logic/updater/UpdateChecker_test.cpp (renamed from tests/tst_UpdateChecker.cpp) | 20 | ||||
-rw-r--r-- | api/logic/updater/testdata/1.json (renamed from tests/data/1.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/2.json (renamed from tests/data/2.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/channels.json (renamed from tests/data/channels.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/errorChannels.json (renamed from tests/data/errorChannels.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/fileOneA (renamed from tests/data/fileOneA) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/fileOneB (renamed from tests/data/fileOneB) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/fileThree (renamed from tests/data/fileThree) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/fileTwo (renamed from tests/data/fileTwo) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/garbageChannels.json (renamed from tests/data/garbageChannels.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/index.json (renamed from tests/data/index.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/noChannels.json (renamed from tests/data/noChannels.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/oneChannel.json (renamed from tests/data/oneChannel.json) | 0 | ||||
-rw-r--r-- | api/logic/updater/testdata/tst_DownloadTask-test_writeInstallScript.xml (renamed from tests/data/tst_DownloadTask-test_writeInstallScript.xml) | 0 | ||||
-rw-r--r-- | api/logic/wonko/WonkoIndex_test.cpp (renamed from tests/tst_WonkoIndex.cpp) | 2 | ||||
-rw-r--r-- | cmake/UnitTest.cmake | 14 | ||||
-rw-r--r-- | cmake/UnitTest/generate_test_data.cmake | 3 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 82 | ||||
-rw-r--r-- | tests/data/.gitattributes | 2 | ||||
-rw-r--r-- | tests/tst_filematchers.cpp | 37 | ||||
-rw-r--r-- | tests/tst_userutils.cpp | 70 |
45 files changed, 267 insertions, 305 deletions
diff --git a/.gitattributes b/.gitattributes index 2a31189d..c9c0d50e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ *.pem -crlf +**/testdata/** -text -diff diff --git a/CMakeLists.txt b/CMakeLists.txt index 3db0df73..d6acf79b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,12 +20,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) ######## Set module path ######## set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/") -# Output all executables and shared libs in the main build folder, not in subfolders. -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) -if(UNIX) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) -endif() - set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/jars) ######## Set compiler flags ######## @@ -103,8 +97,6 @@ add_subdirectory(libraries/iconfix) # fork of Qt's QIcon loader ############################### Built Artifacts ############################### -add_subdirectory(tests) - add_subdirectory(api/logic) add_subdirectory(api/gui) diff --git a/api/gui/CMakeLists.txt b/api/gui/CMakeLists.txt index 1551a927..39cd5895 100644 --- a/api/gui/CMakeLists.txt +++ b/api/gui/CMakeLists.txt @@ -1,4 +1,4 @@ -project(MultiMC_logic) +project(MultiMC_gui LANGUAGES CXX) set(GUI_SOURCES DesktopServices.h diff --git a/api/logic/CMakeLists.txt b/api/logic/CMakeLists.txt index abae7b90..b534f970 100644 --- a/api/logic/CMakeLists.txt +++ b/api/logic/CMakeLists.txt @@ -1,6 +1,8 @@ project(MultiMC_logic) -set(LOGIC_SOURCES +include (UnitTest) + +set(CORE_SOURCES # LOGIC - Base classes and infrastructure BaseInstaller.h BaseInstaller.cpp @@ -42,12 +44,6 @@ set(LOGIC_SOURCES # a smart pointer wrapper intended for safer use with Qt signal/slot mechanisms QObjectPtr.h - # Path matchers - pathmatcher/FSTreeMatcher.h - pathmatcher/IPathMatcher.h - pathmatcher/MultiMatcher.h - pathmatcher/RegexpMatcher.h - # Compression support GZip.h GZip.cpp @@ -60,6 +56,31 @@ set(LOGIC_SOURCES Version.h Version.cpp + # A Recursive file system watcher + RecursiveFileSystemWatcher.h + RecursiveFileSystemWatcher.cpp +) + +add_unit_test(FileSystem + SOURCES FileSystem_test.cpp + LIBS MultiMC_logic + DATA testdata + ) + +add_unit_test(GZip + SOURCES GZip_test.cpp + LIBS MultiMC_logic + ) + +set(PATHMATCHER_SOURCES + # Path matchers + pathmatcher/FSTreeMatcher.h + pathmatcher/IPathMatcher.h + pathmatcher/MultiMatcher.h + pathmatcher/RegexpMatcher.h +) + +set(NET_SOURCES # network stuffs net/NetAction.h net/MD5EtagDownload.h @@ -76,24 +97,10 @@ set(LOGIC_SOURCES net/PasteUpload.cpp net/URLConstants.h net/URLConstants.cpp +) - # Yggdrasil login stuff - minecraft/auth/AuthSession.h - minecraft/auth/AuthSession.cpp - minecraft/auth/MojangAccountList.h - minecraft/auth/MojangAccountList.cpp - minecraft/auth/MojangAccount.h - minecraft/auth/MojangAccount.cpp - minecraft/auth/YggdrasilTask.h - minecraft/auth/YggdrasilTask.cpp - minecraft/auth/flows/AuthenticateTask.h - minecraft/auth/flows/AuthenticateTask.cpp - minecraft/auth/flows/RefreshTask.cpp - minecraft/auth/flows/RefreshTask.cpp - minecraft/auth/flows/ValidateTask.h - minecraft/auth/flows/ValidateTask.cpp - - # Game launch logic +# Game launch logic +set(LAUNCH_SOURCES launch/steps/PostLaunchCommand.cpp launch/steps/PostLaunchCommand.h launch/steps/PreLaunchCommand.cpp @@ -110,30 +117,70 @@ set(LOGIC_SOURCES launch/LoggedProcess.h launch/MessageLevel.cpp launch/MessageLevel.h +) - # Update system +# Old update system +set(UPDATE_SOURCES updater/GoUpdate.h updater/GoUpdate.cpp updater/UpdateChecker.h updater/UpdateChecker.cpp updater/DownloadTask.h updater/DownloadTask.cpp +) + +add_unit_test(UpdateChecker + SOURCES updater/UpdateChecker_test.cpp + LIBS MultiMC_logic + DATA updater/testdata + ) + +add_unit_test(DownloadTask + SOURCES updater/DownloadTask_test.cpp + LIBS MultiMC_logic + DATA updater/testdata + ) +# Rarely used notifications +set(NOTIFICATIONS_SOURCES # Notifications - short warning messages notifications/NotificationChecker.h notifications/NotificationChecker.cpp +) +# Backend for the news bar... there's usually no news. +set(NEWS_SOURCES # News System news/NewsChecker.h news/NewsChecker.cpp news/NewsEntry.h news/NewsEntry.cpp +) +# Minecraft services status checker +set(STATUS_SOURCES # Status system status/StatusChecker.h status/StatusChecker.cpp +) +# Support for Minecraft instances and launch +set(MINECRAFT_SOURCES # Minecraft support + minecraft/auth/AuthSession.h + minecraft/auth/AuthSession.cpp + minecraft/auth/MojangAccountList.h + minecraft/auth/MojangAccountList.cpp + minecraft/auth/MojangAccount.h + minecraft/auth/MojangAccount.cpp + minecraft/auth/YggdrasilTask.h + minecraft/auth/YggdrasilTask.cpp + minecraft/auth/flows/AuthenticateTask.h + minecraft/auth/flows/AuthenticateTask.cpp + minecraft/auth/flows/RefreshTask.cpp + minecraft/auth/flows/RefreshTask.cpp + minecraft/auth/flows/ValidateTask.h + minecraft/auth/flows/ValidateTask.cpp minecraft/onesix/OneSixUpdate.h minecraft/onesix/OneSixUpdate.cpp minecraft/onesix/OneSixInstance.h @@ -201,17 +248,67 @@ set(LOGIC_SOURCES minecraft/ftb/FTBPlugin.h minecraft/ftb/FTBPlugin.cpp - # A Recursive file system watcher - RecursiveFileSystemWatcher.h - RecursiveFileSystemWatcher.cpp + # Assets + minecraft/AssetsUtils.h + minecraft/AssetsUtils.cpp - # the screenshots feature + # Forge and all things forge related + minecraft/forge/ForgeVersion.h + minecraft/forge/ForgeVersion.cpp + minecraft/forge/ForgeVersionList.h + minecraft/forge/ForgeVersionList.cpp + minecraft/forge/ForgeXzDownload.h + minecraft/forge/ForgeXzDownload.cpp + minecraft/forge/LegacyForge.h + minecraft/forge/LegacyForge.cpp + minecraft/forge/ForgeInstaller.h + minecraft/forge/ForgeInstaller.cpp + + # Liteloader and related things + minecraft/liteloader/LiteLoaderInstaller.h + minecraft/liteloader/LiteLoaderInstaller.cpp + minecraft/liteloader/LiteLoaderVersionList.h + minecraft/liteloader/LiteLoaderVersionList.cpp +) + +add_unit_test(GradleSpecifier + SOURCES minecraft/GradleSpecifier_test.cpp + LIBS MultiMC_logic + ) + +add_unit_test(MojangVersionFormat + SOURCES minecraft/MojangVersionFormat_test.cpp + LIBS MultiMC_logic + DATA minecraft/testdata + ) + +add_unit_test(Library + SOURCES minecraft/Library_test.cpp + LIBS MultiMC_logic + ) + +# FIXME: shares data with FileSystem test +add_unit_test(ModList + SOURCES minecraft/ModList_test.cpp + DATA testdata + LIBS MultiMC_logic + ) + +add_unit_test(ParseUtils + SOURCES minecraft/ParseUtils_test.cpp + LIBS MultiMC_logic + ) + +# the screenshots feature +set(SCREENSHOTS_SOURCES screenshots/Screenshot.h screenshots/ImgurUpload.h screenshots/ImgurUpload.cpp screenshots/ImgurAlbumCreation.h screenshots/ImgurAlbumCreation.cpp +) +set(TASKS_SOURCES # Tasks tasks/Task.h tasks/Task.cpp @@ -219,7 +316,9 @@ set(LOGIC_SOURCES tasks/ThreadTask.cpp tasks/SequentialTask.h tasks/SequentialTask.cpp +) +set(SETTINGS_SOURCES # Settings settings/INIFile.cpp settings/INIFile.h @@ -233,7 +332,14 @@ set(LOGIC_SOURCES settings/Setting.h settings/SettingsObject.cpp settings/SettingsObject.h +) + +add_unit_test(INIFile + SOURCES settings/INIFile_test.cpp + LIBS MultiMC_logic + ) +set(JAVA_SOURCES # Java related code java/launch/CheckJava.cpp java/launch/CheckJava.h @@ -249,33 +355,20 @@ set(LOGIC_SOURCES java/JavaUtils.cpp java/JavaVersion.h java/JavaVersion.cpp +) - # Assets - minecraft/AssetsUtils.h - minecraft/AssetsUtils.cpp - - # Forge and all things forge related - minecraft/forge/ForgeVersion.h - minecraft/forge/ForgeVersion.cpp - minecraft/forge/ForgeVersionList.h - minecraft/forge/ForgeVersionList.cpp - minecraft/forge/ForgeXzDownload.h - minecraft/forge/ForgeXzDownload.cpp - minecraft/forge/LegacyForge.h - minecraft/forge/LegacyForge.cpp - minecraft/forge/ForgeInstaller.h - minecraft/forge/ForgeInstaller.cpp - - # Liteloader and related things - minecraft/liteloader/LiteLoaderInstaller.h - minecraft/liteloader/LiteLoaderInstaller.cpp - minecraft/liteloader/LiteLoaderVersionList.h - minecraft/liteloader/LiteLoaderVersionList.cpp +add_unit_test(JavaVersion + SOURCES java/JavaVersion_test.cpp + LIBS MultiMC_logic + ) +set(TRANSLATIONS_SOURCES # Translations trans/TranslationDownloader.h trans/TranslationDownloader.cpp +) +set(TOOLS_SOURCES # Tools tools/BaseExternalTool.cpp tools/BaseExternalTool.h @@ -287,7 +380,9 @@ set(LOGIC_SOURCES tools/JVisualVM.h tools/MCEditTool.cpp tools/MCEditTool.h +) +set(WONKO_SOURCES # Wonko wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp wonko/tasks/BaseWonkoEntityRemoteLoadTask.h @@ -310,11 +405,36 @@ set(LOGIC_SOURCES wonko/WonkoReference.cpp wonko/WonkoReference.h ) + +add_unit_test(WonkoIndex + SOURCES wonko/WonkoIndex_test.cpp + LIBS MultiMC_logic + ) + ################################ COMPILE ################################ # we need zlib find_package(ZLIB REQUIRED) +set(LOGIC_SOURCES + ${CORE_SOURCES} + ${PATHMATCHER_SOURCES} + ${NET_SOURCES} + ${LAUNCH_SOURCES} + ${UPDATE_SOURCES} + ${NOTIFICATIONS_SOURCES} + ${NEWS_SOURCES} + ${STATUS_SOURCES} + ${MINECRAFT_SOURCES} + ${SCREENSHOTS_SOURCES} + ${TASKS_SOURCES} + ${SETTINGS_SOURCES} + ${JAVA_SOURCES} + ${TRANSLATIONS_SOURCES} + ${TOOLS_SOURCES} + ${WONKO_SOURCES} +) + add_library(MultiMC_logic SHARED ${LOGIC_SOURCES}) set_target_properties(MultiMC_logic PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN 1) diff --git a/tests/tst_FileSystem.cpp b/api/logic/FileSystem_test.cpp index ae1f93bb..d5e1eedb 100644 --- a/tests/tst_FileSystem.cpp +++ b/api/logic/FileSystem_test.cpp @@ -1,5 +1,6 @@ #include <QTest> #include <QTemporaryDir> +#include <QStandardPaths> #include "TestUtil.h" #include "FileSystem.h" @@ -80,7 +81,7 @@ slots: void test_copy() { - QString folder = QFINDTESTDATA("tests/data/test_folder"); + QString folder = QFINDTESTDATA("data/test_folder"); auto f = [&folder]() { QTemporaryDir tempDir; @@ -110,8 +111,54 @@ slots: QVERIFY(folder.endsWith('/')); f(); } + + void test_getDesktop() + { + QCOMPARE(FS::getDesktopDir(), QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)); + } + +// this is only valid on linux +// FIXME: implement on windows, OSX, then test. +#if defined(Q_OS_LINUX) + void test_createShortcut_data() + { + QTest::addColumn<QString>("location"); + QTest::addColumn<QString>("dest"); + QTest::addColumn<QStringList>("args"); + QTest::addColumn<QString>("name"); + QTest::addColumn<QString>("iconLocation"); + QTest::addColumn<QByteArray>("result"); + + QTest::newRow("unix") << QDir::currentPath() + << "asdfDest" + << (QStringList() << "arg1" << "arg2") + << "asdf" + << QString() + #if defined(Q_OS_LINUX) + << MULTIMC_GET_TEST_FILE("data/FileSystem-test_createShortcut-unix") + #elif defined(Q_OS_WIN) + << QByteArray() + #endif + ; + } + + void test_createShortcut() + { + QFETCH(QString, location); + QFETCH(QString, dest); + QFETCH(QStringList, args); + QFETCH(QString, name); + QFETCH(QString, iconLocation); + QFETCH(QByteArray, result); + + QVERIFY(FS::createShortCut(location, dest, args, name, iconLocation)); + QCOMPARE(QString::fromLocal8Bit(TestsInternal::readFile(location + QDir::separator() + name + ".desktop")), QString::fromLocal8Bit(result)); + + //QDir().remove(location); + } +#endif }; QTEST_GUILESS_MAIN(FileSystemTest) -#include "tst_FileSystem.moc" +#include "FileSystem_test.moc" diff --git a/tests/tst_GZip.cpp b/api/logic/GZip_test.cpp index 67707a4b..f4c9214c 100644 --- a/tests/tst_GZip.cpp +++ b/api/logic/GZip_test.cpp @@ -54,4 +54,4 @@ slots: QTEST_GUILESS_MAIN(GZipTest) -#include "tst_GZip.moc" +#include "GZip_test.moc" diff --git a/tests/tst_modutils.cpp b/api/logic/Version_test.cpp index 1894711e..4c083934 100644 --- a/tests/tst_modutils.cpp +++ b/api/logic/Version_test.cpp @@ -120,4 +120,4 @@ private slots: QTEST_GUILESS_MAIN(ModUtilsTest) -#include "tst_modutils.moc" +#include "Version_test.moc" diff --git a/tests/tst_JavaVersion.cpp b/api/logic/java/JavaVersion_test.cpp index 708c8d8d..9dae0ba6 100644 --- a/tests/tst_JavaVersion.cpp +++ b/api/logic/java/JavaVersion_test.cpp @@ -113,8 +113,4 @@ slots: QTEST_GUILESS_MAIN(JavaVersionTest) -#include "tst_JavaVersion.moc" - - - // manual testing fakery - +#include "JavaVersion_test.moc" diff --git a/tests/tst_gradlespecifier.cpp b/api/logic/minecraft/GradleSpecifier_test.cpp index 146c9838..155522cd 100644 --- a/tests/tst_gradlespecifier.cpp +++ b/api/logic/minecraft/GradleSpecifier_test.cpp @@ -74,4 +74,4 @@ slots: QTEST_GUILESS_MAIN(GradleSpecifierTest) -#include "tst_gradlespecifier.moc" +#include "GradleSpecifier_test.moc" diff --git a/tests/tst_Library.cpp b/api/logic/minecraft/Library_test.cpp index b5840261..fcf0b4d1 100644 --- a/tests/tst_Library.cpp +++ b/api/logic/minecraft/Library_test.cpp @@ -192,4 +192,4 @@ private: QTEST_GUILESS_MAIN(LibraryTest) -#include "tst_Library.moc" +#include "Library_test.moc" diff --git a/tests/tst_ModList.cpp b/api/logic/minecraft/ModList_test.cpp index e3aa1435..155c238a 100644 --- a/tests/tst_ModList.cpp +++ b/api/logic/minecraft/ModList_test.cpp @@ -16,7 +16,7 @@ slots: void test_1178() { // source - QString source = QFINDTESTDATA("tests/data/test_folder"); + QString source = QFINDTESTDATA("data/test_folder"); // sanity check QVERIFY(!source.endsWith('/')); @@ -50,4 +50,4 @@ slots: QTEST_GUILESS_MAIN(ModListTest) -#include "tst_ModList.moc" +#include "ModList_test.moc" diff --git a/tests/tst_MojangVersionFormat.cpp b/api/logic/minecraft/MojangVersionFormat_test.cpp index 2e7b1cb8..5b836271 100644 --- a/tests/tst_MojangVersionFormat.cpp +++ b/api/logic/minecraft/MojangVersionFormat_test.cpp @@ -31,7 +31,7 @@ slots: void test_Through_Simple() { - QJsonDocument doc = readJson("tests/data/1.9-simple.json"); + QJsonDocument doc = readJson("data/1.9-simple.json"); auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9-simple.json"); auto doc2 = MojangVersionFormat::versionFileToJson(vfile); writeJson("1.9-simple-passthorugh.json", doc2); @@ -41,7 +41,7 @@ slots: void test_Through() { - QJsonDocument doc = readJson("tests/data/1.9.json"); + QJsonDocument doc = readJson("data/1.9.json"); auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9.json"); auto doc2 = MojangVersionFormat::versionFileToJson(vfile); writeJson("1.9-passthorugh.json", doc2); @@ -51,5 +51,5 @@ slots: QTEST_GUILESS_MAIN(MojangVersionFormatTest) -#include "tst_MojangVersionFormat.moc" +#include "MojangVersionFormat_test.moc" diff --git a/tests/tst_ParseUtils.cpp b/api/logic/minecraft/ParseUtils_test.cpp index d961e52b..79bed1d4 100644 --- a/tests/tst_ParseUtils.cpp +++ b/api/logic/minecraft/ParseUtils_test.cpp @@ -41,5 +41,5 @@ slots: QTEST_GUILESS_MAIN(ParseUtilsTest) -#include "tst_ParseUtils.moc" +#include "ParseUtils_test.moc" diff --git a/tests/data/1.9-simple.json b/api/logic/minecraft/testdata/1.9-simple.json index 574c5b06..574c5b06 100644 --- a/tests/data/1.9-simple.json +++ b/api/logic/minecraft/testdata/1.9-simple.json diff --git a/tests/data/1.9.json b/api/logic/minecraft/testdata/1.9.json index 697c6059..697c6059 100644 --- a/tests/data/1.9.json +++ b/api/logic/minecraft/testdata/1.9.json diff --git a/tests/data/lib-native-arch.json b/api/logic/minecraft/testdata/lib-native-arch.json index a73aac54..a73aac54 100644 --- a/tests/data/lib-native-arch.json +++ b/api/logic/minecraft/testdata/lib-native-arch.json diff --git a/tests/data/lib-native.json b/api/logic/minecraft/testdata/lib-native.json index 0a95b2b9..0a95b2b9 100644 --- a/tests/data/lib-native.json +++ b/api/logic/minecraft/testdata/lib-native.json diff --git a/tests/data/lib-simple.json b/api/logic/minecraft/testdata/lib-simple.json index 3ef0f490..3ef0f490 100644 --- a/tests/data/lib-simple.json +++ b/api/logic/minecraft/testdata/lib-simple.json diff --git a/tests/tst_inifile.cpp b/api/logic/settings/INIFile_test.cpp index 2c3d8103..b3ae7375 100644 --- a/tests/tst_inifile.cpp +++ b/api/logic/settings/INIFile_test.cpp @@ -59,4 +59,4 @@ slots: QTEST_GUILESS_MAIN(IniFileTest) -#include "tst_inifile.moc" +#include "INIFile_test.moc" diff --git a/tests/data/tst_userutils-test_createShortcut-unix b/api/logic/testdata/FileSystem-test_createShortcut-unix index 1ce3a2bd..1ce3a2bd 100755 --- a/tests/data/tst_userutils-test_createShortcut-unix +++ b/api/logic/testdata/FileSystem-test_createShortcut-unix diff --git a/tests/data_raw/test_folder/assets/minecraft/textures/blah.txt b/api/logic/testdata/test_folder/assets/minecraft/textures/blah.txt index 8d1c8b69..8d1c8b69 100644 --- a/tests/data_raw/test_folder/assets/minecraft/textures/blah.txt +++ b/api/logic/testdata/test_folder/assets/minecraft/textures/blah.txt diff --git a/tests/data_raw/test_folder/pack.mcmeta b/api/logic/testdata/test_folder/pack.mcmeta index 67ee0434..67ee0434 100644 --- a/tests/data_raw/test_folder/pack.mcmeta +++ b/api/logic/testdata/test_folder/pack.mcmeta diff --git a/tests/data_raw/test_folder/pack.nfo b/api/logic/testdata/test_folder/pack.nfo index 8d1c8b69..8d1c8b69 100644 --- a/tests/data_raw/test_folder/pack.nfo +++ b/api/logic/testdata/test_folder/pack.nfo diff --git a/tests/tst_DownloadTask.cpp b/api/logic/updater/DownloadTask_test.cpp index 743bf514..edf0f507 100644 --- a/tests/tst_DownloadTask.cpp +++ b/api/logic/updater/DownloadTask_test.cpp @@ -77,31 +77,31 @@ slots: QTest::addColumn<bool>("ret"); QTest::newRow("one") - << MULTIMC_GET_TEST_FILE("tests/data/1.json") + << MULTIMC_GET_TEST_FILE("data/1.json") << (VersionFileList() << VersionFileEntry{"fileOne", 493, - encodeBaseFile("/tests/data/fileOneA"), + encodeBaseFile("/data/fileOneA"), "9eb84090956c484e32cb6c08455a667b"} << VersionFileEntry{"fileTwo", 644, - encodeBaseFile("/tests/data/fileTwo"), + encodeBaseFile("/data/fileTwo"), "38f94f54fa3eb72b0ea836538c10b043"} << VersionFileEntry{"fileThree", 750, - encodeBaseFile("/tests/data/fileThree"), + encodeBaseFile("/data/fileThree"), "f12df554b21e320be6471d7154130e70"}) << QString() << true; QTest::newRow("two") - << MULTIMC_GET_TEST_FILE("tests/data/2.json") + << MULTIMC_GET_TEST_FILE("data/2.json") << (VersionFileList() << VersionFileEntry{"fileOne", 493, - encodeBaseFile("/tests/data/fileOneB"), + encodeBaseFile("/data/fileOneB"), "42915a71277c9016668cce7b82c6b577"} << VersionFileEntry{"fileTwo", 644, - encodeBaseFile("/tests/data/fileTwo"), + encodeBaseFile("/data/fileTwo"), "38f94f54fa3eb72b0ea836538c10b043"}) << QString() << true; } @@ -133,42 +133,42 @@ slots: QTest::newRow("test 1") << tempFolder << (VersionFileList() << VersionFileEntry{ - "tests/data/fileOne", 493, + "data/fileOne", 493, FileSourceList() << FileSource( "http", "http://host/path/fileOne-1"), "9eb84090956c484e32cb6c08455a667b"} << VersionFileEntry{ - "tests/data/fileTwo", 644, + "data/fileTwo", 644, FileSourceList() << FileSource( "http", "http://host/path/fileTwo-1"), "38f94f54fa3eb72b0ea836538c10b043"} << VersionFileEntry{ - "tests/data/fileThree", 420, + "data/fileThree", 420, FileSourceList() << FileSource( "http", "http://host/path/fileThree-1"), "f12df554b21e320be6471d7154130e70"}) << (VersionFileList() << VersionFileEntry{ - "tests/data/fileOne", 493, + "data/fileOne", 493, FileSourceList() << FileSource("http", "http://host/path/fileOne-2"), "42915a71277c9016668cce7b82c6b577"} << VersionFileEntry{ - "tests/data/fileTwo", 644, + "data/fileTwo", 644, FileSourceList() << FileSource("http", "http://host/path/fileTwo-2"), "38f94f54fa3eb72b0ea836538c10b043"}) << (OperationList() - << Operation::DeleteOp("tests/data/fileThree") + << Operation::DeleteOp("data/fileThree") << Operation::CopyOp( FS::PathCombine(tempFolder, - QString("tests/data/fileOne").replace("/", "_")), - "tests/data/fileOne", 493)); + QString("data/fileOne").replace("/", "_")), + "data/fileOne", 493)); } void test_processFileLists() { @@ -211,4 +211,4 @@ extern "C" QTEST_GUILESS_MAIN(DownloadTaskTest) } -#include "tst_DownloadTask.moc" +#include "DownloadTask_test.moc" diff --git a/tests/tst_UpdateChecker.cpp b/api/logic/updater/UpdateChecker_test.cpp index 3a0d3781..16b21614 100644 --- a/tests/tst_UpdateChecker.cpp +++ b/api/logic/updater/UpdateChecker_test.cpp @@ -49,36 +49,36 @@ slots: QTest::newRow("garbage") << QString() - << findTestDataUrl("tests/data/garbageChannels.json") + << findTestDataUrl("data/garbageChannels.json") << false << false << QList<UpdateChecker::ChannelListEntry>(); QTest::newRow("errors") << QString() - << findTestDataUrl("tests/data/errorChannels.json") + << findTestDataUrl("data/errorChannels.json") << false << true << QList<UpdateChecker::ChannelListEntry>(); QTest::newRow("no channels") << QString() - << findTestDataUrl("tests/data/noChannels.json") + << findTestDataUrl("data/noChannels.json") << false << true << QList<UpdateChecker::ChannelListEntry>(); QTest::newRow("one channel") << QString("develop") - << findTestDataUrl("tests/data/oneChannel.json") + << findTestDataUrl("data/oneChannel.json") << true << true << (QList<UpdateChecker::ChannelListEntry>() << UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", "http://example.org/stuff"}); QTest::newRow("several channels") << QString("develop") - << findTestDataUrl("tests/data/channels.json") + << findTestDataUrl("data/channels.json") << true << true << (QList<UpdateChecker::ChannelListEntry>() - << UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", findTestDataUrl("tests/data")} - << UpdateChecker::ChannelListEntry{"stable", "Stable", "It's stable at least", findTestDataUrl("tests/data")} + << UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", findTestDataUrl("data")} + << UpdateChecker::ChannelListEntry{"stable", "Stable", "It's stable at least", findTestDataUrl("data")} << UpdateChecker::ChannelListEntry{"42", "The Channel", "This is the channel that is going to answer all of your questions", "https://dent.me/tea"}); } void tst_ChannelListParsing() @@ -115,7 +115,7 @@ slots: void tst_UpdateChecking() { QString channel = "develop"; - QString channelUrl = findTestDataUrl("tests/data/channels.json"); + QString channelUrl = findTestDataUrl("data/channels.json"); int currentBuild = 2; UpdateChecker checker(channelUrl, channel, currentBuild); @@ -129,7 +129,7 @@ slots: QVERIFY(channelListLoadedSpy.wait()); qDebug() << "CWD:" << QDir::current().absolutePath(); - checker.m_channels[0].url = findTestDataUrl("tests/data/"); + checker.m_channels[0].url = findTestDataUrl("data/"); checker.checkForUpdate(channel, false); QVERIFY(updateAvailableSpy.wait()); @@ -143,4 +143,4 @@ slots: QTEST_GUILESS_MAIN(UpdateCheckerTest) -#include "tst_UpdateChecker.moc" +#include "UpdateChecker_test.moc" diff --git a/tests/data/1.json b/api/logic/updater/testdata/1.json index 3dd189e5..3dd189e5 100644 --- a/tests/data/1.json +++ b/api/logic/updater/testdata/1.json diff --git a/tests/data/2.json b/api/logic/updater/testdata/2.json index a7ba7029..a7ba7029 100644 --- a/tests/data/2.json +++ b/api/logic/updater/testdata/2.json diff --git a/tests/data/channels.json b/api/logic/updater/testdata/channels.json index b46c64c8..b46c64c8 100644 --- a/tests/data/channels.json +++ b/api/logic/updater/testdata/channels.json diff --git a/tests/data/errorChannels.json b/api/logic/updater/testdata/errorChannels.json index 333cd445..333cd445 100644 --- a/tests/data/errorChannels.json +++ b/api/logic/updater/testdata/errorChannels.json diff --git a/tests/data/fileOneA b/api/logic/updater/testdata/fileOneA index f2e41136..f2e41136 100644 --- a/tests/data/fileOneA +++ b/api/logic/updater/testdata/fileOneA diff --git a/tests/data/fileOneB b/api/logic/updater/testdata/fileOneB index f9aba922..f9aba922 100644 --- a/tests/data/fileOneB +++ b/api/logic/updater/testdata/fileOneB diff --git a/tests/data/fileThree b/api/logic/updater/testdata/fileThree index 6353ff16..6353ff16 100644 --- a/tests/data/fileThree +++ b/api/logic/updater/testdata/fileThree diff --git a/tests/data/fileTwo b/api/logic/updater/testdata/fileTwo index aad9a93a..aad9a93a 100644 --- a/tests/data/fileTwo +++ b/api/logic/updater/testdata/fileTwo diff --git a/tests/data/garbageChannels.json b/api/logic/updater/testdata/garbageChannels.json index 1450fb9c..1450fb9c 100644 --- a/tests/data/garbageChannels.json +++ b/api/logic/updater/testdata/garbageChannels.json diff --git a/tests/data/index.json b/api/logic/updater/testdata/index.json index 20ceb9f4..20ceb9f4 100644 --- a/tests/data/index.json +++ b/api/logic/updater/testdata/index.json diff --git a/tests/data/noChannels.json b/api/logic/updater/testdata/noChannels.json index bbb2cb70..bbb2cb70 100644 --- a/tests/data/noChannels.json +++ b/api/logic/updater/testdata/noChannels.json diff --git a/tests/data/oneChannel.json b/api/logic/updater/testdata/oneChannel.json index 84727ac7..84727ac7 100644 --- a/tests/data/oneChannel.json +++ b/api/logic/updater/testdata/oneChannel.json diff --git a/tests/data/tst_DownloadTask-test_writeInstallScript.xml b/api/logic/updater/testdata/tst_DownloadTask-test_writeInstallScript.xml index 09c162ca..09c162ca 100644 --- a/tests/data/tst_DownloadTask-test_writeInstallScript.xml +++ b/api/logic/updater/testdata/tst_DownloadTask-test_writeInstallScript.xml diff --git a/tests/tst_WonkoIndex.cpp b/api/logic/wonko/WonkoIndex_test.cpp index 076c806b..7eb51bc3 100644 --- a/tests/tst_WonkoIndex.cpp +++ b/api/logic/wonko/WonkoIndex_test.cpp @@ -47,4 +47,4 @@ slots: QTEST_GUILESS_MAIN(WonkoIndexTest) -#include "tst_WonkoIndex.moc" +#include "WonkoIndex_test.moc" diff --git a/cmake/UnitTest.cmake b/cmake/UnitTest.cmake index 1cbb2b60..d2c99933 100644 --- a/cmake/UnitTest.cmake +++ b/cmake/UnitTest.cmake @@ -12,9 +12,9 @@ function(add_unit_test name) cmake_parse_arguments(OPT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) if(WIN32) - add_executable(tst_${name} ${OPT_SOURCES} ${TEST_RESOURCE_PATH}/UnitTest/test.rc) + add_executable(${name}_test ${OPT_SOURCES} ${TEST_RESOURCE_PATH}/UnitTest/test.rc) else() - add_executable(tst_${name} ${OPT_SOURCES}) + add_executable(${name}_test ${OPT_SOURCES}) endif() if(NOT "${OPT_DATA}" STREQUAL "") @@ -31,7 +31,7 @@ function(add_unit_test name) endif() if(NOT TARGET "${DATA_TARGET_NAME}") add_custom_target(${DATA_TARGET_NAME}) - add_dependencies(tst_${name} ${DATA_TARGET_NAME}) + add_dependencies(${name}_test ${DATA_TARGET_NAME}) add_custom_command( TARGET ${DATA_TARGET_NAME} COMMAND ${CMAKE_COMMAND} "-DTEST_DATA_URL=${TEST_DATA_URL}" -DSOURCE=${TEST_DATA_PATH_SRC} -DDESTINATION=${TEST_DATA_PATH} -P ${TEST_RESOURCE_PATH}/UnitTest/generate_test_data.cmake @@ -40,10 +40,10 @@ function(add_unit_test name) endif() endif() - target_link_libraries(tst_${name} ${OPT_LIBS}) - qt5_use_modules(tst_${name} Test ${OPT_QT}) + target_link_libraries(${name}_test ${OPT_LIBS}) + qt5_use_modules(${name}_test Test ${OPT_QT}) - target_include_directories(tst_${name} PRIVATE "${TEST_RESOURCE_PATH}/UnitTest/") + target_include_directories(${name}_test PRIVATE "${TEST_RESOURCE_PATH}/UnitTest/") - add_test(NAME ${name} COMMAND tst_${name}) + add_test(NAME ${name} COMMAND ${name}_test) endfunction() diff --git a/cmake/UnitTest/generate_test_data.cmake b/cmake/UnitTest/generate_test_data.cmake index 9de7410b..d9250fab 100644 --- a/cmake/UnitTest/generate_test_data.cmake +++ b/cmake/UnitTest/generate_test_data.cmake @@ -2,14 +2,12 @@ # variables. Create destination directory if it does not exist. function(configure_files srcDir destDir) - message(STATUS "Configuring directory ${destDir} from ${srcDir}") make_directory(${destDir}) file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*) foreach(templateFile ${templateFiles}) set(srcTemplatePath ${srcDir}/${templateFile}) if(NOT IS_DIRECTORY ${srcTemplatePath}) - message(STATUS "Configuring file ${templateFile}") configure_file( ${srcTemplatePath} ${destDir}/${templateFile} @@ -17,7 +15,6 @@ function(configure_files srcDir destDir) NEWLINE_STYLE LF ) else() - message(STATUS "Recursing? ${srcTemplatePath}") configure_files("${srcTemplatePath}" "${destDir}/${templateFile}") endif() endforeach() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt deleted file mode 100644 index 667aecd1..00000000 --- a/tests/CMakeLists.txt +++ /dev/null @@ -1,82 +0,0 @@ -include(UnitTest) - -add_unit_test(gradlespecifier - SOURCES tst_gradlespecifier.cpp - LIBS MultiMC_logic - ) - -add_unit_test(userutils - SOURCES tst_userutils.cpp - LIBS MultiMC_logic - ) - -add_unit_test(modutils - SOURCES tst_modutils.cpp - LIBS MultiMC_logic - ) - -add_unit_test(inifile - SOURCES tst_inifile.cpp - LIBS MultiMC_logic - ) - -add_unit_test(FileSystem - SOURCES tst_FileSystem.cpp - LIBS MultiMC_logic - ) - -add_unit_test(Library - SOURCES tst_Library.cpp - LIBS MultiMC_logic - ) - -add_unit_test(UpdateChecker - SOURCES tst_UpdateChecker.cpp - LIBS MultiMC_logic - DATA data - ) - -add_unit_test(DownloadTask - SOURCES tst_DownloadTask.cpp - LIBS MultiMC_logic - DATA data_raw - ) - -add_unit_test(filematchers - SOURCES tst_filematchers.cpp - LIBS MultiMC_logic - ) - -add_unit_test(ModList - SOURCES tst_ModList.cpp - LIBS MultiMC_logic - ) - -# add_unit_test(Resource -# SOURCES tst_Resource.cpp -# ) - -add_unit_test(GZip - SOURCES tst_GZip.cpp - LIBS MultiMC_logic - ) - -add_unit_test(JavaVersion - SOURCES tst_JavaVersion.cpp - LIBS MultiMC_logic - ) - -add_unit_test(ParseUtils - SOURCES tst_ParseUtils.cpp - LIBS MultiMC_logic - ) - -add_unit_test(MojangVersionFormat - SOURCES tst_MojangVersionFormat.cpp - LIBS MultiMC_logic - ) - -add_unit_test(WonkoIndex - SOURCES tst_WonkoIndex.cpp - LIBS MultiMC_logic - ) diff --git a/tests/data/.gitattributes b/tests/data/.gitattributes deleted file mode 100644 index 9ac803f0..00000000 --- a/tests/data/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -* -text -diff - diff --git a/tests/tst_filematchers.cpp b/tests/tst_filematchers.cpp deleted file mode 100644 index 36286070..00000000 --- a/tests/tst_filematchers.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include <QTest> -#include "TestUtil.h" - -class IniFileTest : public QObject -{ - Q_OBJECT -private -slots: - - void test_FSTree() - { - /* - QTest::addColumn<QString>("through"); - - QTest::newRow("unix path") << "/abc/def/ghi/jkl"; - QTest::newRow("windows path") << "C:\\Program files\\terrible\\name\\of something\\"; - QTest::newRow("Plain text") << "Lorem ipsum dolor sit amet."; - QTest::newRow("Escape sequences") << "Lorem\n\t\n\\n\\tAAZ\nipsum dolor\n\nsit amet."; - QTest::newRow("Escape sequences 2") << "\"\n\n\""; - */ - } - void test_Regexp() - { - /* - QFETCH(QString, through); - - QString there = INIFile::escape(through); - QString back = INIFile::unescape(there); - - QCOMPARE(back, through); - */ - } -}; - -QTEST_GUILESS_MAIN(IniFileTest) - -#include "tst_filematchers.moc" diff --git a/tests/tst_userutils.cpp b/tests/tst_userutils.cpp deleted file mode 100644 index 01f1b2a6..00000000 --- a/tests/tst_userutils.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include <QTest> -#include <QStandardPaths> -#include "TestUtil.h" -#include <FileSystem.h> - -class UserUtilsTest : public QObject -{ - Q_OBJECT -private -slots: - void initTestCase() - { - - } - void cleanupTestCase() - { - - } - - void test_getDesktop() - { - QCOMPARE(FS::getDesktopDir(), QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)); - } - -// this is only valid on linux -// FIXME: implement on windows, OSX, then test. -#if defined(Q_OS_LINUX) - void test_createShortcut_data() - { - QTest::addColumn<QString>("location"); - QTest::addColumn<QString>("dest"); - QTest::addColumn<QStringList>("args"); - QTest::addColumn<QString>("name"); - QTest::addColumn<QString>("iconLocation"); - QTest::addColumn<QByteArray>("result"); - - QTest::newRow("unix") << QDir::currentPath() - << "asdfDest" - << (QStringList() << "arg1" << "arg2") - << "asdf" - << QString() - #if defined(Q_OS_LINUX) - << MULTIMC_GET_TEST_FILE("data/tst_userutils-test_createShortcut-unix") - #elif defined(Q_OS_WIN) - << QByteArray() - #endif - ; - } - - void test_createShortcut() - { - QFETCH(QString, location); - QFETCH(QString, dest); - QFETCH(QStringList, args); - QFETCH(QString, name); - QFETCH(QString, iconLocation); - QFETCH(QByteArray, result); - - QVERIFY(FS::createShortCut(location, dest, args, name, iconLocation)); - QCOMPARE(QString::fromLocal8Bit(TestsInternal::readFile(location + QDir::separator() + name + ".desktop")), QString::fromLocal8Bit(result)); - - //QDir().remove(location); - } -#endif -}; - - -QTEST_GUILESS_MAIN(UserUtilsTest) - -#include "tst_userutils.moc" |