From 3d31502dbaf022746d2e9b369d86b15191b2f607 Mon Sep 17 00:00:00 2001 From: codereader Date: Sun, 29 Nov 2020 12:06:02 +0100 Subject: [PATCH] #5108: Add unit test cases covering OpenMapFromArchive --- test/MapSavingLoading.cpp | 24 ++++++++++++++++++++++++ test/resources/map_loading_test.pk4 | Bin 0 -> 22058 bytes 2 files changed, 24 insertions(+) create mode 100644 test/resources/map_loading_test.pk4 diff --git a/test/MapSavingLoading.cpp b/test/MapSavingLoading.cpp index 50b1b4501e..aa39c859ec 100644 --- a/test/MapSavingLoading.cpp +++ b/test/MapSavingLoading.cpp @@ -4,6 +4,7 @@ #include "iundo.h" #include "imap.h" #include "imapformat.h" +#include "ifilesystem.h" #include "iradiant.h" #include "iselectiongroup.h" #include "ilightnode.h" @@ -286,6 +287,29 @@ TEST_F(MapLoadingTest, openMapFromModPak) EXPECT_EQ(GlobalMapModule().getMapName(), modRelativePath); } +TEST_F(MapLoadingTest, openMapFromArchive) +{ + auto pakPath = fs::path(_context.getTestResourcePath()) / ".." / "map_loading_test.pk4"; + std::string archiveRelativePath = "maps/altar_packed.map"; + + GlobalCommandSystem().executeCommand("OpenMapFromArchive", pakPath.string(), archiveRelativePath); + + // Check if the scene contains what we expect + checkAltarScene(); +} + +TEST_F(MapLoadingTest, openMapFromArchiveWithoutInfoFile) +{ + auto pakPath = fs::path(_context.getTestResourcePath()) / ".." / "map_loading_test.pk4"; + std::string archiveRelativePath = "maps/altar_packed_without_dr_file.map"; + + GlobalCommandSystem().executeCommand("OpenMapFromArchive", pakPath.string(), archiveRelativePath); + + // Check if the scene contains what we expect, just the geometry since the map + // is lacking its .darkradiant file + checkAltarSceneGeometry(); +} + TEST_F(MapLoadingTest, openNonExistentMap) { std::string mapName = "idontexist.map"; diff --git a/test/resources/map_loading_test.pk4 b/test/resources/map_loading_test.pk4 new file mode 100644 index 0000000000000000000000000000000000000000..26e0cd9c00da45f9a325b8a50b2f206e81dfb3e8 GIT binary patch literal 22058 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