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'.");
+ }
+
+ }
}
Show replies by date