You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2012/08/29 14:02:52 UTC

svn commit: r1378510 - /jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeManagerImplTest.java

Author: jukka
Date: Wed Aug 29 12:02:52 2012
New Revision: 1378510

URL: http://svn.apache.org/viewvc?rev=1378510&view=rev
Log:
OAK-287: PrivilegeManagerImplTest.testJcrAll assumes that there are no custom privileges

Better isolation by starting a separate fresh (in-memory) repository for each test case.

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeManagerImplTest.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeManagerImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeManagerImplTest.java?rev=1378510&r1=1378509&r2=1378510&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeManagerImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeManagerImplTest.java Wed Aug 29 12:02:52 2012
@@ -16,6 +16,13 @@
  */
 package org.apache.jackrabbit.oak.jcr.security.privilege;
 
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+import static org.apache.jackrabbit.oak.jcr.RepositoryTestUtils.buildDefaultCommitEditor;
+import static org.junit.Assert.fail;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -24,17 +31,26 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.Executors;
+
 import javax.jcr.AccessDeniedException;
+import javax.jcr.Credentials;
+import javax.jcr.GuestCredentials;
 import javax.jcr.NamespaceException;
+import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
-import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+import javax.jcr.Workspace;
 import javax.jcr.security.AccessControlException;
 import javax.jcr.security.Privilege;
 
 import org.apache.jackrabbit.api.JackrabbitWorkspace;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
+import org.apache.jackrabbit.mk.core.MicroKernelImpl;
+import org.apache.jackrabbit.oak.api.ContentRepository;
+import org.apache.jackrabbit.oak.core.ContentRepositoryImpl;
+import org.apache.jackrabbit.oak.jcr.RepositoryImpl;
 import org.apache.jackrabbit.oak.security.privilege.PrivilegeConstants;
-import org.apache.jackrabbit.test.AbstractJCRTest;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -43,19 +59,29 @@ import org.junit.Test;
  *
  * TODO: more tests for cyclic aggregation
  */
-public class PrivilegeManagerImplTest extends AbstractJCRTest implements PrivilegeConstants {
+public class PrivilegeManagerImplTest implements PrivilegeConstants {
+
+    private static final Credentials ADMIN =
+            new SimpleCredentials("admin", "admin".toCharArray());
+
+    private Repository repository;
 
     private PrivilegeManager privilegeManager;
 
     @Before
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        privilegeManager = getPrivilegeManager(superuser);
+    public void setUp() throws Exception {
+        ContentRepository contentRepository = new ContentRepositoryImpl(
+                new MicroKernelImpl(), null, buildDefaultCommitEditor());
+        repository = new RepositoryImpl(
+                contentRepository, Executors.newScheduledThreadPool(1));
+
+        privilegeManager = getPrivilegeManager(ADMIN);
     }
 
-    private static PrivilegeManager getPrivilegeManager(Session s) throws RepositoryException {
-        return ((JackrabbitWorkspace) s.getWorkspace()).getPrivilegeManager();
+    private PrivilegeManager getPrivilegeManager(Credentials credentials)
+            throws RepositoryException {
+        Workspace workspace = repository.login(credentials).getWorkspace();
+        return ((JackrabbitWorkspace) workspace).getPrivilegeManager();
     }
 
     private static String[] getAggregateNames(String... names) {
@@ -245,14 +271,11 @@ public class PrivilegeManagerImplTest ex
 
     @Test
     public void testRegisterPrivilegeWithReadOnly() throws RepositoryException {
-        Session s = getHelper().getReadOnlySession();
         try {
-            ((JackrabbitWorkspace) s.getWorkspace()).getPrivilegeManager().registerPrivilege("test", true, new String[0]);
+            getPrivilegeManager(new GuestCredentials()).registerPrivilege("test", true, new String[0]);
             fail("Only admin is allowed to register privileges.");
         } catch (AccessDeniedException e) {
             // success
-        } finally {
-            s.logout();
         }
     }
 
@@ -369,6 +392,10 @@ public class PrivilegeManagerImplTest ex
 
     @Test
     public void testRegisterCustomPrivileges() throws RepositoryException {
+        Workspace workspace = repository.login(ADMIN).getWorkspace();
+        workspace.getNamespaceRegistry().registerNamespace(
+                "test", "http://www.apache.org/jackrabbit/test");
+
         Map<String, String[]> newCustomPrivs = new HashMap<String, String[]>();
         newCustomPrivs.put("new", new String[0]);
         newCustomPrivs.put("test:new", new String[0]);
@@ -419,16 +446,11 @@ public class PrivilegeManagerImplTest ex
         String privName = "testCustomPrivilegeVisibleToNewSession";
         privilegeManager.registerPrivilege(privName, isAbstract, new String[0]);
 
-        Session s2 = getHelper().getSuperuserSession();
-        try {
-            PrivilegeManager pm = getPrivilegeManager(s2);
-            Privilege priv = pm.getPrivilege(privName);
-            assertEquals(privName, priv.getName());
-            assertEquals(isAbstract, priv.isAbstract());
-            assertFalse(priv.isAggregate());
-        } finally {
-            s2.logout();
-        }
+        PrivilegeManager pm = getPrivilegeManager(ADMIN);
+        Privilege priv = pm.getPrivilege(privName);
+        assertEquals(privName, priv.getName());
+        assertEquals(isAbstract, priv.isAbstract());
+        assertFalse(priv.isAggregate());
     }
 
 //    FIXME: Session#refresh must refresh privilege definitions