From 0e5ed0da99d2b4dc58b0e4100f21c743eb5312ed Mon Sep 17 00:00:00 2001 From: freddyDOTCMS Date: Fri, 8 May 2026 14:02:10 -0600 Subject: [PATCH 1/2] Fixing layout error --- .../templates/business/TemplateAPIImpl.java | 12 ++- .../templates/design/bean/LayoutChanges.java | 4 +- .../design/bean/LayoutChangesTest.java | 82 +++++++++++++++++++ 3 files changed, 93 insertions(+), 5 deletions(-) create mode 100644 dotCMS/src/test/java/com/dotmarketing/portlets/templates/design/bean/LayoutChangesTest.java diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java index b27a1d84eae5..f813ffd4f074 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java @@ -1348,7 +1348,7 @@ private static void addMoveAndRemoveChangesWithHistory(final List final int layoutVersionDelta, final LayoutChanges.Builder builder) { oldContainers.stream().forEach(oldContainer -> { - final String uuid = oldContainer.getUUID(); + final String uuid = getOldUUID(oldContainer); final Optional newContainerUUIDMatch = newContainers.stream() .filter(newContainer -> oldContainer.getIdentifier().equals(newContainer.getIdentifier())) @@ -1356,7 +1356,7 @@ private static void addMoveAndRemoveChangesWithHistory(final List .findAny(); if (newContainerUUIDMatch.isPresent() && !uuid.equals(newContainerUUIDMatch.get().getUUID())) { - builder.change(oldContainer.getIdentifier(), oldContainer.getUUID(), + builder.change(oldContainer.getIdentifier(), getOldUUID(oldContainer), newContainerUUIDMatch.get().getUUID()); } else if (newContainerUUIDMatch.isEmpty()) { builder.remove(oldContainer.getIdentifier(), uuid); @@ -1558,15 +1558,19 @@ private static void addRemoveChanges(TemplateLayout oldLayout, List { Optional newContainer = newContainers.stream() .filter(containerUUID -> containerUUID.getIdentifier().equals(oldContainer.getIdentifier())) - .filter(containerUUID -> containerUUID.getUUID().equals(oldContainer.getUUID())) + .filter(containerUUID -> containerUUID.getUUID().equals(getOldUUID(oldContainer))) .findFirst(); if (!newContainer.isPresent()) { - builder.remove(oldContainer.getIdentifier(), oldContainer.getUUID()); + builder.remove(oldContainer.getIdentifier(), getOldUUID(oldContainer)); } }); } + private static String getOldUUID(ContainerUUID oldContainer) { + return ContainerUUID.UUID_LEGACY_VALUE.equals(oldContainer.getUUID()) ? "1" : oldContainer.getUUID(); + } + /** * Get all the {@link ContainerUUID} from the {@link TemplateLayout} * @param layout diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/design/bean/LayoutChanges.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/design/bean/LayoutChanges.java index 9a20839bcd0e..6c9bcbd146bb 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/design/bean/LayoutChanges.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/design/bean/LayoutChanges.java @@ -109,7 +109,9 @@ public String getNewInstanceId() { } public String getOldInstanceId() { - return oldInstanceId; + return ContainerUUID.UUID_LEGACY_VALUE.equals(oldInstanceId) + ? ContainerUUID.UUID_START_VALUE + : oldInstanceId; } public boolean isRemove() { diff --git a/dotCMS/src/test/java/com/dotmarketing/portlets/templates/design/bean/LayoutChangesTest.java b/dotCMS/src/test/java/com/dotmarketing/portlets/templates/design/bean/LayoutChangesTest.java new file mode 100644 index 000000000000..3e37df60a854 --- /dev/null +++ b/dotCMS/src/test/java/com/dotmarketing/portlets/templates/design/bean/LayoutChangesTest.java @@ -0,0 +1,82 @@ +package com.dotmarketing.portlets.templates.design.bean; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class LayoutChangesTest { + + @Test + public void getOldInstanceId_whenLegacyValue_returnsStartValue() { + final LayoutChanges.ContainerChanged changed = new LayoutChanges.ContainerChanged( + "container-1", + ContainerUUID.UUID_LEGACY_VALUE, + "2" + ); + + assertEquals(ContainerUUID.UUID_START_VALUE, changed.getOldInstanceId()); + } + + @Test + public void getOldInstanceId_whenNormalValue_returnsItUnchanged() { + final LayoutChanges.ContainerChanged changed = new LayoutChanges.ContainerChanged( + "container-1", + "5", + "6" + ); + + assertEquals("5", changed.getOldInstanceId()); + } + + @Test + public void getOldInstanceId_whenStartValue_returnsItUnchanged() { + final LayoutChanges.ContainerChanged changed = new LayoutChanges.ContainerChanged( + "container-1", + ContainerUUID.UUID_START_VALUE, + "2" + ); + + assertEquals(ContainerUUID.UUID_START_VALUE, changed.getOldInstanceId()); + } + + @Test + public void isRemove_whenNewInstanceIsDefault_returnsTrue() { + final LayoutChanges.ContainerChanged changed = new LayoutChanges.ContainerChanged( + "container-1", + "1", + ContainerUUID.UUID_DEFAULT_VALUE + ); + + assertTrue(changed.isRemove()); + assertFalse(changed.isNew()); + assertFalse(changed.isMoved()); + } + + @Test + public void isNew_whenOldInstanceIsDefault_returnsTrue() { + final LayoutChanges.ContainerChanged changed = new LayoutChanges.ContainerChanged( + "container-1", + ContainerUUID.UUID_DEFAULT_VALUE, + "1" + ); + + assertTrue(changed.isNew()); + assertFalse(changed.isRemove()); + assertFalse(changed.isMoved()); + } + + @Test + public void isMoved_whenBothInstancesAreNonDefault_returnsTrue() { + final LayoutChanges.ContainerChanged changed = new LayoutChanges.ContainerChanged( + "container-1", + "1", + "2" + ); + + assertTrue(changed.isMoved()); + assertFalse(changed.isNew()); + assertFalse(changed.isRemove()); + } +} \ No newline at end of file From 586bc91756b7522466a4d2e5720b6771278a9068 Mon Sep 17 00:00:00 2001 From: freddyDOTCMS Date: Fri, 10 Jul 2026 08:11:43 -0600 Subject: [PATCH 2/2] Including hasChildren postmat test in the search folder endpoint --- .../resources/postman/FolderResource.postman_collection.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotcms-postman/src/main/resources/postman/FolderResource.postman_collection.json b/dotcms-postman/src/main/resources/postman/FolderResource.postman_collection.json index b4552a9c6713..9c0e51833617 100644 --- a/dotcms-postman/src/main/resources/postman/FolderResource.postman_collection.json +++ b/dotcms-postman/src/main/resources/postman/FolderResource.postman_collection.json @@ -152,7 +152,7 @@ " pm.expect(folderEntry.inode).to.not.equal(undefined);", " pm.expect(folderEntry.path).to.not.equal(undefined);", " });", - "});", + "});",` "" ], "type": "text/javascript",