/* * 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.container; import org.exoplatform.container.jmx.AbstractTestContainer; import org.exoplatform.container.xml.InitParams; import org.exoplatform.container.xml.ValueParam; import java.net.URL; /** * Created by The eXo Platform SAS * Author : Nicolas Filotto * nicolas.filotto@exoplatform.com * 18 fホvr. 2010 */ public class TestPortalContainer extends AbstractTestContainer { public void testGetConfigurationXML() { URL rootURL = getClass().getResource("test-exo-container.xml"); URL portalURL = getClass().getResource("/conf/test-configuration.xml"); assertNotNull(rootURL); assertNotNull(portalURL); // new ContainerBuilder().withRoot(rootURL).withPortal(portalURL).build(); String configXML = RootContainer.getInstance().getConfigurationXML(); assertNotNull(configXML); int size = configXML.length(); int hash = configXML.hashCode(); configXML = RootContainer.getInstance().getConfigurationXML(); assertNotNull(configXML); assertTrue(size > 0); assertEquals(size, configXML.length()); assertEquals(hash, configXML.hashCode()); configXML = PortalContainer.getInstance().getConfigurationXML(); assertNotNull(configXML); assertTrue(size > 0); size = configXML.length(); hash = configXML.hashCode(); configXML = PortalContainer.getInstance().getConfigurationXML(); assertNotNull(configXML); assertEquals(size, configXML.length()); assertEquals(hash, configXML.hashCode()); } public void testInitValues() { createRootContainer("portal-container-config-with-settings.xml"); assertEquals("myPortal", PortalContainer.DEFAULT_PORTAL_CONTAINER_NAME); assertEquals("myRest", PortalContainer.DEFAULT_REST_CONTEXT_NAME); assertEquals("my-exo-domain", PortalContainer.DEFAULT_REALM_NAME); // With portal container with no portal container PortalContainer portal = PortalContainer.getInstance(); assertEquals("myPortal", portal.getName()); assertEquals("myRest", portal.getRestContextName()); assertEquals("my-exo-domain", portal.getRealmName()); assertTrue(PortalContainer.isPortalContainerName("myPortal")); assertTrue(PortalContainer.isPortalContainerName("portal")); assertFalse(PortalContainer.isPortalContainerName("foo")); URL rootURL = getClass().getResource("portal-container-config-with-settings.xml"); URL portalURL = getClass().getResource("portal-container-test-settings-configuration.xml"); assertNotNull(rootURL); assertNotNull(portalURL); // new ContainerBuilder().withRoot(rootURL).withPortal(portalURL).build(); // With portal container with no portal container portal = PortalContainer.getInstance(); assertEquals("portal", portal.getName()); assertEquals("myRest-pcdef", portal.getRestContextName()); assertEquals("my-exo-domain-pcdef", portal.getRealmName()); assertNotNull(portal.getContext()); assertEquals("portal", portal.getContext().getPortalContainerName()); assertEquals("myRest-pcdef", portal.getContext().getRestContextName()); assertEquals("my-exo-domain-pcdef", portal.getContext().getRealmName()); assertEquals("portal", PortalContainer.getCurrentPortalContainerName()); assertEquals("myRest-pcdef", PortalContainer.getCurrentRestContextName()); assertEquals("my-exo-domain-pcdef", PortalContainer.getCurrentRealmName()); assertEquals("myRest-pcdef", PortalContainer.getRestContextName("portal")); assertEquals("my-exo-domain-pcdef", PortalContainer.getRealmName("portal")); assertEquals("myRest", PortalContainer.getRestContextName("foo")); assertEquals("my-exo-domain", PortalContainer.getRealmName("foo")); assertTrue(PortalContainer.isPortalContainerName("myPortal")); assertTrue(PortalContainer.isPortalContainerName("portal")); assertFalse(PortalContainer.isPortalContainerName("foo")); // With no portal container PortalContainer.setInstance(null); assertEquals("myPortal", PortalContainer.getCurrentPortalContainerName()); assertEquals("myRest", PortalContainer.getCurrentRestContextName()); assertEquals("my-exo-domain", PortalContainer.getCurrentRealmName()); assertTrue(PortalContainer.isPortalContainerName("myPortal")); assertTrue(PortalContainer.isPortalContainerName("portal")); assertFalse(PortalContainer.isPortalContainerName("foo")); } public void testSettings() { URL rootURL = getClass().getResource("portal-container-config-with-settings.xml"); URL portalURL = getClass().getResource("portal-container-test-settings-configuration.xml"); assertNotNull(rootURL); assertNotNull(portalURL); // new ContainerBuilder().withRoot(rootURL).withPortal(portalURL).build(); // With portal container PortalContainer portal = PortalContainer.getInstance(); MyComponent component = (MyComponent)portal.getComponentInstanceOfType(MyComponent.class); assertNotNull(component); assertEquals("portal", component.getValue("portal")); assertEquals("myRest-pcdef", component.getValue("rest")); assertEquals("my-exo-domain-pcdef", component.getValue("realm")); assertEquals("value", component.getValue("foo")); assertEquals("before value after", component.getValue("before foo after")); assertEquals("value", portal.getSetting("foo")); assertNull(portal.getSetting("foo2")); assertEquals("value", portal.getSetting("string")); assertEquals(new Integer(10), portal.getSetting("int")); assertEquals(new Long(10), portal.getSetting("long")); assertEquals(new Double(10), portal.getSetting("double")); assertEquals(new Boolean(true), portal.getSetting("boolean")); assertNotNull(portal.getContext()); assertEquals("value", portal.getContext().getSetting("foo")); assertNull(portal.getContext().getSetting("foo2")); assertEquals("value", portal.getContext().getSetting("string")); assertEquals(new Integer(10), portal.getContext().getSetting("int")); assertEquals(new Long(10), portal.getContext().getSetting("long")); assertEquals(new Double(10), portal.getContext().getSetting("double")); assertEquals(new Boolean(true), portal.getContext().getSetting("boolean")); assertEquals("value", PortalContainer.getCurrentSetting("foo")); assertNull(PortalContainer.getCurrentSetting("foo2")); assertEquals("value", PortalContainer.getCurrentSetting("string")); assertEquals(new Integer(10), PortalContainer.getCurrentSetting("int")); assertEquals(new Long(10), PortalContainer.getCurrentSetting("long")); assertEquals(new Double(10), PortalContainer.getCurrentSetting("double")); assertEquals(new Boolean(true), PortalContainer.getCurrentSetting("boolean")); assertEquals("value", PortalContainer.getSetting("portal", "foo")); assertNull(PortalContainer.getSetting("portal", "foo2")); assertEquals("value", PortalContainer.getSetting("portal", "string")); assertEquals(new Integer(10), PortalContainer.getSetting("portal", "int")); assertEquals(new Long(10), PortalContainer.getSetting("portal", "long")); assertEquals(new Double(10), PortalContainer.getSetting("portal", "double")); assertEquals(new Boolean(true), PortalContainer.getSetting("portal", "boolean")); assertNull(PortalContainer.getSetting("foo", "foo")); assertNull(PortalContainer.getSetting("foo", "foo2")); assertNull(PortalContainer.getSetting("foo", "string")); assertNull(PortalContainer.getSetting("foo", "int")); assertNull(PortalContainer.getSetting("foo", "long")); assertNull(PortalContainer.getSetting("foo", "double")); assertNull(PortalContainer.getSetting("foo", "boolean")); // With no portal container PortalContainer.setInstance(null); assertNull(PortalContainer.getCurrentSetting("foo")); assertNull(PortalContainer.getCurrentSetting("foo2")); assertNull(PortalContainer.getCurrentSetting("string")); assertNull(PortalContainer.getCurrentSetting("int")); assertNull(PortalContainer.getCurrentSetting("long")); assertNull(PortalContainer.getCurrentSetting("double")); assertNull(PortalContainer.getCurrentSetting("boolean")); } public static class MyComponent { private final InitParams params; public MyComponent(InitParams params) { this.params = params; } public String getValue(String name) { final ValueParam vp = params.getValueParam(name); return vp == null ? null : vp.getValue(); } } }