[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