/* * Copyright (C) 2003-2012 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.exoplatform.wcm.connector.fckeditor; import javax.ws.rs.core.Response; import javax.xml.transform.dom.DOMSource; import org.apache.commons.lang.StringUtils; import org.exoplatform.BaseConnectorTestCase; import org.exoplatform.services.rest.impl.ContainerResponse; import org.exoplatform.services.rest.wadl.research.HTTPMethods; import org.exoplatform.services.security.ConversationState; import org.exoplatform.services.security.Identity; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * Created by The eXo Platform SAS * Author : Lai Trung Hieu * hieult@exoplatform.com * Aug 6, 2012 */ public class TestPortalLinkConnector extends BaseConnectorTestCase { public void setUp() throws Exception { super.setUp(); // Bind PortalLinkConnector REST service PortalLinkConnector restService = (PortalLinkConnector) this.container.getComponentInstanceOfType(PortalLinkConnector.class); this.binder.addResource(restService, null); } public void tearDown() throws Exception { super.tearDown(); } /** * Test method PortalLinkConnector.getPageURI() * Input 1: /portalLinks/getFoldersAndFiles/ * Expect 1: Connector return data in XML format as: * <Connector command="" resourceType="PortalPageURI"> * <CurrentFolder path="" url=""> * </CurrentFolder> * <Folders> * <Folder name="classic" url="" path="/"> * </Folder> * </Folders> * </Connector> * * Input 2: /portalLinks/getFoldersAndFiles?currentFolder=/classic/ * Expect 2: Connector return data in XML format OK * * Input 3: /portalLinks/getFoldersAndFiles?currentFolder=/classic/home * Expect 3: Connector return data in XML format as: * <Connector command="" resourceType="PortalPageURI"> * <CurrentFolder path="/classic/home" url=""> * </CurrentFolder> * <Folders> * <Folder name="classic" url="" path="/"> * </Folder> * </Folders> * <Files> * </Files> * </Connector> * @throws Exception */ public void testGetPageURI() throws Exception{ ConversationState.setCurrent(new ConversationState(new Identity("root"))); String restPath = "/portalLinks/getFoldersAndFiles/"; ContainerResponse response = service(HTTPMethods.GET.toString(), restPath, StringUtils.EMPTY, null, null); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); DOMSource object = (DOMSource) response.getEntity(); Document node = (Document) object.getNode(); Element connector = (Element) node.getChildNodes().item(0); NodeList ConnectorChildren = connector.getChildNodes(); assertEquals("Connector", connector.getNodeName()); assertEquals("", connector.getAttribute("command")); assertEquals("PortalPageURI", connector.getAttribute("resourceType")); assertEquals(2, ConnectorChildren.getLength()); Element currentFolder = (Element) ConnectorChildren.item(0); assertEquals("CurrentFolder", currentFolder.getNodeName()); assertEquals("/", currentFolder.getAttribute("path")); assertEquals("", currentFolder.getAttribute("url")); Node folders = ConnectorChildren.item(1); assertEquals("Folders", folders.getNodeName()); Element firstFolder = (Element) folders.getChildNodes().item(0); assertNotNull(firstFolder); assertEquals("classic", firstFolder.getAttribute("name")); assertEquals("", firstFolder.getAttribute("url")); assertEquals("", firstFolder.getAttribute("folderType")); restPath = "/portalLinks/getFoldersAndFiles?currentFolder=/classic/"; response = service(HTTPMethods.GET.toString(), restPath, StringUtils.EMPTY, null, null); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); restPath = "/portalLinks/getFoldersAndFiles?currentFolder=/classic/home"; response = service(HTTPMethods.GET.toString(), restPath, StringUtils.EMPTY, null, null); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); object = (DOMSource) response.getEntity(); node = (Document) object.getNode(); connector = (Element) node.getChildNodes().item(0); ConnectorChildren = connector.getChildNodes(); assertEquals("Connector", connector.getNodeName()); assertEquals("", connector.getAttribute("command")); assertEquals("PortalPageURI", connector.getAttribute("resourceType")); assertEquals(3, ConnectorChildren.getLength()); currentFolder = (Element) ConnectorChildren.item(0); assertEquals("CurrentFolder", currentFolder.getNodeName()); assertEquals("/classic/home", currentFolder.getAttribute("path")); assertEquals("", currentFolder.getAttribute("url")); folders = ConnectorChildren.item(1); assertEquals("Folders", folders.getNodeName()); Node files = ConnectorChildren.item(2); assertEquals("Files", files.getNodeName()); } }