/* * Copyright (C) 2003-2010 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.wiki.mow.core.api; import org.exoplatform.wiki.mow.api.Model; import org.exoplatform.wiki.mow.api.Page; import org.exoplatform.wiki.mow.api.Wiki; import org.exoplatform.wiki.mow.api.WikiType; import org.exoplatform.wiki.mow.core.api.wiki.PageImpl; import org.exoplatform.wiki.mow.core.api.wiki.PortalWiki; import org.exoplatform.wiki.mow.core.api.wiki.WikiContainer; import org.exoplatform.wiki.mow.core.api.wiki.WikiHome; import org.exoplatform.wiki.service.WikiService; public class TestWikiPage extends AbstractMOWTestcase { public void testAddWikiHome() { Model model = mowService.getModel(); WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore(); WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL); PortalWiki wiki = portalWikiContainer.addWiki("classic"); WikiHome wikiHomePage = wiki.getWikiHome(); assertNotNull(wikiHomePage) ; } public void testAddWikiPage() throws Exception { Model model = mowService.getModel(); WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore(); WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL); PortalWiki wiki = portalWikiContainer.addWiki("classic"); WikiHome wikiHomePage = wiki.getWikiHome(); PageImpl wikipage = wiki.createWikiPage(); wikipage.setName("AddWikiPage"); wikiHomePage.addWikiPage(wikipage); assertSame(wikipage, wikiHomePage.getChildPages().get(wikipage.getName())); } public void testGetWikiPageById() throws Exception { Model model = mowService.getModel(); WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore(); WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL); PortalWiki wiki = portalWikiContainer.addWiki("classic"); WikiHome wikiHomePage = wiki.getWikiHome(); PageImpl wikipage = wiki.createWikiPage(); wikipage.setName("CreateWikiPage-001"); wikiHomePage.addWikiPage(wikipage); assertNotNull(wikiHomePage.getWikiPage("CreateWikiPage-001")) ; PageImpl subpage = wiki.createWikiPage(); subpage.setName("SubWikiPage-001") ; wikipage.addWikiPage(subpage) ; assertNotNull(wikipage.getWikiPage("SubWikiPage-001")) ; model.save() ; WikiService wService = (WikiService)container.getComponentInstanceOfType(WikiService.class) ; Page page = wService.getPageById("portal", "classic", "SubWikiPage-001") ; assertNotNull(page) ; } public void testUpdateWikiPage() throws Exception { Model model = mowService.getModel(); WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore(); WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL); PortalWiki wiki = portalWikiContainer.addWiki("classic"); WikiHome wikiHomePage = wiki.getWikiHome(); PageImpl wikipage = wiki.createWikiPage(); wikipage.setName("UpdateWikiPage-001"); wikiHomePage.addWikiPage(wikipage); wikipage.setOwner("Root") ; PageImpl addedPage = wikiHomePage.getWikiPage("UpdateWikiPage-001") ; assertNotNull(addedPage); wikipage.setOwner("Demo") ; PageImpl editedPage = wikiHomePage.getWikiPage("UpdateWikiPage-001") ; assertNotNull(editedPage) ; assertEquals(editedPage.getOwner(), "Demo") ; assertNotNull(editedPage.getAuthor()) ; assertNotNull(editedPage.getUpdatedDate()) ; } public void testDeleteWikiPage() throws Exception { Model model = mowService.getModel(); WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore(); WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL); PortalWiki wiki = portalWikiContainer.addWiki("classic"); WikiHome wikiHomePage = wiki.getWikiHome(); PageImpl wikipage = wiki.createWikiPage(); wikipage.setName("DeleteWikiPage"); wikiHomePage.addWikiPage(wikipage); PageImpl deletePage = wikiHomePage.getWikiPage("DeleteWikiPage") ; assertNotNull(deletePage) ; deletePage.remove() ; assertNull(wikiHomePage.getWikiPage("DeleteWikiPage")) ; } public void testGetWiki() { Model model = mowService.getModel(); WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore(); WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL); PortalWiki wiki = portalWikiContainer.addWiki("classic"); WikiHome wikiHomePage = wiki.getWikiHome(); PageImpl parrentpage = wiki.createWikiPage(); parrentpage.setName("ParentPage"); wikiHomePage.addWikiPage(parrentpage); PageImpl childpage = wiki.createWikiPage(); childpage.setName("ChildPage"); parrentpage.addWikiPage(childpage); Wiki childPageWiki = childpage.getWiki(); assertEquals(childPageWiki.getOwner(), "classic"); } }