aboutsummaryrefslogtreecommitdiff
path: root/tests/WorldSaveParse_test.cpp
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2023-01-07 17:33:34 +0100
committerGitHub <noreply@github.com>2023-01-07 17:33:34 +0100
commitf3f628410d3d4c9589b8ec2d06d492e7861c35a3 (patch)
tree415bb4e7bb92dd48bec8097ea73a8e63d5c0c10e /tests/WorldSaveParse_test.cpp
parent9901ecda4938827986e4754f770a2b35b64bb774 (diff)
parent0ebf04a021c633cd6a3cdd76514aa728dc253714 (diff)
downloadPrismLauncher-f3f628410d3d4c9589b8ec2d06d492e7861c35a3.tar.gz
PrismLauncher-f3f628410d3d4c9589b8ec2d06d492e7861c35a3.tar.bz2
PrismLauncher-f3f628410d3d4c9589b8ec2d06d492e7861c35a3.zip
Merge pull request #576 from Ryex/identify-zip-packs
fix https://github.com/PrismLauncher/PrismLauncher/issues/349
Diffstat (limited to 'tests/WorldSaveParse_test.cpp')
-rw-r--r--tests/WorldSaveParse_test.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/tests/WorldSaveParse_test.cpp b/tests/WorldSaveParse_test.cpp
new file mode 100644
index 00000000..4a8c3d29
--- /dev/null
+++ b/tests/WorldSaveParse_test.cpp
@@ -0,0 +1,94 @@
+
+// SPDX-FileCopyrightText: 2022 Rachel Powers <508861+Ryex@users.noreply.github.com>
+//
+// SPDX-License-Identifier: GPL-3.0-only
+
+/*
+ * Prism Launcher - Minecraft Launcher
+ * Copyright (C) 2022 Rachel Powers <508861+Ryex@users.noreply.github.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 <minecraft/mod/WorldSave.h>
+#include <minecraft/mod/tasks/LocalWorldSaveParseTask.h>
+
+class WorldSaveParseTest : public QObject {
+ Q_OBJECT
+
+ private slots:
+ void test_parseZIP()
+ {
+ QString source = QFINDTESTDATA("testdata/WorldSaveParse");
+
+ QString zip_ws = FS::PathCombine(source, "minecraft_save_1.zip") ;
+ WorldSave save { QFileInfo(zip_ws) };
+
+ bool valid = WorldSaveUtils::processZIP(save);
+
+ QVERIFY(save.saveFormat() == WorldSaveFormat::SINGLE);
+ QVERIFY(save.saveDirName() == "world_1");
+ QVERIFY(valid == true);
+ }
+
+ void test_parse_ZIP2()
+ {
+ QString source = QFINDTESTDATA("testdata/WorldSaveParse");
+
+ QString zip_ws = FS::PathCombine(source, "minecraft_save_2.zip") ;
+ WorldSave save { QFileInfo(zip_ws) };
+
+ bool valid = WorldSaveUtils::processZIP(save);
+
+ QVERIFY(save.saveFormat() == WorldSaveFormat::MULTI);
+ QVERIFY(save.saveDirName() == "world_2");
+ QVERIFY(valid == true);
+ }
+
+ void test_parseFolder()
+ {
+ QString source = QFINDTESTDATA("testdata/WorldSaveParse");
+
+ QString folder_ws = FS::PathCombine(source, "minecraft_save_3");
+ WorldSave save { QFileInfo(folder_ws) };
+
+ bool valid = WorldSaveUtils::processFolder(save);
+
+ QVERIFY(save.saveFormat() == WorldSaveFormat::SINGLE);
+ QVERIFY(save.saveDirName() == "world_3");
+ QVERIFY(valid == true);
+ }
+
+ void test_parseFolder2()
+ {
+ QString source = QFINDTESTDATA("testdata/WorldSaveParse");
+
+ QString folder_ws = FS::PathCombine(source, "minecraft_save_4");
+ WorldSave save { QFileInfo(folder_ws) };
+
+ bool valid = WorldSaveUtils::process(save);
+
+ QVERIFY(save.saveFormat() == WorldSaveFormat::MULTI);
+ QVERIFY(save.saveDirName() == "world_4");
+ QVERIFY(valid == true);
+ }
+};
+
+QTEST_GUILESS_MAIN(WorldSaveParseTest)
+
+#include "WorldSaveParse_test.moc"