From 4b33e697761b98d5a0c294c6038b08195a6df755 Mon Sep 17 00:00:00 2001 From: Kristian Duske Date: Thu, 15 Feb 2024 22:03:45 +0100 Subject: [PATCH] Add test to ensure that moving nodes out of linked groups works --- common/test/src/View/tst_GroupNodes.cpp | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/common/test/src/View/tst_GroupNodes.cpp b/common/test/src/View/tst_GroupNodes.cpp index 411084fdc1..fd162566ca 100644 --- a/common/test/src/View/tst_GroupNodes.cpp +++ b/common/test/src/View/tst_GroupNodes.cpp @@ -587,6 +587,32 @@ TEST_CASE_METHOD(MapDocumentTest, "GroupNodesTest.ungroupLinkedGroups") CHECK(linkedBrushNode2->linkId() == originalBrushLinkId); } +TEST_CASE_METHOD(MapDocumentTest, "GroupNodesTest.reparentLinkedNode") +{ + auto* brushNode = createBrushNode(); + auto* entityNode = new Model::EntityNode{Model::Entity{}}; + + document->addNodes({{document->parentForNodes(), {brushNode, entityNode}}}); + document->selectNodes({brushNode, entityNode}); + + auto* groupNode = document->groupSelection("test"); + REQUIRE(groupNode != nullptr); + + document->deselectAll(); + document->selectNodes({groupNode}); + + auto* linkedGroupNode = document->createLinkedDuplicate(); + REQUIRE_THAT(*linkedGroupNode, Model::MatchesNode(*groupNode)); + + document->deselectAll(); + document->openGroup(groupNode); + + document->reparentNodes({{document->world()->defaultLayer(), {brushNode}}}); + REQUIRE(groupNode->children() == std::vector{entityNode}); + REQUIRE(brushNode->parent() == document->world()->defaultLayer()); + REQUIRE_THAT(*linkedGroupNode, Model::MatchesNode(*groupNode)); +} + TEST_CASE_METHOD(MapDocumentTest, "GroupNodesTest.createLinkedDuplicate") { auto* brushNode = createBrushNode();