/*
* Copyright (C) 2003-2008 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.services.ecm.dms.view;
import java.util.ArrayList;
import java.util.List;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Session;
import org.exoplatform.services.cms.BasePath;
import org.exoplatform.services.cms.views.ApplicationTemplateManagerService;
import org.exoplatform.services.cms.views.PortletTemplatePlugin.PortletTemplateConfig;
import org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator;
import org.exoplatform.services.wcm.BaseWCMTestCase;
/**
* Created by The eXo Platform SARL
* June 09, 2009
*/
public class TestApplicationTemplateManagerService extends BaseWCMTestCase {
private ApplicationTemplateManagerService appTemplateManagerService;
private NodeHierarchyCreator nodeHierarchyCreator;
private String basedApplicationTemplatesPath;
private Session sessionDMS;
public void setUp() throws Exception {
super.setUp();
appTemplateManagerService = (ApplicationTemplateManagerService) container.getComponentInstanceOfType(ApplicationTemplateManagerService.class);
nodeHierarchyCreator = (NodeHierarchyCreator) container.getComponentInstanceOfType(NodeHierarchyCreator.class);
basedApplicationTemplatesPath = nodeHierarchyCreator.getJcrPath(BasePath.CMS_VIEWTEMPLATES_PATH);
System.out.println("basedApplicationTemplatesPath :" + basedApplicationTemplatesPath);
applySystemSession();
sessionDMS = sessionProviderService_.getSystemSessionProvider(null).getSession(DMSSYSTEM_WS, repository);
}
/**
* Test ApplicationTemplateManagerServiceImpl.getAllManagedPortletName()
* Input: repository String
* The name of repository
* Expect: Return The templates by category
* @throws Exception
*/
public void testGetAllManagedPortletName() throws Exception {
List<String> listTemplateManager = appTemplateManagerService.getAllManagedPortletName(REPO_NAME);
assertEquals(0, listTemplateManager.size());
}
// /**
// * Test ApplicationTemplateManagerServiceImpl.getTemplatesByCategory()
// * Input: repository String
// * The name of repository
// * portletName String
// * The name of portlet
// * category String
// * The name of category
// * sessionProvider SessionProvider
// * Expect: Return The templates by category
// * @throws Exception
// */
// public void testGetTemplatesByCategory() throws Exception {
// assertEquals(1, appTemplateManagerService.getTemplatesByCategory("content-browser",
// "detail-document", sessionProviderService_.getSystemSessionProvider(null)).size());
// }
//
// /**
// * Test ApplicationTemplateManagerServiceImpl.getTemplateByName()
// * Input: repository String
// * The name of repository
// * portletName String
// * The name of portlet
// * category String
// * The name of category
// * templateName String
// * The name of template
// * sessionProvider SessionProvider
// * Expect: Return the template by name
// * @throws Exception
// */
// public void testGetTemplateByName() throws Exception {
// assertNotNull(appTemplateManagerService.getTemplateByName("content-browser",
// "detail-document", "DocumentView", sessionProviderService_.getSystemSessionProvider(null)));
// }
//
// /**
// * Test ApplicationTemplateManagerServiceImpl.getTemplateByPath()
// * Input: repository String
// * The name of repository
// * templatePath String
// * The path of template
// * sessionProvider SessionProvider
// * Expect: Return template by path
// * @throws Exception
// */
// public void testGetTemplateByPath() throws Exception {
// assertNotNull(
// appTemplateManagerService.getTemplateByPath("/exo:ecm/views/templates/content-browser/detail-document/DocumentView",
// sessionProviderService_.getSystemSessionProvider(null)));
// }
//
// /**
// * Test ApplicationTemplateManagerServiceImpl.addTemplate()
// * Input: portletTemplateHome the portlet template home
// * config the config
// * Expect: Add the teamplate
// * @throws Exception
// */
// public void testAddTemplate() throws Exception {
// Node portletTemplateHome = (Node) sessionDMS.getItem(basedApplicationTemplatesPath);
//
// PortletTemplateConfig config = new PortletTemplateConfig();
// ArrayList<String> accessPermissions = new ArrayList<String>();
// accessPermissions.add("*:/platform/administrators");
// config.setCategory("categoryA");
// config.setAccessPermissions(accessPermissions);
// config.setEditPermissions(accessPermissions);
// config.setTemplateName("HelloName");
// config.setTemplateData("Hello teamplate data");
// appTemplateManagerService.addTemplate(portletTemplateHome, config);
//
// assertNotNull(appTemplateManagerService.getTemplateByPath("/exo:ecm/views/templates/categoryA/HelloName",
// sessionProviderService_.getSystemSessionProvider(null)));
//
// sessionDMS.getItem("/exo:ecm/views/templates/categoryA").remove();
// sessionDMS.save();
// }
//
// /**
// * Test ApplicationTemplateManagerServiceImpl.removeTemplate()
// * Input: repository String
// * The name of repository
// * portletName String
// * The name of portlet
// * catgory String
// * The category
// * templateName String
// * The name of template
// * sessionProvider SessionProvider
// * Expect: Remove the teamplate
// * @throws Exception
// */
// public void testRemoveTemplate() throws Exception {
// appTemplateManagerService.removeTemplate("content-browser", "detail-document",
// "DocumentView", sessionProvider);
//
// assertEquals(0, appTemplateManagerService.getTemplatesByCategory("content-browser",
// "detail-document", sessionProvider).size());
// }
public void tearDown() throws Exception {
Node nodeAppTemplate = (Node) sessionDMS.getItem(basedApplicationTemplatesPath);
if (nodeAppTemplate.hasNode("categoryA")) {
nodeAppTemplate.getNode("categoryA").remove();
}
sessionDMS.save();
System.out.println("/exo:ecm/views/templates/ecm-explorer");
Node n = (Node)sessionDMS.getItem("/exo:ecm/views/templates/ecm-explorer");
for(NodeIterator iter = n.getNodes(); iter.hasNext();)
System.out.println(iter.nextNode().getPath());
super.tearDown();
}
}