summaryrefslogtreecommitdiffstats
path: root/tests/tst_ModList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tst_ModList.cpp')
-rw-r--r--tests/tst_ModList.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/tst_ModList.cpp b/tests/tst_ModList.cpp
new file mode 100644
index 00000000..09870245
--- /dev/null
+++ b/tests/tst_ModList.cpp
@@ -0,0 +1,52 @@
+
+#include <QTest>
+#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("tests/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 "tst_ModList.moc"