From ac6c96d2343e46cbcc76a347bb83b09b64cf30e4 Mon Sep 17 00:00:00 2001 From: Boubaker Khanfir Date: Mon, 30 Sep 2024 18:34:06 +0100 Subject: [PATCH 1/2] feat: Fix Test API usage - MEED-7545 - Meeds-io/MIPs#151 (#1139) --- .../java/org/exoplatform/wiki/jpa/JPADataStorageTest.java | 4 +--- .../java/org/exoplatform/wiki/jpa/dao/DraftPageDAOTest.java | 6 ++---- .../java/org/exoplatform/wiki/service/TestNoteService.java | 3 +-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/notes-service/src/test/java/org/exoplatform/wiki/jpa/JPADataStorageTest.java b/notes-service/src/test/java/org/exoplatform/wiki/jpa/JPADataStorageTest.java index 6208b72067..a4bdac9c87 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/jpa/JPADataStorageTest.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/jpa/JPADataStorageTest.java @@ -53,8 +53,6 @@ import org.exoplatform.wiki.service.WikiPageParams; import org.exoplatform.wiki.utils.NoteConstants; -import static org.exoplatform.social.core.jpa.test.AbstractCoreTest.persist; - /** * Created by The eXo Platform SAS Author : eXoPlatform exo@exoplatform.com * 9/8/15 @@ -1161,7 +1159,7 @@ public void testDeleteOrphanDraftPagesByParentPage() throws Exception { draft = draftPageDAO.create(draft); assertNotNull(draft); storage.deleteOrphanDraftPagesByParentPage(Long.parseLong(wiki.getWikiHome().getId())); - persist(); + restartTransaction(); assertNull(draftPageDAO.find(draft.getId())); } diff --git a/notes-service/src/test/java/org/exoplatform/wiki/jpa/dao/DraftPageDAOTest.java b/notes-service/src/test/java/org/exoplatform/wiki/jpa/dao/DraftPageDAOTest.java index 09fc019873..4effa66eb4 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/jpa/dao/DraftPageDAOTest.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/jpa/dao/DraftPageDAOTest.java @@ -30,8 +30,6 @@ import org.exoplatform.wiki.jpa.entity.PageEntity; import org.exoplatform.wiki.jpa.entity.WikiEntity; -import static org.exoplatform.social.core.jpa.test.AbstractCoreTest.persist; - /** * Created by The eXo Platform SAS Author : eXoPlatform exo@exoplatform.com Jun * 26, 2015 @@ -348,7 +346,7 @@ public void testFindLatestDraftPageByTargetPage() throws InterruptedException { dp1.setCreatedDate(new Date()); dp1.setUpdatedDate(new Date()); draftPageDAO.create(dp1); - persist(); + restartTransaction(); // Added to fix random fail when draft pages // are added at the same time @@ -361,7 +359,7 @@ public void testFindLatestDraftPageByTargetPage() throws InterruptedException { dp2.setCreatedDate(new Date()); dp2.setUpdatedDate(new Date()); draftPageDAO.create(dp2); - persist(); + restartTransaction(); // When DraftPageEntity latestDraft = draftPageDAO.findLatestDraftPageByTargetPage(page.getId()); diff --git a/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java b/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java index a80f0b71c7..9978ae29fe 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java @@ -21,7 +21,6 @@ package org.exoplatform.wiki.service; -import static org.exoplatform.social.core.jpa.test.AbstractCoreTest.persist; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; @@ -720,7 +719,7 @@ public void testRemoveOrphanDraftPagesByParentPage() throws Exception { draft = noteService.createDraftForNewPage(draft, new Date().getTime(), 1L); assertNotNull(draft); noteService.removeOrphanDraftPagesByParentPage(Long.parseLong(homePage.getId())); - persist(); + restartTransaction(); assertNull(noteService.getDraftNoteById(draft.getId(), "root")); } From 145470a26c30ce3c7996a4644040214f079658d1 Mon Sep 17 00:00:00 2001 From: Boubaker Khanfir Date: Tue, 1 Oct 2024 16:08:51 +0100 Subject: [PATCH 2/2] feat: Update calls to UserACL to avoid implicit usage of Conversation State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#1146) This change will update UserACL usage to not implicitly use the current conversation state of authenticated user. --- .../notes/rest/NotePageViewRestTest.java | 21 ++++++++++--------- .../service/NotePageViewServiceTest.java | 8 +------ .../exoplatform/wiki/mock/MockUserACL.java | 9 -------- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java b/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java index 91e988dce7..8165653850 100644 --- a/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java +++ b/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java @@ -34,13 +34,13 @@ import org.exoplatform.container.ExoContainerContext; import org.exoplatform.portal.config.UserACL; import org.exoplatform.portal.config.model.PortalConfig; -import org.exoplatform.portal.mop.PageType; import org.exoplatform.portal.mop.page.PageContext; import org.exoplatform.portal.mop.page.PageKey; import org.exoplatform.portal.mop.page.PageState; import org.exoplatform.portal.mop.service.LayoutService; import org.exoplatform.services.rest.impl.ContainerResponse; import org.exoplatform.services.rest.impl.MultivaluedMapImpl; +import org.exoplatform.services.security.ConversationState; import org.exoplatform.services.security.IdentityRegistry; import org.exoplatform.services.security.MembershipEntry; import org.exoplatform.social.rest.api.RestUtils; @@ -112,14 +112,18 @@ public void testGetNotePageWithAnonim() throws ObjectAlreadyExistsException { Page notePage = getNotePage(pageNoteName, null); assertNull(notePage); + assertEquals(403, saveNotePage(pageNoteName, pageContent, null).getStatus()); + resetRestUtils(); + registerInternalUser(USERNAME); assertEquals(401, saveNotePage(pageNoteName, pageContent, null).getStatus()); assertEquals(404, saveNotePage(pageNoteName + "22", pageContent, null).getStatus()); registerAdministratorUser(USERNAME); - saveNotePage(pageNoteName, pageContent, null); + assertEquals(204, saveNotePage(pageNoteName, pageContent, null).getStatus()); + restartTransaction(); - resetRestUtils(); + registerInternalUser(USERNAME); notePage = getNotePage(pageNoteName, null); assertNotNull(notePage); assertEquals(pageContent, notePage.getContent()); @@ -186,14 +190,9 @@ private String createPage(String pageName, String accessPermission, String editP PageState pageState = new PageState(pageName, null, false, - false, null, Collections.singletonList(accessPermission), - editPermission, - Collections.singletonList(editPermission), - Collections.singletonList(editPermission), - PageType.PAGE.name(), - null); + editPermission); layoutService.save(new PageContext(pageKey, pageState)); return pageKey.format(); } @@ -254,8 +253,9 @@ private ContainerResponse saveNotePage(String name, String content, String lang) private org.exoplatform.services.security.Identity registerAdministratorUser(String user) { org.exoplatform.services.security.Identity identity = new org.exoplatform.services.security.Identity(user, - Arrays.asList(MembershipEntry.parse(ADMINISTRATORS_GROUP))); + Arrays.asList(MembershipEntry.parse(ADMINISTRATORS_GROUP), MembershipEntry.parse(USERS_GROUP))); identityRegistry.register(identity); + ConversationState.setCurrent(new ConversationState(identity)); resetRestUtils(); REST_UTILS.when(RestUtils::getCurrentUser).thenReturn(USERNAME); REST_UTILS.when(RestUtils::getCurrentUserAclIdentity).thenReturn(identity); @@ -267,6 +267,7 @@ private org.exoplatform.services.security.Identity registerInternalUser(String u new org.exoplatform.services.security.Identity(username, Arrays.asList(MembershipEntry.parse(USERS_GROUP))); identityRegistry.register(identity); + ConversationState.setCurrent(new ConversationState(identity)); resetRestUtils(); REST_UTILS.when(RestUtils::getCurrentUser).thenReturn(USERNAME); REST_UTILS.when(RestUtils::getCurrentUserAclIdentity).thenReturn(identity); diff --git a/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java b/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java index 8656e32260..c80ada9edf 100644 --- a/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java +++ b/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java @@ -29,7 +29,6 @@ import org.exoplatform.commons.exception.ObjectNotFoundException; import org.exoplatform.portal.config.UserACL; import org.exoplatform.portal.config.model.PortalConfig; -import org.exoplatform.portal.mop.PageType; import org.exoplatform.portal.mop.page.PageContext; import org.exoplatform.portal.mop.page.PageKey; import org.exoplatform.portal.mop.page.PageState; @@ -161,14 +160,9 @@ private String createPage(String pageName, String accessPermission, String editP PageState pageState = new PageState(pageName, null, false, - false, null, Collections.singletonList(accessPermission), - editPermission, - Collections.singletonList(editPermission), - Collections.singletonList(editPermission), - PageType.PAGE.name(), - null); + editPermission); layoutService.save(new PageContext(pageKey, pageState)); return pageKey.format(); } diff --git a/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java b/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java index 7345412b60..fabaa95db9 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java @@ -18,18 +18,9 @@ import org.exoplatform.container.xml.InitParams; import org.exoplatform.portal.config.UserACL; -import org.exoplatform.portal.config.model.Page; public class MockUserACL extends UserACL { - /* (non-Javadoc) - * @see org.exoplatform.portal.config.UserACL#hasPermission(org.exoplatform.portal.config.model.Page) - */ - @Override - public boolean hasPermission(Page page) { - return true; - } - /** * @param params */