[exo-jcr-commits] exo-jcr SVN: r4703 - jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/common.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Aug 8 10:25:06 EDT 2011
Author: areshetnyak
Date: 2011-08-08 10:25:06 -0400 (Mon, 08 Aug 2011)
New Revision: 4703
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/common/DynamicSessionProviderTest.java
Log:
EXOJCR-1464 : Use case of creating SystemSessionProvider after creating DynamicSession in the same thread was added in DynamicSessionProviderTest.
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/common/DynamicSessionProviderTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/common/DynamicSessionProviderTest.java 2011-08-08 13:25:20 UTC (rev 4702)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/common/DynamicSessionProviderTest.java 2011-08-08 14:25:06 UTC (rev 4703)
@@ -144,4 +144,70 @@
//ok
}
}
+
+ public void testCreateSystemSessionProviderAfterDynamic() throws Exception
+ {
+ // System only node.
+ NodeImpl systemNode = (NodeImpl) testRoot.addNode("system_dynamic");
+ systemNode.addMixin("exo:privilegeable");
+
+ systemNode.setPermission("*:/platform/users", new String[]
+ {PermissionType.READ});
+ systemNode.removePermission(session.getUserID());
+ testRoot.save();
+
+
+ //Dynamic session successful read
+ List<AccessControlEntry> accessControlEntries = new ArrayList<AccessControlEntry>();
+ accessControlEntries.add(new AccessControlEntry("*:/platform/users", "READ"));
+ SessionProvider dynamicProvider = SessionProvider.createProvider(accessControlEntries);
+
+ Session dynamicSession = null;
+
+ //check get
+ try
+ {
+ dynamicSession = dynamicProvider.getSession(session.getWorkspace().getName(), repository);
+ NodeImpl maryNodeDynamic = (NodeImpl) dynamicSession.getItem(systemNode.getPath());
+ //ok
+ }
+ catch (AccessDeniedException e)
+ {
+ e.printStackTrace();
+ fail("Dynamic session with membership '*:/platform/users' should read node with membership '*:/platform/users'. Exception message : "
+ + e.getMessage());
+ }
+
+ //System provider successful read
+ SessionProvider systemProvider = SessionProvider.createSystemProvider();
+ Session systemSession = null;
+ try
+ {
+ systemSession = systemProvider.getSession(session.getWorkspace().getName(), repository);
+ NodeImpl systemNodeOverSystemSession = (NodeImpl) systemSession.getItem(systemNode.getPath());
+ //ok
+ }
+ catch (AccessDeniedException e)
+ {
+ e.printStackTrace();
+ fail("System session should read node with membership '*:/platform/users'. Exception message : "
+ + e.getMessage());
+ }
+
+ //check remove
+ try
+ {
+ systemSession = systemProvider.getSession(session.getWorkspace().getName(), repository);
+ NodeImpl systemNodeOverSystemSession = (NodeImpl) systemSession.getItem(systemNode.getPath());
+
+ systemNodeOverSystemSession.remove();
+ systemSession.save();
+ //ok
+ }
+ catch (AccessDeniedException e)
+ {
+ fail("System session should remove node with membership '*:/platform/users'.");
+ }
+
+ }
}
More information about the exo-jcr-commits
mailing list