/*
* 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.service;
import java.util.List;
import org.chromattic.api.ChromatticSession;
import org.chromattic.ext.ntdef.Resource;
import org.exoplatform.commons.utils.PageList;
import org.exoplatform.portal.config.model.PortalConfig;
import org.exoplatform.wiki.mow.api.Model;
import org.exoplatform.wiki.mow.api.WikiType;
import org.exoplatform.wiki.mow.core.api.AbstractMOWTestcase;
import org.exoplatform.wiki.mow.core.api.WikiStoreImpl;
import org.exoplatform.wiki.mow.core.api.wiki.AttachmentImpl;
import org.exoplatform.wiki.mow.core.api.wiki.GroupWiki;
import org.exoplatform.wiki.mow.core.api.wiki.MovedMixin;
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.UserWiki;
import org.exoplatform.wiki.mow.core.api.wiki.WikiContainer;
import org.exoplatform.wiki.mow.core.api.wiki.WikiHome;
import org.exoplatform.wiki.service.search.WikiSearchData;
import org.exoplatform.wiki.service.search.SearchResult;
import org.exoplatform.wiki.service.search.TemplateSearchData;
import org.exoplatform.wiki.service.search.TemplateSearchResult;
import org.exoplatform.wiki.service.search.TitleSearchResult;
import org.xwiki.rendering.syntax.Syntax;
public class TestWikiService extends AbstractMOWTestcase {
private WikiService wService ;
public void setUp() throws Exception{
super.setUp() ;
wService = (WikiService)container.getComponentInstanceOfType(WikiService.class) ;
}
public void testWikiService() throws Exception{
assertNotNull(wService) ;
}
public void testGetPortalPageById() throws Exception{
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
WikiContainer<PortalWiki> portalWikiContainer = wStore.getWikiContainer(WikiType.PORTAL);
PortalWiki wiki = portalWikiContainer.addWiki("classic");
PortalWiki wikiACME = portalWikiContainer.addWiki("acme");
wikiACME.getWikiHome() ;
WikiHome wikiHomePage = wiki.getWikiHome();
model.save() ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "WikiHome")) ;
PageImpl wikipage = wiki.createWikiPage();
wikipage.setName("testGetPortalPageById-001");
wikiHomePage.addWikiPage(wikipage);
model.save() ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "testGetPortalPageById-001")) ;
}
public void testGetGroupPageById() throws Exception{
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
WikiContainer<GroupWiki> groupWikiContainer = wStore.getWikiContainer(WikiType.GROUP);
GroupWiki wiki = groupWikiContainer.addWiki("platform/users");
WikiHome wikiHomePage = wiki.getWikiHome();
model.save() ;
assertNotNull(wService.getPageById(PortalConfig.GROUP_TYPE, "platform/users", "WikiHome")) ;
PageImpl wikipage = wiki.createWikiPage();
wikipage.setName("testGetGroupPageById-001");
wikiHomePage.addWikiPage(wikipage);
model.save() ;
assertNotNull(wService.getPageById(PortalConfig.GROUP_TYPE, "platform/users", "testGetGroupPageById-001")) ;
}
public void testGetUserPageById() throws Exception{
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
WikiContainer<UserWiki> userWikiContainer = wStore.getWikiContainer(WikiType.USER);
UserWiki wiki = userWikiContainer.addWiki("john");
WikiHome wikiHomePage = wiki.getWikiHome();
model.save() ;
assertNotNull(wService.getPageById(PortalConfig.USER_TYPE, "john", "WikiHome")) ;
PageImpl wikipage = wiki.createWikiPage();
wikipage.setName("testGetUserPageById-001");
wikiHomePage.addWikiPage(wikipage);
model.save() ;
assertNotNull(wService.getPageById(PortalConfig.USER_TYPE, "john", "testGetUserPageById-001")) ;
}
public void testCreatePageAndSubPage() throws Exception{
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "parentPage", "WikiHome") ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "parentPage")) ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "childPage", "parentPage") ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "childPage")) ;
}
public void testCreateTemplatePage() throws Exception {
WikiPageParams params = new WikiPageParams(PortalConfig.PORTAL_TYPE, "classic", null);
wService.createTemplatePage("SampleChart", params);
assertNotNull(wService.getTemplatePage(params, "SampleChart"));
}
public void testGetBreadcumb() throws Exception {
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "Breadcumb1", "WikiHome") ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "Breadcumb2", "Breadcumb1") ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "Breadcumb3", "Breadcumb2") ;
List<BreadcrumbData> breadCumbs = wService.getBreadcumb(PortalConfig.PORTAL_TYPE, "classic", "Breadcumb3");
assertEquals(4, breadCumbs.size());
assertEquals("WikiHome", breadCumbs.get(0).getId());
assertEquals("Breadcumb1", breadCumbs.get(1).getId());
assertEquals("Breadcumb2", breadCumbs.get(2).getId());
assertEquals("Breadcumb3", breadCumbs.get(3).getId());
wService.createPage(PortalConfig.GROUP_TYPE, "platform/users", "GroupBreadcumb1", "WikiHome") ;
wService.createPage(PortalConfig.GROUP_TYPE, "platform/users", "GroupBreadcumb2", "GroupBreadcumb1") ;
wService.createPage(PortalConfig.GROUP_TYPE, "platform/users", "GroupBreadcumb3", "GroupBreadcumb2") ;
breadCumbs = wService.getBreadcumb(PortalConfig.GROUP_TYPE, "platform/users", "GroupBreadcumb3");
assertEquals(4, breadCumbs.size());
assertEquals("WikiHome", breadCumbs.get(0).getId());
assertEquals("GroupBreadcumb1", breadCumbs.get(1).getId());
assertEquals("GroupBreadcumb2", breadCumbs.get(2).getId());
assertEquals("GroupBreadcumb3", breadCumbs.get(3).getId());
wService.createPage(PortalConfig.USER_TYPE, "john", "UserBreadcumb1", "WikiHome") ;
wService.createPage(PortalConfig.USER_TYPE, "john", "UserBreadcumb2", "UserBreadcumb1") ;
wService.createPage(PortalConfig.USER_TYPE, "john", "UserBreadcumb3", "UserBreadcumb2") ;
breadCumbs = wService.getBreadcumb(PortalConfig.USER_TYPE, "john", "UserBreadcumb3");
assertEquals(4, breadCumbs.size());
assertEquals("WikiHome", breadCumbs.get(0).getId());
assertEquals("UserBreadcumb1", breadCumbs.get(1).getId());
assertEquals("UserBreadcumb2", breadCumbs.get(2).getId());
assertEquals("UserBreadcumb3", breadCumbs.get(3).getId());
}
public void testMovePage() throws Exception{
//moving page in same space
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "oldParent", "WikiHome") ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "child", "oldParent") ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "newParent", "WikiHome") ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "oldParent")) ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "child")) ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "newParent")) ;
WikiPageParams currentLocationParams= new WikiPageParams();
WikiPageParams newLocationParams= new WikiPageParams();
currentLocationParams.setPageId("child");
currentLocationParams.setType(PortalConfig.PORTAL_TYPE);
currentLocationParams.setOwner("classic");
newLocationParams.setPageId("newParent");
newLocationParams.setType(PortalConfig.PORTAL_TYPE);
newLocationParams.setOwner("classic");
assertTrue(wService.movePage(currentLocationParams,newLocationParams)) ;
//moving page from different spaces
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
WikiContainer<UserWiki> userWikiContainer = wStore.getWikiContainer(WikiType.USER);
UserWiki wiki = userWikiContainer.addWiki("demo");
wiki.getWikiHome();
model.save() ;
wService.createPage(PortalConfig.USER_TYPE, "demo", "acmePage", "WikiHome") ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "classicPage", "WikiHome") ;
assertNotNull(wService.getPageById(PortalConfig.USER_TYPE, "demo", "acmePage")) ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "classicPage")) ;
currentLocationParams.setPageId("acmePage");
currentLocationParams.setType(PortalConfig.USER_TYPE);
currentLocationParams.setOwner("demo");
newLocationParams.setPageId("classicPage");
newLocationParams.setType(PortalConfig.PORTAL_TYPE);
newLocationParams.setOwner("classic");
assertTrue(wService.movePage(currentLocationParams,newLocationParams)) ;
}
public void testAddMixin() throws Exception{
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "mixinPage", "WikiHome") ;
PageImpl page = (PageImpl)wService.getPageById("portal", "classic", "mixinPage") ;
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
ChromatticSession session = wStore.getSession() ;
MovedMixin mix = session.create(MovedMixin.class) ;
session.setEmbedded(page, MovedMixin.class, mix) ;
assertSame(mix, page.getMovedMixin()) ;
assertSame(page, mix.getEntity()) ;
}
public void testDeletePage() throws Exception{
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "deletePage", "WikiHome") ;
assertTrue(wService.deletePage(PortalConfig.PORTAL_TYPE, "classic", "deletePage")) ;
//wait(10) ;
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "deletePage", "WikiHome") ;
assertTrue(wService.deletePage(PortalConfig.PORTAL_TYPE, "classic", "deletePage")) ;
assertNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "deletePage")) ;
assertFalse(wService.deletePage(PortalConfig.PORTAL_TYPE, "classic", "WikiHome")) ;
}
public void testDeleteTemplatePage() throws Exception{
Model model = mowService.getModel();
WikiPageParams params = new WikiPageParams(PortalConfig.PORTAL_TYPE, "classic", null);
wService.createTemplatePage("SampleExcel", params);
model.save();
assertNotNull(wService.getTemplatePage(params, "SampleExcel"));
wService.deleteTemplatePage(PortalConfig.PORTAL_TYPE, "classic", "SampleExcel");
model.save();
assertNull(wService.getTemplatePage(params, "SampleExcel"));
}
public void testRenamePage() throws Exception{
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "currentPage", "WikiHome") ;
assertTrue(wService.renamePage(PortalConfig.PORTAL_TYPE, "classic", "currentPage", "renamedPage", "renamedPage")) ;
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "renamedPage")) ;
}
public void testSearchRenamedPage() throws Exception{
PageImpl page = (PageImpl) wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "Page", "WikiHome");
page.getContent().setText("This is a rename page test");
assertTrue(wService.renamePage(PortalConfig.PORTAL_TYPE, "classic", "Page", "Page01", "Page01"));
assertEquals(1, wService.searchRenamedPage(PortalConfig.PORTAL_TYPE, "classic", "Page").size());
PageImpl guestPage = (PageImpl) wService.createPage(PortalConfig.GROUP_TYPE, "/platform/guests", "Page", "WikiHome");
guestPage.getContent().setText("This is a rename guest page test");
assertTrue(wService.renamePage(PortalConfig.GROUP_TYPE, "/platform/guests", "Page", "Page01", "Page01"));
assertEquals(1, wService.searchRenamedPage(PortalConfig.GROUP_TYPE, "/platform/guests", "Page").size());
PageImpl demoPage = (PageImpl) wService.createPage(PortalConfig.USER_TYPE, "demo", "Page", "WikiHome");
demoPage.getContent().setText("This is a rename demo page test");
assertTrue(wService.renamePage(PortalConfig.USER_TYPE, "demo", "Page", "Page01", "Page01"));
assertEquals(1, wService.searchRenamedPage(PortalConfig.USER_TYPE, "demo", "Page").size());
}
public void testSearchContent() throws Exception {
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
WikiContainer<UserWiki> userWikiContainer = wStore.getWikiContainer(WikiType.USER);
WikiContainer<PortalWiki> portalContainer = wStore.getWikiContainer(WikiType.PORTAL);
PortalWiki portalWiki = portalContainer.addWiki("ext");
UserWiki userWiki = userWikiContainer.addWiki("demo");
portalWiki.getWikiHome();
userWiki.getWikiHome();
PageImpl kspage = (PageImpl) wService.createPage(PortalConfig.PORTAL_TYPE,
"classic",
"knowledge suite",
"WikiHome");
kspage.getContent().setText("forum faq wiki");
PageImpl ksExtpage = (PageImpl) wService.createPage(PortalConfig.PORTAL_TYPE,
"ext",
"knowledge suite",
"WikiHome");
ksExtpage.getContent().setText("forum faq wiki");
PageImpl ksSocialpage = (PageImpl) wService.createPage(PortalConfig.USER_TYPE,
"demo",
"knowledge suite",
"WikiHome");
ksSocialpage.getContent().setText("forum faq wiki");
PageImpl cspage = (PageImpl) wService.createPage(PortalConfig.PORTAL_TYPE,
"classic",
"collaboration suite",
"WikiHome");
cspage.getContent().setText("calendar mail contact chat");
PageImpl guestPage = (PageImpl) wService.createPage(PortalConfig.GROUP_TYPE,
"/platform/guests",
"Guest page",
"WikiHome");
guestPage.getContent().setText("Playground");
guestPage.getChromatticSession().save();
// fulltext search
WikiSearchData data = new WikiSearchData("suite", null, null, "portal", "classic");
PageList<SearchResult> result = wService.searchContent(data);
assertEquals(2, result.getAll().size());
data = new WikiSearchData("suite", null, null, "portal", null);
result = wService.searchContent(data);
assertEquals(3, result.getAll().size());
data = new WikiSearchData("suite", null, null, null, null);
result = wService.searchContent(data);
assertEquals(4, result.getAll().size());
// title search
data = new WikiSearchData(null, "knowledge", null, "portal", "classic");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData(null, "collaboration", null, "portal", "classic");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData(null, "knowledge", null, "portal", null);
result = wService.searchContent(data);
assertEquals(2, result.getAll().size());
data = new WikiSearchData(null, "knowledge", null, null, null);
result = wService.searchContent(data);
assertEquals(3, result.getAll().size());
// content search
data = new WikiSearchData(null, null, "forum", "portal", "classic");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData(null, null, "calendar", "portal", "classic");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData(null, null, "forum", "portal", null);
result = wService.searchContent(data);
assertEquals(2, result.getAll().size());
data = new WikiSearchData(null, null, "forum", null, null);
result = wService.searchContent(data);
assertEquals(3, result.getAll().size());
data = new WikiSearchData("Playground", null, null, PortalConfig.GROUP_TYPE, "/platform/guests");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData("forum", null, null, PortalConfig.USER_TYPE, null);
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData("forum", null, null, PortalConfig.USER_TYPE, "demo");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
// content & title search
//TODO: search on many node types with AND operator
/*data = new ContentSearchData(null, "suite", "forum", "portal", "classic");
result = wService.searchContent(data);
assertEquals(1, result.getAll().size());
data = new ContentSearchData(null, "suite", "forum", "portal", null);
result = wService.searchContent(data);
assertEquals(2, result.getAll().size());
data = new ContentSearchData(null, "suite", "forum", null, null);
result = wService.searchContent(data);
assertEquals(3, result.getAll().size());*/
}
public void testSearch() throws Exception {
Model model = mowService.getModel();
WikiStoreImpl wStore = (WikiStoreImpl) model.getWikiStore();
WikiContainer<PortalWiki> portalContainer = wStore.getWikiContainer(WikiType.PORTAL);
portalContainer.addWiki("ext");
PageImpl kspage = (PageImpl)wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "knowledge", "WikiHome") ;
kspage.getContent().setText("forum faq wiki exoplatform") ;
PageImpl ksExtPage = (PageImpl)wService.createPage(PortalConfig.PORTAL_TYPE, "ext", "knowledge ext", "WikiHome") ;
ksExtPage.getContent().setText("forum faq wiki exoplatform") ;
AttachmentImpl attachment1 = kspage.createAttachment("attachment1.txt", Resource.createPlainText("foo")) ;
attachment1.setCreator("you") ;
assertEquals(attachment1.getName(), "attachment1.txt") ;
assertNotNull(attachment1.getContentResource()) ;
attachment1.setContentResource(Resource.createPlainText("exoplatform content mamagement")) ;
PageImpl guestPage = (PageImpl) wService.createPage(PortalConfig.GROUP_TYPE, "/platform/guests", "guest platform", "WikiHome");
guestPage.getContent().setText("exoplatform");
PageImpl userPage = (PageImpl) wService.createPage(PortalConfig.USER_TYPE, "demo", "demo", "WikiHome");
userPage.getContent().setText("exoplatform");
kspage.getChromatticSession().save();
WikiSearchData data = new WikiSearchData("exoplatform", null, null, null, null);
PageList<SearchResult> result = wService.search(data);
assertEquals(5, result.getAll().size());
data = new WikiSearchData("exoplatform", null, null,"portal",null) ;
result = wService.search(data) ;
assertEquals(3, result.getAll().size()) ;
data = new WikiSearchData("exoplatform", null, null, "portal", "classic");
result = wService.search(data);
assertEquals(2, result.getAll().size());
data = new WikiSearchData("exoplatform", null, null, PortalConfig.GROUP_TYPE, null);
result = wService.search(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData("exoplatform", null, null, PortalConfig.GROUP_TYPE, "/platform/guests");
result = wService.search(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData("exoplatform", null, null, PortalConfig.USER_TYPE, null);
result = wService.search(data);
assertEquals(1, result.getAll().size());
data = new WikiSearchData("exoplatform", null, null, PortalConfig.USER_TYPE, "demo");
result = wService.search(data);
assertEquals(1, result.getAll().size());
}
public void testSearchTitle() throws Exception {
PageImpl kspage = (PageImpl) wService.createPage(PortalConfig.PORTAL_TYPE,
"classic",
"dumpPage",
"WikiHome");
assertNotNull(wService.getPageById(PortalConfig.PORTAL_TYPE, "classic", "dumpPage"));
wService.createPage(PortalConfig.GROUP_TYPE, "/platform/guests", "Dump guest Page", "WikiHome");
wService.createPage(PortalConfig.USER_TYPE, "demo", "Dump demo Page", "WikiHome");
AttachmentImpl attachment1 = kspage.createAttachment("dumpFile.txt",
Resource.createPlainText("foo"));
assertEquals(attachment1.getName(), "dumpFile.txt");
assertNotNull(attachment1.getContentResource());
kspage.getChromatticSession().save();
WikiSearchData data = new WikiSearchData(null, "dump", null, null, null);
List<TitleSearchResult> result = wService.searchDataByTitle(data);
assertEquals(4, result.size());
data= new WikiSearchData(null, "dump", null, "portal", "classic");
result = wService.searchDataByTitle(data);
assertEquals(2, result.size());
data = new WikiSearchData(null, "dump", null, PortalConfig.GROUP_TYPE, null);
result = wService.searchDataByTitle(data);
assertEquals(1, result.size());
data = new WikiSearchData(null, "dump", null, PortalConfig.GROUP_TYPE, "/platform/guests");
result = wService.searchDataByTitle(data);
assertEquals(1, result.size());
data = new WikiSearchData(null, "dump", null, PortalConfig.USER_TYPE, null);
result = wService.searchDataByTitle(data);
assertEquals(1, result.size());
data = new WikiSearchData(null, "dump", null, PortalConfig.USER_TYPE, "demo");
result = wService.searchDataByTitle(data);
assertEquals(1, result.size());
}
public void testSearchTemplate() throws Exception {
WikiPageParams params= new WikiPageParams(PortalConfig.PORTAL_TYPE, "classic", null);
wService.createTemplatePage("Sample Search Template", params);
assertNotNull(wService.getTemplatePage(params, "Sample_Search_Template"));
params= new WikiPageParams(PortalConfig.GROUP_TYPE, "/platform/guests", null);
wService.createTemplatePage("Sample Group Search Template", params);
assertNotNull(wService.getTemplatePage(params, "Sample_Group_Search_Template"));
params= new WikiPageParams(PortalConfig.USER_TYPE, "demo", null);
wService.createTemplatePage("Sample User Search Template", params);
assertNotNull(wService.getTemplatePage(params, "Sample_User_Search_Template"));
TemplateSearchData data = new TemplateSearchData("Template",PortalConfig.PORTAL_TYPE, "classic");
List<TemplateSearchResult> result = wService.searchTemplate(data);
assertEquals(1, result.size());
data = new TemplateSearchData("Template", PortalConfig.GROUP_TYPE, "/platform/guests");
result = wService.searchTemplate(data);
assertEquals(1, result.size());
data = new TemplateSearchData("Template", PortalConfig.USER_TYPE, "demo");
result = wService.searchTemplate(data);
assertEquals(1, result.size());
}
public void testGetPageTitleOfAttachment() throws Exception {
PageImpl kspage = (PageImpl)wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "GetPageTitleOfAttachment", "WikiHome") ;
kspage.getContent().setText("forum faq wiki exoplatform") ;
AttachmentImpl attachment1 = kspage.createAttachment("attachment1.txt", Resource.createPlainText("foo")) ;
attachment1.setCreator("you") ;
assertEquals(attachment1.getName(), "attachment1.txt") ;
assertNotNull(attachment1.getContentResource()) ;
attachment1.setContentResource(Resource.createPlainText("exoplatform content mamagement")) ;
assertEquals("GetPageTitleOfAttachment", wService.getPageTitleOfAttachment(attachment1.getJCRContentPath())) ;
}
public void testGetAttachmentAsStream() throws Exception {
PageImpl kspage = (PageImpl)wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "GetAttachmentAsStream", "WikiHome") ;
kspage.getContent().setText("forum faq wiki exoplatform") ;
AttachmentImpl attachment1 = kspage.createAttachment("attachment.txt", Resource.createPlainText("this is a text attachment")) ;
attachment1.setCreator("john") ;
assertEquals(attachment1.getName(), "attachment.txt") ;
assertNotNull(attachment1.getContentResource()) ;
assertNotNull(wService.getAttachmentAsStream(attachment1.getPath()+"/jcr:content")) ;
}
public void testGetSyntaxPage() throws Exception {
PageImpl syntaxPage = wService.getHelpSyntaxPage(Syntax.XWIKI_2_0.toIdString());
assertNotNull(syntaxPage);
}
public void testBrokenLink() throws Exception {
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalParentPage", "WikiHome");
wService.createPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage", "OriginalParentPage");
PageImpl relatedPage = (PageImpl) wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage");
assertEquals("OriginalPage", relatedPage.getName());
wService.renamePage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage", "RenamedOriginalPage", "RenamedOriginalPage");
relatedPage = (PageImpl) wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage");
assertEquals("RenamedOriginalPage", relatedPage.getName());
wService.renamePage(PortalConfig.PORTAL_TYPE, "classic", "RenamedOriginalPage", "RenamedOriginalPage2", "RenamedOriginalPage2");
relatedPage = (PageImpl) wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage");
assertEquals("RenamedOriginalPage2", relatedPage.getName());
WikiPageParams currentPageParams= new WikiPageParams();
currentPageParams.setPageId("RenamedOriginalPage2");
currentPageParams.setOwner("classic");
currentPageParams.setType(PortalConfig.PORTAL_TYPE);
WikiPageParams newPageParams= new WikiPageParams();
newPageParams.setPageId("WikiHome");
newPageParams.setOwner("classic");
newPageParams.setType(PortalConfig.PORTAL_TYPE);
wService.movePage(currentPageParams,newPageParams);
relatedPage = (PageImpl) wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage");
assertEquals("RenamedOriginalPage2", relatedPage.getName());
wService.renamePage(PortalConfig.PORTAL_TYPE, "classic", "RenamedOriginalPage2", "RenamedOriginalPage3", "RenamedOriginalPage3");
relatedPage = (PageImpl) wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage");
assertEquals("RenamedOriginalPage3", relatedPage.getName());
wService.createPage(PortalConfig.GROUP_TYPE, "platform/users", "OriginalParentPage", "WikiHome");
// Move RenamedOriginalPage3 from portal type to group type
currentPageParams.setPageId("RenamedOriginalPage3");
currentPageParams.setOwner("classic");
currentPageParams.setType(PortalConfig.PORTAL_TYPE);
newPageParams.setPageId("OriginalParentPage");
newPageParams.setOwner("platform/users");
newPageParams.setType(PortalConfig.GROUP_TYPE);
//
wService.movePage(currentPageParams,newPageParams);
relatedPage = (PageImpl) wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage");
assertEquals("RenamedOriginalPage3", relatedPage.getName());
wService.deletePage(PortalConfig.GROUP_TYPE, "platform/users", "RenamedOriginalPage3");
assertNull(wService.getRelatedPage(PortalConfig.PORTAL_TYPE, "classic", "OriginalPage"));
}
}