Author: angela
Date: Thu Mar 12 16:21:06 2015
New Revision: 1666236

URL: http://svn.apache.org/r1666236
Log:
adding test case for a privilege including jcr:all in the aggregated privilege 
names

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

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java?rev=1666236&r1=1666235&r2=1666236&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
 Thu Mar 12 16:21:06 2015
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.securi
 import java.util.Collections;
 
 import com.google.common.collect.ImmutableList;
-
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -27,9 +26,6 @@ import org.apache.jackrabbit.oak.api.Tre
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
-import org.apache.jackrabbit.oak.plugins.tree.TreeFactory;
-import org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree;
-import org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBitsProvider;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -195,4 +191,22 @@ public class PrivilegeValidatorTest exte
         PrivilegeValidator pv = new PrivilegeValidator(root, root);
         assertNull(pv.childNodeChanged("test", privilegeDefinition, 
privilegeDefinition));
     }
+
+    @Test
+    public void testAggregatesIncludesJcrAll() throws Exception {
+        try {
+            Tree privTree = createPrivilegeTree();
+            privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES, 
ImmutableList.of(JCR_ALL, JCR_READ, JCR_WRITE), Type.NAMES));
+            PrivilegeBits.getInstance(bitsProvider.getBits(JCR_ALL, JCR_READ, 
JCR_WRITE)).writeTo(privTree);
+
+            root.commit();
+            fail("Aggregation containing jcr:all is invalid.");
+        } catch (CommitFailedException e) {
+            // success
+            assertTrue(e.isConstraintViolation());
+            assertEquals(53, e.getCode());
+        } finally {
+            root.refresh();
+        }
+    }
 }
\ No newline at end of file

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java?rev=1666236&r1=1666235&r2=1666236&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
 Thu Mar 12 16:21:06 2015
@@ -38,6 +38,7 @@ import com.google.common.collect.Immutab
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
 import 
org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
+import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -438,4 +439,21 @@ public class PrivilegeRegistrationTest e
 
         assertTrue(acMgr.hasPrivileges(testPath, principalSet, allPrivileges));
     }
+
+    @Test
+    public void testRegisterPrivilegeAggregatingJcrAll() throws Exception {
+        privilegeManager.registerPrivilege("customPriv", false, null);
+
+        try {
+            privilegeManager.registerPrivilege("customPriv2", false, new 
String[]{"customPriv", Privilege.JCR_ALL});
+            fail("Aggregation containing jcr:all is invalid.");
+        } catch (RepositoryException e) {
+            // success
+            Throwable cause = e.getCause();
+            assertTrue(cause instanceof CommitFailedException);
+            assertEquals(53, ((CommitFailedException) cause).getCode());
+        } finally {
+            superuser.refresh(false);
+        }
+    }
 }
\ No newline at end of file


Reply via email to