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