summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/ModList_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/minecraft/ModList_test.cpp')
-rw-r--r--api/logic/minecraft/ModList_test.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/api/logic/minecraft/ModList_test.cpp b/api/logic/minecraft/ModList_test.cpp
new file mode 100644
index 00000000..155c238a
--- /dev/null
+++ b/api/logic/minecraft/ModList_test.cpp
@@ -0,0 +1,53 @@
+
+#include <QTest>
+#include <QTemporaryDir>
+#include "TestUtil.h"
+
+#include "FileSystem.h"
+#include "minecraft/ModList.h"
+
+class ModListTest : 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("data/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;
+ ModList m(tempDir.path());
+ m.installMod(folder);
+ verify(tempDir.path());
+ }
+
+ // 2. test with trailing /
+ {
+ QString folder = source + '/';
+ QTemporaryDir tempDir;
+ ModList m(tempDir.path());
+ m.installMod(folder);
+ verify(tempDir.path());
+ }
+ }
+};
+
+QTEST_GUILESS_MAIN(ModListTest)
+
+#include "ModList_test.moc"