/* * 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 java.util.Collection; import java.util.Iterator; import org.chromattic.ext.ntdef.Resource; import org.exoplatform.wiki.mow.api.Model; import org.exoplatform.wiki.mow.api.WikiType; import org.exoplatform.wiki.mow.core.api.wiki.AttachmentImpl; 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 TestPageAttachment extends AbstractMOWTestcase { public void testAddPageAttachment() 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(); AttachmentImpl attachment0 = wikiHomePage.createAttachment("attachment0.jpg", Resource.createPlainText("logo")) ; attachment0.setCreator("root") ; assertEquals(attachment0.getName(), "attachment0.jpg") ; assertNotNull(attachment0.getContentResource()) ; attachment0.setContentResource(Resource.createPlainText("logo - Updated")) ; PageImpl wikipage = wiki.createWikiPage(); wikipage.setName("AddPageAttachment-001") ; wikiHomePage.addWikiPage(wikipage); wikipage.makeVersionable(); AttachmentImpl attachment1 = wikipage.createAttachment("attachment1.jpg", Resource.createPlainText("foo")) ; attachment1.setCreator("you") ; assertEquals(attachment1.getName(), "attachment1.jpg") ; assertNotNull(attachment1.getContentResource()) ; attachment1.setContentResource(Resource.createPlainText("foo - Updated")) ; AttachmentImpl attachment2 = wikipage.createAttachment("attachment2.jpg", Resource.createPlainText("faa")) ; attachment2.setCreator("me") ; assertEquals(attachment2.getName(), "attachment2.jpg") ; assertNotNull(attachment2.getContentResource()) ; attachment2.setContentResource(Resource.createPlainText("faa - Updated")) ; wikipage = wiki.createWikiPage(); wikipage.setName("AddPageAttachment-002"); wikiHomePage.addWikiPage(wikipage); wikipage.makeVersionable(); } public void testGetPageAttachment() throws Exception{ WikiService wService = (WikiService)container.getComponentInstanceOfType(WikiService.class) ; PageImpl wikipage = (PageImpl)wService.getPageById("portal", "classic", "WikiHome") ; Collection<AttachmentImpl> attachments = wikipage.getAttachmentsExcludeContent() ; assertEquals(attachments.size(), 1) ; Iterator<AttachmentImpl> iter = attachments.iterator() ; AttachmentImpl att0 = iter.next() ; assertNotNull(att0.getContentResource()) ; assertEquals(new String(att0.getContentResource().getData()), "logo - Updated") ; assertEquals(att0.getWeightInBytes(), "logo - Updated".getBytes().length) ; assertEquals(att0.getCreator(), "root") ; wikipage = (PageImpl)wService.getPageById("portal", "classic", "AddPageAttachment-001") ; attachments = wikipage.getAttachmentsExcludeContent() ; assertEquals(attachments.size(), 2) ; iter = attachments.iterator() ; AttachmentImpl att1 = iter.next() ; assertNotNull(att1.getContentResource()) ; assertEquals(new String(att1.getContentResource().getData()), "foo - Updated") ; assertEquals(att1.getWeightInBytes(), "foo - Updated".getBytes().length) ; assertEquals(att1.getCreator(), "you") ; AttachmentImpl att2 = iter.next() ; assertNotNull(att2.getContentResource()) ; assertEquals(new String(att2.getContentResource().getData()), "faa - Updated") ; assertEquals(att2.getWeightInBytes(), "faa - Updated".getBytes().length) ; assertEquals(att2.getCreator(), "me") ; //Add new attachment for page that still don't have any attachment wikipage = (PageImpl)wService.getPageById("portal", "classic", "AddPageAttachment-002") ; AttachmentImpl att = wikipage.createAttachment("attachment3.jpg", Resource.createPlainText("attachment3")) ; att.setCreator("me") ; assertEquals(att.getName(), "attachment3.jpg") ; assertNotNull(att.getContentResource()) ; att.setContentResource(Resource.createPlainText("attachment3 - Updated")) ; } public void testGetNewPageAttachment() throws Exception{ WikiService wService = (WikiService)container.getComponentInstanceOfType(WikiService.class) ; PageImpl wikipage = (PageImpl)wService.getPageById("portal", "classic", "AddPageAttachment-002") ; Collection<AttachmentImpl> attachments = wikipage.getAttachmentsExcludeContent() ; assertEquals(attachments.size(), 1) ; Iterator<AttachmentImpl> iter = attachments.iterator() ; AttachmentImpl att = iter.next(); assertNotNull(att.getContentResource()) ; assertEquals(new String(att.getContentResource().getData()), "attachment3 - Updated") ; assertEquals(att.getWeightInBytes(), "attachment3 - Updated".getBytes().length) ; assertEquals(att.getCreator(), "me") ; } }