From 472892f3719ed83ed08a6d7400c65b903c803243 Mon Sep 17 00:00:00 2001 From: Julien Viet Date: Wed, 4 Sep 2013 18:14:57 +0200 Subject: [PATCH] Fix bug in page importer --- .../portal/mop/importer/PageImporter.java | 10 +++++++ .../portal/mop/importer/TestPageImporter.java | 17 ++++++++++- .../portal/mop/importer/TestSiteImporter.java | 30 ++----------------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/component/portal/src/main/java/org/exoplatform/portal/mop/importer/PageImporter.java b/component/portal/src/main/java/org/exoplatform/portal/mop/importer/PageImporter.java index 430a49c93..8e7312aba 100644 --- a/component/portal/src/main/java/org/exoplatform/portal/mop/importer/PageImporter.java +++ b/component/portal/src/main/java/org/exoplatform/portal/mop/importer/PageImporter.java @@ -116,6 +116,16 @@ public void perform() throws Exception { data.getAccessPermissions(), data.getChildren()); + // Remove children + while (true) { + NodeContext first = context.getFirst(); + if (first != null) { + first.removeNode(); + } else { + break; + } + } + // Then save page layout layoutService.saveLayout(new ContainerAdapter(container), container, context, null); } diff --git a/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestPageImporter.java b/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestPageImporter.java index 1194241a0..8ec67937b 100644 --- a/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestPageImporter.java +++ b/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestPageImporter.java @@ -35,7 +35,7 @@ */ public class TestPageImporter extends AbstractMopServiceTest { - public void testFoo() throws Exception { + public void testInsert() throws Exception { createSite(SiteType.PORTAL, "bilto"); sync(true); Page page = new Page(); @@ -69,4 +69,19 @@ public void testDuplicateChildName() throws Exception { assertEquals(HierarchyError.ADD_CONCURRENTLY_ADDED_NODE, e.getError()); } } + + public void testOverwrite() throws Exception { + createSite(SiteType.PORTAL, "overwrite"); + Page page = new Page(); + page.setOwnerId("overwrite"); + page.setOwnerType("portal"); + page.setName("the_page"); + page.getChildren().add(new Container().setStorageName("foo")); + page.getChildren().add(new Container().setStorageName("bar")); + PageImporter importer = new PageImporter(ImportMode.OVERWRITE, page, context.getLayoutService(), context.getPageService()); + importer.perform(); + sync(true); + importer = new PageImporter(ImportMode.OVERWRITE, page, context.getLayoutService(), context.getPageService()); + importer.perform(); + } } diff --git a/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestSiteImporter.java b/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestSiteImporter.java index 62e382995..01559ae1e 100644 --- a/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestSiteImporter.java +++ b/component/portal/src/test/java/org/exoplatform/portal/mop/importer/TestSiteImporter.java @@ -36,42 +36,16 @@ */ public class TestSiteImporter extends AbstractMopServiceTest { - public void testFoo() throws Exception { - - PortalConfig site = new PortalConfig("portal", "foobarjuu"); - + public void testOverwrite() throws Exception { + PortalConfig site = new PortalConfig("portal", "overwrite"); Container layout = new Container(); layout.getChildren().add(new Container().setStorageName("foo")); layout.getChildren().add(new Container().setStorageName("bar")); site.setPortalLayout(layout); - SiteImporter importer = new SiteImporter(ImportMode.OVERWRITE, site, context.getSiteService(), context.getLayoutService()); importer.perform(); - sync(true); - importer = new SiteImporter(ImportMode.OVERWRITE, site, context.getSiteService(), context.getLayoutService()); importer.perform(); - - - - -/* - createSite(SiteType.PORTAL, "bilto"); - sync(true); - Page page = new Page(); - page.setOwnerId("bilto"); - page.setOwnerType("portal"); - page.setName("the_page"); - Container container = new Container(); - container.setStorageName("foo"); - page.getChildren().add(container); - PageImporter importer = new PageImporter(ImportMode.INSERT, page, context.getLayoutService(), getPageService()); - importer.perform(); - PageContext pageContext = getPageService().loadPage(PageKey.parse("portal::bilto::the_page")); - NodeContext ret = (NodeContext)context.getLayoutService().loadLayout(ElementState.model(), pageContext.getLayoutId(), null); - assertEquals(1, ret.getSize()); - assertNotNull(ret.get("foo")); -*/ } }