aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/minecraft')
-rw-r--r--launcher/minecraft/GradleSpecifier_test.cpp77
-rw-r--r--launcher/minecraft/Library_test.cpp270
-rw-r--r--launcher/minecraft/MojangVersionFormat_test.cpp53
-rw-r--r--launcher/minecraft/ParseUtils_test.cpp43
-rw-r--r--launcher/minecraft/mod/ResourceFolderModel_test.cpp261
-rw-r--r--launcher/minecraft/mod/ResourcePackParse_test.cpp73
-rw-r--r--launcher/minecraft/mod/testdata/another_test_folder/pack.mcmeta6
-rw-r--r--launcher/minecraft/mod/testdata/supercoolmod.jar1
-rw-r--r--launcher/minecraft/mod/testdata/test_folder/assets/minecraft/textures/blah.txt1
-rw-r--r--launcher/minecraft/mod/testdata/test_folder/pack.mcmeta6
-rw-r--r--launcher/minecraft/mod/testdata/test_folder/pack.nfo1
-rw-r--r--launcher/minecraft/mod/testdata/test_resource_pack_idk.zipbin322 -> 0 bytes
-rw-r--r--launcher/minecraft/testdata/1.9-simple.json198
-rw-r--r--launcher/minecraft/testdata/1.9.json529
-rw-r--r--launcher/minecraft/testdata/codecwav-20101023.jar1
-rw-r--r--launcher/minecraft/testdata/lib-native-arch.json46
-rw-r--r--launcher/minecraft/testdata/lib-native.json52
-rw-r--r--launcher/minecraft/testdata/lib-simple.json11
-rw-r--r--launcher/minecraft/testdata/testname-testversion-linux-32.jar1
19 files changed, 0 insertions, 1630 deletions
diff --git a/launcher/minecraft/GradleSpecifier_test.cpp b/launcher/minecraft/GradleSpecifier_test.cpp
deleted file mode 100644
index a062dfac..00000000
--- a/launcher/minecraft/GradleSpecifier_test.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <QTest>
-
-#include "minecraft/GradleSpecifier.h"
-
-class GradleSpecifierTest : public QObject
-{
- Q_OBJECT
-private
-slots:
- void initTestCase()
- {
-
- }
- void cleanupTestCase()
- {
-
- }
-
- void test_Positive_data()
- {
- QTest::addColumn<QString>("through");
-
- QTest::newRow("3 parter") << "org.gradle.test.classifiers:service:1.0";
- QTest::newRow("classifier") << "org.gradle.test.classifiers:service:1.0:jdk15";
- QTest::newRow("jarextension") << "org.gradle.test.classifiers:service:1.0@jar";
- QTest::newRow("jarboth") << "org.gradle.test.classifiers:service:1.0:jdk15@jar";
- QTest::newRow("packxz") << "org.gradle.test.classifiers:service:1.0:jdk15@jar.pack.xz";
- }
- void test_Positive()
- {
- QFETCH(QString, through);
-
- QString converted = GradleSpecifier(through).serialize();
-
- QCOMPARE(converted, through);
- }
-
- void test_Path_data()
- {
- QTest::addColumn<QString>("spec");
- QTest::addColumn<QString>("expected");
-
- QTest::newRow("3 parter") << "group.id:artifact:1.0" << "group/id/artifact/1.0/artifact-1.0.jar";
- QTest::newRow("doom") << "id.software:doom:1.666:demons@wad" << "id/software/doom/1.666/doom-1.666-demons.wad";
- }
- void test_Path()
- {
- QFETCH(QString, spec);
- QFETCH(QString, expected);
-
- QString converted = GradleSpecifier(spec).toPath();
-
- QCOMPARE(converted, expected);
- }
- void test_Negative_data()
- {
- QTest::addColumn<QString>("input");
-
- QTest::newRow("too many :") << "org:gradle.test:class:::ifiers:service:1.0::";
- QTest::newRow("nonsense") << "I like turtles";
- QTest::newRow("empty string") << "";
- QTest::newRow("missing version") << "herp.derp:artifact";
- }
- void test_Negative()
- {
- QFETCH(QString, input);
-
- GradleSpecifier spec(input);
- QVERIFY(!spec.valid());
- QCOMPARE(spec.serialize(), input);
- QCOMPARE(spec.toPath(), QString());
- }
-};
-
-QTEST_GUILESS_MAIN(GradleSpecifierTest)
-
-#include "GradleSpecifier_test.moc"
diff --git a/launcher/minecraft/Library_test.cpp b/launcher/minecraft/Library_test.cpp
deleted file mode 100644
index 834dd558..00000000
--- a/launcher/minecraft/Library_test.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
-#include <QTest>
-
-#include "minecraft/MojangVersionFormat.h"
-#include "minecraft/OneSixVersionFormat.h"
-#include "minecraft/Library.h"
-#include "net/HttpMetaCache.h"
-#include "FileSystem.h"
-
-class LibraryTest : public QObject
-{
- Q_OBJECT
-private:
- LibraryPtr readMojangJson(const QString path)
- {
- QFile jsonFile(path);
- jsonFile.open(QIODevice::ReadOnly);
- auto data = jsonFile.readAll();
- jsonFile.close();
- ProblemContainer problems;
- return MojangVersionFormat::libraryFromJson(problems, QJsonDocument::fromJson(data).object(), path);
- }
- // get absolute path to expected storage, assuming default cache prefix
- QStringList getStorage(QString relative)
- {
- return {FS::PathCombine(cache->getBasePath("libraries"), relative)};
- }
-private
-slots:
- void initTestCase()
- {
- cache.reset(new HttpMetaCache());
- cache->addBase("libraries", QDir("libraries").absolutePath());
- dataDir = QDir(QFINDTESTDATA("testdata")).absolutePath();
- }
- void test_legacy()
- {
- Library test("test.package:testname:testversion");
- QCOMPARE(test.artifactPrefix(), QString("test.package:testname"));
- QCOMPARE(test.isNative(), false);
-
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(currentSystem, jar, native, native32, native64, QString());
- QCOMPARE(jar, getStorage("test/package/testname/testversion/testname-testversion.jar"));
- QCOMPARE(native, {});
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- }
- void test_legacy_url()
- {
- QStringList failedFiles;
- Library test("test.package:testname:testversion");
- test.setRepositoryURL("file://foo/bar");
- auto downloads = test.getDownloads(currentSystem, cache.get(), failedFiles, QString());
- QCOMPARE(downloads.size(), 1);
- QCOMPARE(failedFiles, {});
- NetAction::Ptr dl = downloads[0];
- QCOMPARE(dl->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion.jar"));
- }
- void test_legacy_url_local_broken()
- {
- Library test("test.package:testname:testversion");
- QCOMPARE(test.isNative(), false);
- QStringList failedFiles;
- test.setHint("local");
- auto downloads = test.getDownloads(currentSystem, cache.get(), failedFiles, QString());
- QCOMPARE(downloads.size(), 0);
- QCOMPARE(failedFiles, {"testname-testversion.jar"});
- }
- void test_legacy_url_local_override()
- {
- Library test("com.paulscode:codecwav:20101023");
- QCOMPARE(test.isNative(), false);
- QStringList failedFiles;
- test.setHint("local");
- auto downloads = test.getDownloads(currentSystem, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
- QCOMPARE(downloads.size(), 0);
- qDebug() << failedFiles;
- QCOMPARE(failedFiles.size(), 0);
-
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(currentSystem, jar, native, native32, native64, QFINDTESTDATA("testdata"));
- QCOMPARE(jar, {QFileInfo(QFINDTESTDATA("testdata/codecwav-20101023.jar")).absoluteFilePath()});
- QCOMPARE(native, {});
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- }
- void test_legacy_native()
- {
- Library test("test.package:testname:testversion");
- test.m_nativeClassifiers[OpSys::Os_Linux]="linux";
- QCOMPARE(test.isNative(), true);
- test.setRepositoryURL("file://foo/bar");
- {
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(Os_Linux, jar, native, native32, native64, QString());
- QCOMPARE(jar, {});
- QCOMPARE(native, getStorage("test/package/testname/testversion/testname-testversion-linux.jar"));
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- QStringList failedFiles;
- auto dls = test.getDownloads(Os_Linux, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 1);
- QCOMPARE(failedFiles, {});
- auto dl = dls[0];
- QCOMPARE(dl->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-linux.jar"));
- }
- }
- void test_legacy_native_arch()
- {
- Library test("test.package:testname:testversion");
- test.m_nativeClassifiers[OpSys::Os_Linux]="linux-${arch}";
- test.m_nativeClassifiers[OpSys::Os_OSX]="osx-${arch}";
- test.m_nativeClassifiers[OpSys::Os_Windows]="windows-${arch}";
- QCOMPARE(test.isNative(), true);
- test.setRepositoryURL("file://foo/bar");
- {
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(Os_Linux, jar, native, native32, native64, QString());
- QCOMPARE(jar, {});
- QCOMPARE(native, {});
- QCOMPARE(native32, getStorage("test/package/testname/testversion/testname-testversion-linux-32.jar"));
- QCOMPARE(native64, getStorage("test/package/testname/testversion/testname-testversion-linux-64.jar"));
- QStringList failedFiles;
- auto dls = test.getDownloads(Os_Linux, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 2);
- QCOMPARE(failedFiles, {});
- QCOMPARE(dls[0]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-linux-32.jar"));
- QCOMPARE(dls[1]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-linux-64.jar"));
- }
- {
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(Os_Windows, jar, native, native32, native64, QString());
- QCOMPARE(jar, {});
- QCOMPARE(native, {});
- QCOMPARE(native32, getStorage("test/package/testname/testversion/testname-testversion-windows-32.jar"));
- QCOMPARE(native64, getStorage("test/package/testname/testversion/testname-testversion-windows-64.jar"));
- QStringList failedFiles;
- auto dls = test.getDownloads(Os_Windows, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 2);
- QCOMPARE(failedFiles, {});
- QCOMPARE(dls[0]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-windows-32.jar"));
- QCOMPARE(dls[1]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-windows-64.jar"));
- }
- {
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(Os_OSX, jar, native, native32, native64, QString());
- QCOMPARE(jar, {});
- QCOMPARE(native, {});
- QCOMPARE(native32, getStorage("test/package/testname/testversion/testname-testversion-osx-32.jar"));
- QCOMPARE(native64, getStorage("test/package/testname/testversion/testname-testversion-osx-64.jar"));
- QStringList failedFiles;
- auto dls = test.getDownloads(Os_OSX, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 2);
- QCOMPARE(failedFiles, {});
- QCOMPARE(dls[0]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-osx-32.jar"));
- QCOMPARE(dls[1]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-osx-64.jar"));
- }
- }
- void test_legacy_native_arch_local_override()
- {
- Library test("test.package:testname:testversion");
- test.m_nativeClassifiers[OpSys::Os_Linux]="linux-${arch}";
- test.setHint("local");
- QCOMPARE(test.isNative(), true);
- test.setRepositoryURL("file://foo/bar");
- {
- QStringList jar, native, native32, native64;
- test.getApplicableFiles(Os_Linux, jar, native, native32, native64, QFINDTESTDATA("testdata"));
- QCOMPARE(jar, {});
- QCOMPARE(native, {});
- QCOMPARE(native32, {QFileInfo(QFINDTESTDATA("testdata/testname-testversion-linux-32.jar")).absoluteFilePath()});
- QCOMPARE(native64, {QFileInfo(QFINDTESTDATA("testdata") + "/testname-testversion-linux-64.jar").absoluteFilePath()});
- QStringList failedFiles;
- auto dls = test.getDownloads(Os_Linux, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
- QCOMPARE(dls.size(), 0);
- QCOMPARE(failedFiles, {QFileInfo(QFINDTESTDATA("testdata") + "/testname-testversion-linux-64.jar").absoluteFilePath()});
- }
- }
- void test_onenine()
- {
- auto test = readMojangJson(QFINDTESTDATA("testdata/lib-simple.json"));
- {
- QStringList jar, native, native32, native64;
- test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QString());
- QCOMPARE(jar, getStorage("com/paulscode/codecwav/20101023/codecwav-20101023.jar"));
- QCOMPARE(native, {});
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- }
- {
- QStringList failedFiles;
- auto dls = test->getDownloads(Os_Linux, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 1);
- QCOMPARE(failedFiles, {});
- QCOMPARE(dls[0]->m_url, QUrl("https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"));
- }
- test->setHint("local");
- {
- QStringList jar, native, native32, native64;
- test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QFINDTESTDATA("testdata"));
- QCOMPARE(jar, {QFileInfo(QFINDTESTDATA("testdata/codecwav-20101023.jar")).absoluteFilePath()});
- QCOMPARE(native, {});
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- }
- {
- QStringList failedFiles;
- auto dls = test->getDownloads(Os_Linux, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
- QCOMPARE(dls.size(), 0);
- QCOMPARE(failedFiles, {});
- }
- }
- void test_onenine_local_override()
- {
- auto test = readMojangJson(QFINDTESTDATA("testdata/lib-simple.json"));
- test->setHint("local");
- {
- QStringList jar, native, native32, native64;
- test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QFINDTESTDATA("testdata"));
- QCOMPARE(jar, {QFileInfo(QFINDTESTDATA("testdata/codecwav-20101023.jar")).absoluteFilePath()});
- QCOMPARE(native, {});
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- }
- {
- QStringList failedFiles;
- auto dls = test->getDownloads(Os_Linux, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
- QCOMPARE(dls.size(), 0);
- QCOMPARE(failedFiles, {});
- }
- }
- void test_onenine_native()
- {
- auto test = readMojangJson(QFINDTESTDATA("testdata/lib-native.json"));
- QStringList jar, native, native32, native64;
- test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QString());
- QCOMPARE(jar, QStringList());
- QCOMPARE(native, getStorage("org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"));
- QCOMPARE(native32, {});
- QCOMPARE(native64, {});
- QStringList failedFiles;
- auto dls = test->getDownloads(Os_OSX, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 1);
- QCOMPARE(failedFiles, {});
- QCOMPARE(dls[0]->m_url, QUrl("https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"));
- }
- void test_onenine_native_arch()
- {
- auto test = readMojangJson(QFINDTESTDATA("testdata/lib-native-arch.json"));
- QStringList jar, native, native32, native64;
- test->getApplicableFiles(Os_Windows, jar, native, native32, native64, QString());
- QCOMPARE(jar, {});
- QCOMPARE(native, {});
- QCOMPARE(native32, getStorage("tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-32.jar"));
- QCOMPARE(native64, getStorage("tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-64.jar"));
- QStringList failedFiles;
- auto dls = test->getDownloads(Os_Windows, cache.get(), failedFiles, QString());
- QCOMPARE(dls.size(), 2);
- QCOMPARE(failedFiles, {});
- QCOMPARE(dls[0]->m_url, QUrl("https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-32.jar"));
- QCOMPARE(dls[1]->m_url, QUrl("https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-64.jar"));
- }
-private:
- std::unique_ptr<HttpMetaCache> cache;
- QString dataDir;
-};
-
-QTEST_GUILESS_MAIN(LibraryTest)
-
-#include "Library_test.moc"
diff --git a/launcher/minecraft/MojangVersionFormat_test.cpp b/launcher/minecraft/MojangVersionFormat_test.cpp
deleted file mode 100644
index 71df784b..00000000
--- a/launcher/minecraft/MojangVersionFormat_test.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <QTest>
-#include <QDebug>
-
-#include "minecraft/MojangVersionFormat.h"
-
-class MojangVersionFormatTest : public QObject
-{
- Q_OBJECT
-
- static QJsonDocument readJson(const QString path)
- {
- QFile jsonFile(path);
- jsonFile.open(QIODevice::ReadOnly);
- auto data = jsonFile.readAll();
- jsonFile.close();
- return QJsonDocument::fromJson(data);
- }
- static void writeJson(const char *file, QJsonDocument doc)
- {
- QFile jsonFile(file);
- jsonFile.open(QIODevice::WriteOnly | QIODevice::Text);
- auto data = doc.toJson(QJsonDocument::Indented);
- qDebug() << QString::fromUtf8(data);
- jsonFile.write(data);
- jsonFile.close();
- }
-
-private
-slots:
- void test_Through_Simple()
- {
- QJsonDocument doc = readJson(QFINDTESTDATA("testdata/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);
-
- QCOMPARE(doc.toJson(), doc2.toJson());
- }
-
- void test_Through()
- {
- QJsonDocument doc = readJson(QFINDTESTDATA("testdata/1.9.json"));
- auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9.json");
- auto doc2 = MojangVersionFormat::versionFileToJson(vfile);
- writeJson("1.9-passthorugh.json", doc2);
- QCOMPARE(doc.toJson(), doc2.toJson());
- }
-};
-
-QTEST_GUILESS_MAIN(MojangVersionFormatTest)
-
-#include "MojangVersionFormat_test.moc"
-
diff --git a/launcher/minecraft/ParseUtils_test.cpp b/launcher/minecraft/ParseUtils_test.cpp
deleted file mode 100644
index 7721a46d..00000000
--- a/launcher/minecraft/ParseUtils_test.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <QTest>
-
-#include "minecraft/ParseUtils.h"
-
-class ParseUtilsTest : public QObject
-{
- Q_OBJECT
-private
-slots:
- void test_Through_data()
- {
- QTest::addColumn<QString>("timestamp");
- const char * timestamps[] =
- {
- "2016-02-29T13:49:54+01:00",
- "2016-02-26T15:21:11+00:01",
- "2016-02-24T15:52:36+01:13",
- "2016-02-18T17:41:00+00:00",
- "2016-02-17T15:23:19+00:00",
- "2016-02-16T15:22:39+09:22",
- "2016-02-10T15:06:41+00:00",
- "2016-02-04T15:28:02-05:33"
- };
- for(unsigned i = 0; i < (sizeof(timestamps) / sizeof(const char *)); i++)
- {
- QTest::newRow(timestamps[i]) << QString(timestamps[i]);
- }
- }
- void test_Through()
- {
- QFETCH(QString, timestamp);
-
- auto time_parsed = timeFromS3Time(timestamp);
- auto time_serialized = timeToS3Time(time_parsed);
-
- QCOMPARE(time_serialized, timestamp);
- }
-
-};
-
-QTEST_GUILESS_MAIN(ParseUtilsTest)
-
-#include "ParseUtils_test.moc"
diff --git a/launcher/minecraft/mod/ResourceFolderModel_test.cpp b/launcher/minecraft/mod/ResourceFolderModel_test.cpp
deleted file mode 100644
index aa78e502..00000000
--- a/launcher/minecraft/mod/ResourceFolderModel_test.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-only
-/*
-* PolyMC - Minecraft Launcher
-* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, version 3.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <https://www.gnu.org/licenses/>.
-*
-* This file incorporates work covered by the following copyright and
-* permission notice:
-*
-* Copyright 2013-2021 MultiMC Contributors
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <QTest>
-#include <QTemporaryDir>
-#include <QTimer>
-
-#include "FileSystem.h"
-
-#include "minecraft/mod/ModFolderModel.h"
-#include "minecraft/mod/ResourceFolderModel.h"
-
-#define EXEC_UPDATE_TASK(EXEC, VERIFY) \
- QEventLoop loop; \
- \
- connect(&model, &ResourceFolderModel::updateFinished, &loop, &QEventLoop::quit); \
- \
- QTimer expire_timer; \
- expire_timer.callOnTimeout(&loop, &QEventLoop::quit); \
- expire_timer.setSingleShot(true); \
- expire_timer.start(4000); \
- \
- VERIFY(EXEC); \
- loop.exec(); \
- \
- QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished."); \
- expire_timer.stop(); \
- \
- disconnect(&model, nullptr, &loop, nullptr);
-
-class ResourceFolderModelTest : public QObject
-{
- Q_OBJECT
-
-private
-slots:
- // test for GH-1178 - install a folder with files to a mod list
- void test_1178()
- {
- // source
- QString source = QFINDTESTDATA("testdata/test_folder");
-
- // sanity check
- QVERIFY(!source.endsWith('/'));
-
- auto verify = [](QString path)
- {
- QDir target_dir(FS::PathCombine(path, "test_folder"));
- QVERIFY(target_dir.entryList().contains("pack.mcmeta"));
- QVERIFY(target_dir.entryList().contains("assets"));
- };
-
- // 1. test with no trailing /
- {
- QString folder = source;
- QTemporaryDir tempDir;
-
- QEventLoop loop;
-
- ModFolderModel m(tempDir.path(), true);
-
- connect(&m, &ModFolderModel::updateFinished, &loop, &QEventLoop::quit);
-
- QTimer expire_timer;
- expire_timer.callOnTimeout(&loop, &QEventLoop::quit);
- expire_timer.setSingleShot(true);
- expire_timer.start(4000);
-
- m.installMod(folder);
-
- loop.exec();
-
- QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished.");
- expire_timer.stop();
-
- verify(tempDir.path());
- }
-
- // 2. test with trailing /
- {
- QString folder = source + '/';
- QTemporaryDir tempDir;
- QEventLoop loop;
- ModFolderModel m(tempDir.path(), true);
-
- connect(&m, &ModFolderModel::updateFinished, &loop, &QEventLoop::quit);
-
- QTimer expire_timer;
- expire_timer.callOnTimeout(&loop, &QEventLoop::quit);
- expire_timer.setSingleShot(true);
- expire_timer.start(4000);
-
- m.installMod(folder);
-
- loop.exec();
-
- QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished.");
- expire_timer.stop();
-
- verify(tempDir.path());
- }
- }
-
- void test_addFromWatch()
- {
- QString source = QFINDTESTDATA("testdata");
-
- ModFolderModel model(source);
-
- QCOMPARE(model.size(), 0);
-
- EXEC_UPDATE_TASK(model.startWatching(), )
-
- for (auto mod : model.allMods())
- qDebug() << mod->name();
-
- // FIXME: It considers every file in the directory as a mod, but we should probably filter that out somehow.
- QCOMPARE(model.size(), 4);
-
- model.stopWatching();
- }
-
- void test_removeResource()
- {
- QString folder_resource = QFINDTESTDATA("testdata/test_folder");
- QString file_mod = QFINDTESTDATA("testdata/supercoolmod.jar");
-
- QTemporaryDir tmp;
-
- ResourceFolderModel model(QDir(tmp.path()));
-
- QCOMPARE(model.size(), 0);
-
- {
- EXEC_UPDATE_TASK(model.installResource(file_mod), QVERIFY)
- }
-
- QCOMPARE(model.size(), 1);
- qDebug() << "Added first mod.";
-
- {
- EXEC_UPDATE_TASK(model.startWatching(), )
- }
-
- QCOMPARE(model.size(), 1);
- qDebug() << "Started watching the temp folder.";
-
- {
- EXEC_UPDATE_TASK(model.installResource(folder_resource), QVERIFY)
- }
-
- QCOMPARE(model.size(), 2);
- qDebug() << "Added second mod.";
-
- {
- EXEC_UPDATE_TASK(model.uninstallResource("supercoolmod.jar"), QVERIFY);
- }
-
- QCOMPARE(model.size(), 1);
- qDebug() << "Removed first mod.";
-
- QString mod_file_name {model.at(0).fileinfo().fileName()};
- QVERIFY(!mod_file_name.isEmpty());
-
- {
- EXEC_UPDATE_TASK(model.uninstallResource(mod_file_name), QVERIFY);
- }
-
- QCOMPARE(model.size(), 0);
- qDebug() << "Removed second mod.";
-
- model.stopWatching();
- }
-
- void test_enable_disable()
- {
- QString folder_resource = QFINDTESTDATA("testdata/test_folder");
- QString file_mod = QFINDTESTDATA("testdata/supercoolmod.jar");
-
- QTemporaryDir tmp;
- ResourceFolderModel model(tmp.path());
-
- QCOMPARE(model.size(), 0);
-
- {
- EXEC_UPDATE_TASK(model.installResource(folder_resource), QVERIFY)
- }
- {
- EXEC_UPDATE_TASK(model.installResource(file_mod), QVERIFY)
- }
-
- for (auto res : model.all())
- qDebug() << res->name();
-
- QCOMPARE(model.size(), 2);
-
- auto& res_1 = model.at(0).type() != ResourceType::FOLDER ? model.at(0) : model.at(1);
- auto& res_2 = model.at(0).type() == ResourceType::FOLDER ? model.at(0) : model.at(1);
- auto id_1 = res_1.internal_id();
- auto id_2 = res_2.internal_id();
- bool initial_enabled_res_2 = res_2.enabled();
- bool initial_enabled_res_1 = res_1.enabled();
-
- QVERIFY(res_1.type() != ResourceType::FOLDER && res_1.type() != ResourceType::UNKNOWN);
- qDebug() << "res_1 is of the correct type.";
- QVERIFY(res_1.enabled());
- qDebug() << "res_1 is initially enabled.";
-
- QVERIFY(res_1.enable(EnableAction::TOGGLE));
-
- QVERIFY(res_1.enabled() == !initial_enabled_res_1);
- qDebug() << "res_1 got successfully toggled.";
-
- QVERIFY(res_1.enable(EnableAction::TOGGLE));
- qDebug() << "res_1 got successfully toggled again.";
-
- QVERIFY(res_1.enabled() == initial_enabled_res_1);
- QVERIFY(res_1.internal_id() == id_1);
- qDebug() << "res_1 got back to its initial state.";
-
- QVERIFY(!res_2.enable(initial_enabled_res_2 ? EnableAction::ENABLE : EnableAction::DISABLE));
- QVERIFY(res_2.enabled() == initial_enabled_res_2);
- QVERIFY(res_2.internal_id() == id_2);
- }
-};
-
-QTEST_GUILESS_MAIN(ResourceFolderModelTest)
-
-#include "ResourceFolderModel_test.moc"
diff --git a/launcher/minecraft/mod/ResourcePackParse_test.cpp b/launcher/minecraft/mod/ResourcePackParse_test.cpp
deleted file mode 100644
index a49582d6..00000000
--- a/launcher/minecraft/mod/ResourcePackParse_test.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-only
-/*
- * PolyMC - Minecraft Launcher
- * Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-#include <QTest>
-#include <QTimer>
-
-#include "FileSystem.h"
-
-#include "ResourcePack.h"
-#include "tasks/LocalResourcePackParseTask.h"
-
-class ResourcePackParseTest : public QObject {
- Q_OBJECT
-
- private slots:
- void test_parseZIP()
- {
- QString source = QFINDTESTDATA("testdata");
-
- QString zip_rp = FS::PathCombine(source, "test_resource_pack_idk.zip");
- ResourcePack pack { QFileInfo(zip_rp) };
-
- ResourcePackUtils::processZIP(pack);
-
- QVERIFY(pack.packFormat() == 3);
- QVERIFY(pack.description() == "um dois, feijão com arroz, três quatro, feijão no prato, cinco seis, café inglês, sete oito, comer biscoito, nove dez comer pastéis!!");
- }
-
- void test_parseFolder()
- {
- QString source = QFINDTESTDATA("testdata");
-
- QString folder_rp = FS::PathCombine(source, "test_folder");
- ResourcePack pack { QFileInfo(folder_rp) };
-
- ResourcePackUtils::processFolder(pack);
-
- QVERIFY(pack.packFormat() == 1);
- QVERIFY(pack.description() == "Some resource pack maybe");
- }
-
- void test_parseFolder2()
- {
- QString source = QFINDTESTDATA("testdata");
-
- QString folder_rp = FS::PathCombine(source, "another_test_folder");
- ResourcePack pack { QFileInfo(folder_rp) };
-
- ResourcePackUtils::process(pack);
-
- QVERIFY(pack.packFormat() == 6);
- QVERIFY(pack.description() == "o quartel pegou fogo, policia deu sinal, acode acode acode a bandeira nacional");
- }
-};
-
-QTEST_GUILESS_MAIN(ResourcePackParseTest)
-
-#include "ResourcePackParse_test.moc"
diff --git a/launcher/minecraft/mod/testdata/another_test_folder/pack.mcmeta b/launcher/minecraft/mod/testdata/another_test_folder/pack.mcmeta
deleted file mode 100644
index d33a0e5d..00000000
--- a/launcher/minecraft/mod/testdata/another_test_folder/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "pack_format": 6,
- "description": "o quartel pegou fogo, policia deu sinal, acode acode acode a bandeira nacional"
- }
-}
diff --git a/launcher/minecraft/mod/testdata/supercoolmod.jar b/launcher/minecraft/mod/testdata/supercoolmod.jar
deleted file mode 100644
index d8cf9860..00000000
--- a/launcher/minecraft/mod/testdata/supercoolmod.jar
+++ /dev/null
@@ -1 +0,0 @@
-the best mod.
diff --git a/launcher/minecraft/mod/testdata/test_folder/assets/minecraft/textures/blah.txt b/launcher/minecraft/mod/testdata/test_folder/assets/minecraft/textures/blah.txt
deleted file mode 100644
index 8d1c8b69..00000000
--- a/launcher/minecraft/mod/testdata/test_folder/assets/minecraft/textures/blah.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/launcher/minecraft/mod/testdata/test_folder/pack.mcmeta b/launcher/minecraft/mod/testdata/test_folder/pack.mcmeta
deleted file mode 100644
index 67ee0434..00000000
--- a/