/* * 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.resolver; import org.exoplatform.portal.config.model.PortalConfig; import org.exoplatform.services.organization.OrganizationService; import org.exoplatform.wiki.mow.core.api.AbstractMOWTestcase; import org.exoplatform.wiki.service.WikiPageParams; public class TestURLResolver extends AbstractMOWTestcase { private URLResolver resolver ; public void setUp() throws Exception{ super.setUp() ; OrganizationService orgservice = (OrganizationService)container.getComponentInstanceOfType(OrganizationService.class) ; resolver = new URLResolver(orgservice); } public void testResolvePortalURL() throws Exception{ //http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/[$OWNER_TYPE/$OWNER]/$WIKI_PAGE_URI String url = "http://hostname/$CONTAINER/$ACCESS/classic/wiki" ; WikiPageParams params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.PORTAL_TYPE, params.getType()) ; assertEquals("classic", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/classic/wiki/WikiHome" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.PORTAL_TYPE, params.getType()) ; assertEquals("classic", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/classic/wiki/pageId" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.PORTAL_TYPE, params.getType()) ; assertEquals("classic", params.getOwner()) ; assertEquals("pageId", params.getPageId()) ; //wrong URL url = "http://hostname/$CONTAINER/$ACCESS/classic" ; params = resolver.extractPageParams(url, null) ; assertEquals(null, params.getType()) ; assertEquals(null, params.getOwner()) ; assertEquals(null, params.getPageId()) ; } public void testResolveGroupURL() throws Exception{ //http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/[$OWNER_TYPE/$OWNER]/$WIKI_PAGE_URI String url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/group/platform/" ; WikiPageParams params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.GROUP_TYPE, params.getType()) ; assertEquals("/platform", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/group/platform" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.GROUP_TYPE, params.getType()) ; assertEquals("/platform", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/group/platform/users/pageId/" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.GROUP_TYPE, params.getType()) ; assertEquals("/platform/users", params.getOwner()) ; assertEquals("pageId", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/group/platform/users/pageId" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.GROUP_TYPE, params.getType()) ; assertEquals("/platform/users", params.getOwner()) ; assertEquals("pageId", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/group/platform/users/WikiHome" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.GROUP_TYPE, params.getType()) ; assertEquals("/platform/users", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/group/platform/users" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.GROUP_TYPE, params.getType()) ; assertEquals("/platform/users", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; } public void testResolveUserURL() throws Exception{ //http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/[$OWNER_TYPE/$OWNER]/$WIKI_PAGE_URI String url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/user/john" ; WikiPageParams params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.USER_TYPE, params.getType()) ; assertEquals("john", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/user/john/" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.USER_TYPE, params.getType()) ; assertEquals("john", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/user/john/WikiHome" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.USER_TYPE, params.getType()) ; assertEquals("john", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; url = "http://hostname/$CONTAINER/$ACCESS/$SITE/wiki/user/john/WikiHome/" ; params = resolver.extractPageParams(url, null) ; assertEquals(PortalConfig.USER_TYPE, params.getType()) ; assertEquals("john", params.getOwner()) ; assertEquals("WikiHome", params.getPageId()) ; } }