Author: julien(a)jboss.com
Date: 2007-05-16 11:17:25 -0400 (Wed, 16 May 2007)
New Revision: 7263
Added:
trunk/core/src/main/org/jboss/portal/test/core/model/portal/AbstractPortalObjectContainerTestCase.java
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalNodeTestCase.java
Modified:
trunk/core/build.xml
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/WindowImpl.java
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectContainer.java
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectPermission.java
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectPermissionTestCase.java
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/persistent-jboss-beans.xml
Log:
- portal object permission "view" should not imply "recursive view" on
the same node (it was not on descendants)
Modified: trunk/core/build.xml
===================================================================
--- trunk/core/build.xml 2007-05-16 13:11:49 UTC (rev 7262)
+++ trunk/core/build.xml 2007-05-16 15:17:25 UTC (rev 7263)
@@ -555,6 +555,16 @@
</x-sysproperty>
<x-test>
+ <zest todir="${test.reports}"
name="org.jboss.portal.test.core.model.portal.PortalNodeTestCase"
+ outfile="TEST-PortalObjectContainerTestCase">
+ <parameter name="CacheNaturalId" value="true"/>
+ <parameter name="Config"
value="persistent-jboss-beans.xml"/>
+ </zest>
+ <zest todir="${test.reports}"
name="org.jboss.portal.test.core.model.portal.PortalNodeTestCase"
+ outfile="TEST-PortalObjectContainerTestCase">
+ <parameter name="CacheNaturalId" value="true"/>
+ <parameter name="Config"
value="transient-jboss-beans.xml"/>
+ </zest>
<zest todir="${test.reports}"
name="org.jboss.portal.test.core.model.portal.PortalObjectContainerTestCase"
outfile="TEST-PortalObjectContainerTestCase">
<parameter name="CacheNaturalId" value="true"/>
@@ -613,14 +623,15 @@
outfile="TEST-RegistrationPersistenceManagerTestCase">
</zest>
<test todir="${test.reports}"
+
name="org.jboss.portal.test.core.model.portal.PortalObjectPermissionTestCase"/>
+ <test todir="${test.reports}"
name="org.jboss.portal.test.core.deployment.JBossApplicationMetaDataFactoryTestCase"/>
<test todir="${test.reports}"
-
name="org.jboss.portal.test.core.model.portal.PortalObjectPermissionTestCase"/>
- <test todir="${test.reports}"
name="org.jboss.portal.test.core.model.portal.PortalObjectIdTestCase"/>
<test todir="${test.reports}"
name="org.jboss.portal.test.core.model.portal.PortalObjectPathTestCase"/>
+
</x-test>
<x-classpath>
<pathelement location="${build.lib}/portal-core-lib.jar"/>
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -28,6 +28,7 @@
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
import org.jboss.portal.core.model.portal.PortalObjectPath;
+import org.jboss.portal.core.model.portal.Context;
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
import org.jboss.portal.core.model.content.spi.ContentProvider;
@@ -74,7 +75,7 @@
// PortalObjectContainer
implementation******************************************************************************
- public PortalObject getContext()
+ public org.jboss.portal.core.model.portal.Context getContext()
{
return getContext("");
}
@@ -89,7 +90,7 @@
return node == null ? null : node.getObject();
}
- public PortalObject getContext(String namespace)
+ public Context getContext(String namespace)
{
if (namespace == null)
{
@@ -97,10 +98,10 @@
}
PortalObjectId id = new PortalObjectId(namespace, PortalObjectPath.ROOT_PATH);
ObjectNode node = getObjectNode(id);
- return node == null ? null : node.getObject();
+ return node == null ? null : (Context)node.getObject();
}
- public PortalObject createContext(String namespace) throws
DuplicatePortalObjectException
+ public Context createContext(String namespace) throws DuplicatePortalObjectException
{
if (namespace == null)
{
@@ -114,7 +115,7 @@
return this;
}
- protected abstract PortalObjectImpl createRoot(String namespace) throws
DuplicatePortalObjectException;
+ protected abstract ContextImpl createRoot(String namespace) throws
DuplicatePortalObjectException;
// AuthorizationDomain implementation
*******************************************************************************
@@ -222,7 +223,7 @@
*/
protected abstract ObjectNode getObjectNode(PortalObjectId id);
- public class Context
+ public class ContainerContext
{
/**
*/
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java 2007-05-16
13:11:49 UTC (rev 7262)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -60,24 +60,24 @@
private Map securityConstraints;
// Runtime fields
- private AbstractPortalObjectContainer.Context context;
+ private AbstractPortalObjectContainer.ContainerContext containerContext;
public ObjectNode()
{
- this.context = null;
+ this.containerContext = null;
this.path = null;
this.name = null;
this.children = null;
this.children = null;
}
- public ObjectNode(AbstractPortalObjectContainer.Context context, PortalObjectId path,
String name)
+ public ObjectNode(AbstractPortalObjectContainer.ContainerContext containerContext,
PortalObjectId path, String name)
{
- if (context == null)
+ if (containerContext == null)
{
throw new IllegalArgumentException("No context provided");
}
- this.context = context;
+ this.containerContext = containerContext;
this.path = path;
this.name = name;
this.children = new HashMap();
@@ -88,7 +88,7 @@
public void setContext(Object context)
{
- this.context = (AbstractPortalObjectContainer.Context)context;
+ this.containerContext = (AbstractPortalObjectContainer.ContainerContext)context;
}
public Long getKey()
@@ -143,12 +143,12 @@
//
log.debug("Creating child of path='" + path + "' with
path='" + childPath + "'");
- ObjectNode childNode = new ObjectNode(context, childPath, name);
+ ObjectNode childNode = new ObjectNode(containerContext, childPath, name);
childNode.setObject(childObject);
childObject.setObjectNode(childNode);
//
- context.createChild(childNode);
+ containerContext.createChild(childNode);
//
children.put(name, childNode);
@@ -158,7 +158,7 @@
if (childObject instanceof ContextObject)
{
ContextObject co = (ContextObject)childObject;
- co.setContext(context);
+ co.setContext(containerContext);
}
}
@@ -189,7 +189,7 @@
child.getObject().destroy();
// Let the container destroy it
- context.destroyChild(child);
+ containerContext.destroyChild(child);
// Break the relationship
children.remove(name);
@@ -236,9 +236,9 @@
this.children = children;
}
- public AbstractPortalObjectContainer.Context getContext()
+ public AbstractPortalObjectContainer.ContainerContext getContext()
{
- return context;
+ return containerContext;
}
public String toString()
@@ -289,7 +289,7 @@
}
//
- context.updated(this);
+ containerContext.updated(this);
}
public Set getBindings()
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -56,7 +56,7 @@
protected SessionFactory sessionFactory;
/** . */
- protected Context ctx;
+ protected ContainerContext ctx;
/** . */
protected PortalAuthorizationManagerFactory portalAuthorizationManagerFactory;
@@ -81,7 +81,7 @@
public PersistentPortalObjectContainer()
{
- ctx = new Context()
+ ctx = new ContainerContext()
{
public void destroyChild(ObjectNode node)
{
@@ -167,7 +167,7 @@
this.sessionFactoryJNDIName = sessionFactoryJNDIName;
}
- public Context getContainerContext()
+ public ContainerContext getContainerContext()
{
return this.ctx;
}
@@ -203,7 +203,7 @@
sessionFactory = null;
}
- protected PortalObjectImpl createRoot(String namespace) throws
DuplicatePortalObjectException
+ protected ContextImpl createRoot(String namespace) throws
DuplicatePortalObjectException
{
log.debug("Detecting the existence of the portal object root context");
Session session = sessionFactory.getCurrentSession();
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -42,21 +42,21 @@
protected Map roots;
/** . */
- protected Context ctx;
+ protected ContainerContext ctx;
protected void createService() throws Exception
{
super.createService();
//
- ctx = new Context();
+ ctx = new ContainerContext();
//
roots = new ConcurrentHashMap();
}
- protected PortalObjectImpl createRoot(String namespace) throws
DuplicatePortalObjectException
+ protected ContextImpl createRoot(String namespace) throws
DuplicatePortalObjectException
{
if (roots.containsKey(namespace))
{
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/WindowImpl.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/WindowImpl.java 2007-05-16
13:11:49 UTC (rev 7262)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/WindowImpl.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -47,7 +47,7 @@
protected String uri;
// Runtime fields
- protected AbstractPortalObjectContainer.Context context;
+ protected AbstractPortalObjectContainer.ContainerContext containerContext;
protected ContentType contentType;
protected ContentStateImpl contentState;
@@ -99,7 +99,7 @@
public void setContext(Object context)
{
- this.context = (AbstractPortalObjectContainer.Context)context;
+ this.containerContext = (AbstractPortalObjectContainer.ContainerContext)context;
}
public String getURI()
@@ -130,7 +130,7 @@
if (value == null)
{
// If nothing is provided then we use the default content type
- contentType = context.getDefaultContentType();
+ contentType = containerContext.getDefaultContentType();
}
else
{
@@ -214,7 +214,7 @@
ContentType contentType = getContentType();
//
- return context.getContentHandler(contentType);
+ return containerContext.getContentHandler(contentType);
}
public Iterator getParameterNames()
Modified:
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectContainer.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectContainer.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectContainer.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -46,11 +46,11 @@
*
* @return a root object
*/
- PortalObject getContext();
+ Context getContext();
- PortalObject getContext(String namespace);
+ Context getContext(String namespace);
- PortalObject createContext(String namespace) throws DuplicatePortalObjectException;
+ Context createContext(String namespace) throws DuplicatePortalObjectException;
/**
* Get the authorization domain.
Modified:
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectPermission.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectPermission.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectPermission.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -297,48 +297,16 @@
//
return userName.equals(i2.next());
-
- //
-
-
-// // The index of the expected '/' in that.uri
-// int index = this.uri.length();
-//
-// //
-// if (index == 1)
-// {
-// index = 0;
-// }
-//
-// // We must have (this.uri + '/' + userName) a prefix
-// // of that.uri
-// if (that.uri.length() > index)
-// {
-// // No '/' means not good
-// if (that.uri.charAt(index) == '/')
-// {
-// // Get the index of where to extract the name to make the
comparison
-// int from = index + 1;
-// int to = that.uri.indexOf('/', from);
-// if (to == -1)
-// {
-// to = that.uri.length();
-// }
-//
-// //
-// String name = that.uri.substring(from, to);
-// if (name.equals(userName))
-// {
-// return true;
-// }
-// }
-// }
}
}
// Could check namespace and id instead
if (that.uri.equals(this.uri))
{
+ if (that.recursiveMask != 0 && (this.recursiveMask &
that.mask) != that.mask)
+ {
+ return false;
+ }
return (this.mask & that.mask) == that.mask;
}
else if (that.uri.startsWith(this.uri))
Added:
trunk/core/src/main/org/jboss/portal/test/core/model/portal/AbstractPortalObjectContainerTestCase.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/test/core/model/portal/AbstractPortalObjectContainerTestCase.java
(rev 0)
+++
trunk/core/src/main/org/jboss/portal/test/core/model/portal/AbstractPortalObjectContainerTestCase.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -0,0 +1,119 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.core.model.portal;
+
+import org.jboss.portal.test.core.PortalBaseTestCase;
+import org.jboss.portal.test.framework.embedded.DataSourceSupport;
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.common.test.TestParametrization;
+import org.jboss.portal.common.test.TestParameterValue;
+import org.jboss.portal.common.test.junit.JUnitAdapter;
+import org.jboss.portal.common.test.junit.POJOJUnitTest;
+import org.jboss.portal.common.junit.TransactionAssert;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
+import junit.framework.TestSuite;
+
+import java.net.URL;
+
+/**
+ * Portal Object Container Test Cases based on the microcontainer architecture
+ *
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @author <a href="mailto:anil.saldhana@jboss.org">Anil
Saldhana</a>
+ * @version $Revision: 7252 $
+ */
+public class AbstractPortalObjectContainerTestCase extends PortalBaseTestCase
+{
+
+ /** . */
+ protected PortalObjectContainer container;
+
+ /** . */
+ protected PortalAuthorizationManagerFactory authorizationManagerFactory;
+
+ public static TestSuite suite(Class testClass) throws Exception
+ {
+ TestParametrization parametrization = JUnitAdapter.getParametrization();
+ URL configsURL =
Thread.currentThread().getContextClassLoader().getResource("datasources.xml");
+ parametrization.setParameterValue("DataSourceConfig",
DataSourceSupport.Config.fromXML2(configsURL));
+ POJOJUnitTest abc = new POJOJUnitTest(testClass);
+ JUnitAdapter adapter = new JUnitAdapter(abc, parametrization);
+ TestSuite suite = new TestSuite();
+ suite.addTest(adapter);
+ return suite;
+ }
+
+ public String getName()
+ {
+ TestParametrization parametrization = JUnitAdapter.getParametrization();
+ return super.getName() + ",ds=" + dataSourceConfigParameter.getName() +
",Config=" + parametrization.getParameterValue("Config").get();
+ }
+
+ protected String getConfigLocation()
+ {
+ TestParametrization parametrization = JUnitAdapter.getParametrization();
+ TestParameterValue paramValue =
parametrization.getParameterValue("Config");
+ return "org/jboss/portal/test/core/model/portal/" + paramValue.get();
+ }
+
+ public PortalObjectContainer getPortalObjectContainer()
+ {
+ return container;
+ }
+
+ public void setPortalObjectContainer(PortalObjectContainer container)
+ {
+ this.container = container;
+ }
+
+ public PortalAuthorizationManagerFactory getAuthorizationManagerFactory()
+ {
+ return authorizationManagerFactory;
+ }
+
+ public void setAuthorizationManagerFactory(PortalAuthorizationManagerFactory
authorizationManagerFactory)
+ {
+ this.authorizationManagerFactory = authorizationManagerFactory;
+ }
+
+ public PortalAuthorizationManager getAuthorizationManager()
+ {
+ return authorizationManagerFactory.getManager();
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+
+ // Create root context
+ TransactionAssert.beginTransaction();
+ container.createContext("");
+ TransactionAssert.commitTransaction();
+ }
+
+ public void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+}
Added:
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalNodeTestCase.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalNodeTestCase.java
(rev 0)
+++
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalNodeTestCase.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -0,0 +1,151 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.core.model.portal;
+
+import org.jboss.portal.common.junit.TransactionAssert;
+import org.jboss.portal.common.util.CollectionBuilder;
+import org.jboss.portal.core.model.portal.Context;
+import org.jboss.portal.core.model.portal.Portal;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.PortalObjectPath;
+import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.portal.core.impl.api.node.PortalNodeImpl;
+import org.jboss.portal.security.spi.provider.AuthorizationDomain;
+import org.jboss.portal.security.spi.provider.DomainConfigurator;
+import org.jboss.portal.security.RoleSecurityBinding;
+import org.jboss.portal.api.node.PortalNode;
+import junit.framework.TestSuite;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PortalNodeTestCase extends AbstractPortalObjectContainerTestCase
+{
+
+ public static TestSuite suite() throws Exception
+ {
+ return AbstractPortalObjectContainerTestCase.suite(PortalNodeTestCase.class);
+ }
+
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+
+ //
+ TransactionAssert.beginTransaction();
+ Context root = container.getContext("");
+ Portal p_1 = root.createPortal("1");
+ Page p_1_1 = p_1.createPage("1");
+ Page p_1_2 = p_1.createPage("2");
+ p_1_1.createPage("1");
+ p_1_1.createPage("2");
+ p_1_1.createPage("3");
+ p_1_1.createPage("4");
+ TransactionAssert.commitTransaction();
+ }
+
+ public void testGetChildrenWithViewPermission() throws Exception
+ {
+ TransactionAssert.beginTransaction();
+ AuthorizationDomain auth = container.getAuthorizationDomain();
+ DomainConfigurator cfg = auth.getConfigurator();
+ Portal p_1 = (Portal)container.getObject(PortalObjectId.parse("/1",
PortalObjectPath.CANONICAL_FORMAT));
+ cfg.setSecurityBindings(p_1.getId().toString(PortalObjectPath.CANONICAL_FORMAT),
CollectionBuilder.singleton(new RoleSecurityBinding("view",
"admin")).toHashSet());
+ TransactionAssert.commitTransaction();
+
+ //
+ TransactionAssert.beginTransaction();
+ p_1 = (Portal)container.getObject(PortalObjectId.parse("/1",
PortalObjectPath.CANONICAL_FORMAT));
+ PortalNode node = new PortalNodeImpl(getAuthorizationManager(), p_1);
+ assertEquals(0, node.getChildren().size());
+ TransactionAssert.commitTransaction();
+
+ //
+ setUpSubjectForRole("blah", new String[]{"admin"});
+
+ //
+ TransactionAssert.beginTransaction();
+ p_1 = (Portal)container.getObject(PortalObjectId.parse("/1",
PortalObjectPath.CANONICAL_FORMAT));
+ node = new PortalNodeImpl(getAuthorizationManager(), p_1);
+ assertEquals(0, node.getChildren().size());
+ TransactionAssert.commitTransaction();
+ }
+
+ public void testGetChildrenWithViewRecursivePermission() throws Exception
+ {
+ TransactionAssert.beginTransaction();
+ AuthorizationDomain auth = container.getAuthorizationDomain();
+ DomainConfigurator cfg = auth.getConfigurator();
+ Portal tmp = (Portal)container.getObject(PortalObjectId.parse("/1",
PortalObjectPath.CANONICAL_FORMAT));
+ cfg.setSecurityBindings(tmp.getId().toString(PortalObjectPath.CANONICAL_FORMAT),
CollectionBuilder.singleton(new RoleSecurityBinding("viewrecursive",
"admin")).toHashSet());
+ TransactionAssert.commitTransaction();
+
+ //
+ TransactionAssert.beginTransaction();
+ tmp = (Portal)container.getObject(PortalObjectId.parse("/1",
PortalObjectPath.CANONICAL_FORMAT));
+ PortalNode node_1 = new PortalNodeImpl(getAuthorizationManager(), tmp);
+ assertEquals(0, node_1.getChildren().size());
+ TransactionAssert.commitTransaction();
+
+ //
+ setUpSubjectForRole("blah", new String[]{"admin"});
+
+ //
+ TransactionAssert.beginTransaction();
+ tmp = (Portal)container.getObject(PortalObjectId.parse("/1",
PortalObjectPath.CANONICAL_FORMAT));
+ node_1 = new PortalNodeImpl(getAuthorizationManager(), tmp);
+ Map node_1_children = getChildrenMap(node_1);
+ assertEquals(2, node_1_children.size());
+ PortalNode node_1_1 = (PortalNode)node_1_children.get("1");
+ PortalNode node_1_2 = (PortalNode)node_1_children.get("2");
+ assertNotNull(node_1_1);
+ assertNotNull(node_1_2);
+ Map node_1_1_children = getChildrenMap(node_1_1);
+ assertEquals(4, node_1_1_children.size());
+ assertNotNull(node_1_1_children.get("1"));
+ assertNotNull(node_1_1_children.get("2"));
+ assertNotNull(node_1_1_children.get("3"));
+ assertNotNull(node_1_1_children.get("4"));
+ Map node_1_2_children = getChildrenMap(node_1_2);
+ assertEquals(0, node_1_2_children.size());
+ TransactionAssert.commitTransaction();
+ }
+
+ private Map getChildrenMap(PortalNode node)
+ {
+ Map p_1_children = new TreeMap();
+ for (Iterator i = node.getChildren().iterator();i.hasNext();)
+ {
+ PortalNode child = (PortalNode)i.next();
+ p_1_children.put(child.getName(), child);
+ }
+ return p_1_children;
+ }
+}
Modified:
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -29,23 +29,15 @@
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.core.model.portal.PortalObjectId;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.portal.PortalObjectPath;
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.model.content.spi.handler.ContentState;
-import org.jboss.portal.test.core.PortalBaseTestCase;
import org.jboss.portal.test.core.model.content.SimpleContent;
-import org.jboss.portal.test.framework.embedded.DataSourceSupport;
-import org.jboss.portal.common.test.TestParametrization;
-import org.jboss.portal.common.test.TestParameterValue;
-import org.jboss.portal.common.test.junit.JUnitAdapter;
-import org.jboss.portal.common.test.junit.POJOJUnitTest;
import org.jboss.portal.common.junit.TransactionAssert;
import org.jboss.portal.common.util.CollectionBuilder;
import org.jboss.portal.WindowState;
import org.jboss.portal.Mode;
-import java.net.URL;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
@@ -58,62 +50,14 @@
* @author <a href="mailto:anil.saldhana@jboss.org">Anil
Saldhana</a>
* @version $Revision$
*/
-public class PortalObjectContainerTestCase extends PortalBaseTestCase
+public class PortalObjectContainerTestCase extends AbstractPortalObjectContainerTestCase
{
- /** . */
- private PortalObjectContainer container;
-
public static TestSuite suite() throws Exception
{
- TestParametrization parametrization = JUnitAdapter.getParametrization();
- URL configsURL =
Thread.currentThread().getContextClassLoader().getResource("datasources.xml");
- parametrization.setParameterValue("DataSourceConfig",
DataSourceSupport.Config.fromXML2(configsURL));
- POJOJUnitTest abc = new POJOJUnitTest(PortalObjectContainerTestCase.class);
- JUnitAdapter adapter = new JUnitAdapter(abc, parametrization);
- TestSuite suite = new TestSuite();
- suite.addTest(adapter);
- return suite;
+ return
AbstractPortalObjectContainerTestCase.suite(PortalObjectContainerTestCase.class);
}
- public String getName()
- {
- TestParametrization parametrization = JUnitAdapter.getParametrization();
- return super.getName() + ",ds=" + dataSourceConfigParameter.getName() +
",Config=" + parametrization.getParameterValue("Config").get();
- }
-
- protected String getConfigLocation()
- {
- TestParametrization parametrization = JUnitAdapter.getParametrization();
- TestParameterValue paramValue =
parametrization.getParameterValue("Config");
- return "org/jboss/portal/test/core/model/portal/" + paramValue.get();
- }
-
- public PortalObjectContainer getPortalObjectContainer()
- {
- return container;
- }
-
- public void setPortalObjectContainer(PortalObjectContainer container)
- {
- this.container = container;
- }
-
- public void setUp() throws Exception
- {
- super.setUp();
-
- // Create root context
- TransactionAssert.beginTransaction();
- container.createContext("");
- TransactionAssert.commitTransaction();
- }
-
- public void tearDown() throws Exception
- {
- super.tearDown();
- }
-
/** todo same with a transaction wrapping the start method */
public void testRootNodeCreation() throws Exception
{
Modified:
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectPermissionTestCase.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectPermissionTestCase.java 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectPermissionTestCase.java 2007-05-16
15:17:25 UTC (rev 7263)
@@ -60,7 +60,7 @@
PortalObjectPermission v = new PortalObjectPermission(new
PortalObjectId("", new PortalObjectPath(new String[]{"abc"})),
"view");
PortalObjectPermission vr = new PortalObjectPermission(new
PortalObjectId("", new PortalObjectPath(new String[]{"abc"})),
"viewrecursive");
assertTrue(v.implies(v));
- assertTrue(v.implies(vr));
+ assertFalse(v.implies(vr));
assertTrue(vr.implies(v));
assertTrue(vr.implies(vr));
}
Modified:
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/persistent-jboss-beans.xml
===================================================================
---
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/persistent-jboss-beans.xml 2007-05-16
13:11:49 UTC (rev 7262)
+++
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/persistent-jboss-beans.xml 2007-05-16
15:17:25 UTC (rev 7263)
@@ -98,5 +98,6 @@
</constructor>
<property name="hibernate"><inject
bean="HibernateSupport"/></property>
<property name="portalObjectContainer"><inject
bean="PortalObjectContainer"/></property>
+ <property name="authorizationManagerFactory"><inject
bean="AuthorizationManagerFactory"/></property>
</bean>
</deployment>