diff options
Diffstat (limited to 'launcher/minecraft/mod')
-rw-r--r-- | launcher/minecraft/mod/ResourceFolderModel_test.cpp | 261 | ||||
-rw-r--r-- | launcher/minecraft/mod/ResourcePackParse_test.cpp | 73 | ||||
-rw-r--r-- | launcher/minecraft/mod/testdata/another_test_folder/pack.mcmeta | 6 | ||||
-rw-r--r-- | launcher/minecraft/mod/testdata/supercoolmod.jar | 1 | ||||
-rw-r--r-- | launcher/minecraft/mod/testdata/test_folder/assets/minecraft/textures/blah.txt | 1 | ||||
-rw-r--r-- | launcher/minecraft/mod/testdata/test_folder/pack.mcmeta | 6 | ||||
-rw-r--r-- | launcher/minecraft/mod/testdata/test_folder/pack.nfo | 1 | ||||
-rw-r--r-- | launcher/minecraft/mod/testdata/test_resource_pack_idk.zip | bin | 322 -> 0 bytes |
8 files changed, 0 insertions, 349 deletions
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/launcher/minecraft/mod/testdata/test_folder/pack.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pack": { - "pack_format": 1, - "description": "Some resource pack maybe" - } -} diff --git a/launcher/minecraft/mod/testdata/test_folder/pack.nfo b/launcher/minecraft/mod/testdata/test_folder/pack.nfo deleted file mode 100644 index 8d1c8b69..00000000 --- a/launcher/minecraft/mod/testdata/test_folder/pack.nfo +++ /dev/null @@ -1 +0,0 @@ - diff --git a/launcher/minecraft/mod/testdata/test_resource_pack_idk.zip b/launcher/minecraft/mod/testdata/test_resource_pack_idk.zip Binary files differdeleted file mode 100644 index 52b91cdc..00000000 --- a/launcher/minecraft/mod/testdata/test_resource_pack_idk.zip +++ /dev/null |