Author: angela
Date: Wed Apr  5 08:27:57 2017
New Revision: 1790189

URL: http://svn.apache.org/viewvc?rev=1790189&view=rev
Log:
OAK-5882 : Improve coverage for oak.security code in oak-core (wip)

Modified:
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java?rev=1790189&r1=1790188&r2=1790189&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipAbortTest.java
 Wed Apr  5 08:27:57 2017
@@ -19,9 +19,18 @@ package org.apache.jackrabbit.oak.securi
 import javax.jcr.nodetype.ConstraintViolationException;
 
 import com.google.common.collect.ImmutableList;
+import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
 import org.junit.Test;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 public class UserImporterMembershipAbortTest extends 
UserImporterMembershipIgnoreTest {
 
     @Override
@@ -40,4 +49,26 @@ public class UserImporterMembershipAbort
         importer.startChildInfo(createNodeInfo("memberRef", 
NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, 
unknownContentId, knownMemberContentId)));
         importer.processReferences();
     }
+
+    @Test(expected = ConstraintViolationException.class)
+    public void testAddSameAsMember() throws Exception {
+        String contentId = userProvider.getContentID(groupTree);
+
+        // NOTE: reversed over of import compared to 'testNewMembers'
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), 
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+        importer.processReferences();
+    }
+
+    @Test(expected = ConstraintViolationException.class)
+    public void testNewMembersToEveryone() throws Exception {
+        groupTree.setProperty(REP_MEMBERS, 
ImmutableList.of(knownMemberContentId), Type.STRINGS);
+        groupTree.setProperty(REP_PRINCIPAL_NAME, EveryonePrincipal.NAME);
+
+        Tree userTree = createUserTree();
+        String contentId = userProvider.getContentID(userTree);
+
+        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_AUTHORIZABLE_ID, TEST_USER_ID), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), 
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+        importer.processReferences();
+    }
 }
\ No newline at end of file

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java?rev=1790189&r1=1790188&r2=1790189&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
 Wed Apr  5 08:27:57 2017
@@ -21,11 +21,13 @@ import java.util.List;
 import javax.jcr.RepositoryException;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -39,7 +41,7 @@ public class UserImporterMembershipIgnor
     Tree groupTree;
     Tree memberRefList;
 
-    private UserProvider userProvider;
+    UserProvider userProvider;
 
     String knownMemberContentId;
     String unknownContentId;
@@ -123,49 +125,87 @@ public class UserImporterMembershipIgnor
     }
 
     @Test
-    public void testReplaceExistingProperty() throws Exception {
-//        groupTree.setProperty(REP_MEMBERS, 
ImmutableList.of(unknownContentId), Type.STRINGS);
-//
-//        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, testUser.getPrincipal().getName()), 
mockPropertyDefinition(NT_REP_USER, true)));
-//        importer.processReferences();
-//
-//        PropertyState impersonators = userTree.getProperty(REP_MEMBERS);
-//        assertNotNull(impersonators);
-//        assertEquals(ImmutableList.of(testUser.getPrincipal().getName()), 
impersonators.getValue(Type.STRINGS));
+    public void testAddMemberToNonExistingMember() throws Exception {
+        groupTree.setProperty(REP_MEMBERS, ImmutableList.of(unknownContentId), 
Type.STRINGS);
+
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, knownMemberContentId), 
mockPropertyDefinition(NT_REP_GROUP, true)));
+        importer.processReferences();
+
+        PropertyState members = groupTree.getProperty(REP_MEMBERS);
+        assertNotNull(members);
+        assertEquals(ImmutableSet.of(unknownContentId, knownMemberContentId), 
ImmutableSet.copyOf(members.getValue(Type.STRINGS)));
+    }
+
+    @Test
+    public void testAddReplacesExistingMember() throws Exception {
+        Tree userTree = createUserTree();
+        String contentId = userProvider.getContentID(userTree);
+        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_AUTHORIZABLE_ID, TEST_USER_ID), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
+
+        groupTree.setProperty(REP_MEMBERS, 
ImmutableList.of(knownMemberContentId), Type.STRINGS);
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), mockPropertyDefinition(NT_REP_GROUP, 
true)));
+        importer.processReferences();
+
+        PropertyState members = groupTree.getProperty(REP_MEMBERS);
+        assertNotNull(members);
+        assertEquals(ImmutableSet.of(contentId), 
ImmutableSet.copyOf(members.getValue(Type.STRINGS)));
     }
 
     @Test
     public void testNewMembers() throws Exception {
-//        Tree folder = 
root.getTree(getUserConfiguration().getParameters().getConfigValue(PARAM_USER_PATH,
 DEFAULT_USER_PATH));
-//        Tree impersonatorTree = folder.addChild("impersonatorTree");
-//        impersonatorTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, 
NT_REP_USER, Type.NAME);
-//        impersonatorTree.setProperty(JcrConstants.JCR_UUID, new 
UserProvider(root, 
ConfigurationParameters.EMPTY).getContentID("impersonator1"));
-//
-//        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_IMPERSONATORS, "impersonator1"), 
mockPropertyDefinition(NT_REP_USER, true)));
-//        assertTrue(importer.handlePropInfo(impersonatorTree, 
createPropInfo(REP_PRINCIPAL_NAME, "impersonator1"), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
-//
-//        importer.processReferences();
-//
-//        PropertyState impersonators = 
userTree.getProperty(REP_IMPERSONATORS);
-//        assertNotNull(impersonators);
-//        assertEquals(ImmutableList.of("impersonator1"), 
impersonators.getValue(Type.STRINGS));
+        Tree userTree = createUserTree();
+        String contentId = userProvider.getContentID(userTree);
+
+        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_AUTHORIZABLE_ID, TEST_USER_ID), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), 
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+        importer.processReferences();
+
+        PropertyState members = groupTree.getProperty(REP_MEMBERS);
+        assertNotNull(members);
+        assertEquals(ImmutableList.of(contentId), 
ImmutableList.copyOf(members.getValue(Type.STRINGS)));
     }
 
     @Test
     public void testNewMembers2() throws Exception {
-//        Tree folder = 
root.getTree(getUserConfiguration().getParameters().getConfigValue(PARAM_USER_PATH,
 DEFAULT_USER_PATH));
-//        Tree impersonatorTree = folder.addChild("impersonatorTree");
-//        impersonatorTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, 
NT_REP_USER, Type.NAME);
-//        impersonatorTree.setProperty(JcrConstants.JCR_UUID, new 
UserProvider(root, 
ConfigurationParameters.EMPTY).getContentID("impersonator1"));
-//
-//        // NOTE: reversed over of import compared to 'testNewImpersonator'
-//        assertTrue(importer.handlePropInfo(impersonatorTree, 
createPropInfo(REP_PRINCIPAL_NAME, "impersonator1"), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
-//        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_IMPERSONATORS, "impersonator1"), 
mockPropertyDefinition(NT_REP_USER, true)));
-//
-//        importer.processReferences();
-//
-//        PropertyState impersonators = 
userTree.getProperty(REP_IMPERSONATORS);
-//        assertNotNull(impersonators);
-//        assertEquals(ImmutableList.of("impersonator1"), 
impersonators.getValue(Type.STRINGS));
+        Tree userTree = createUserTree();
+        String contentId = userProvider.getContentID(userTree);
+
+        // NOTE: reversed over of import compared to 'testNewMembers'
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), 
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_AUTHORIZABLE_ID, TEST_USER_ID), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
+        importer.processReferences();
+
+        PropertyState members = groupTree.getProperty(REP_MEMBERS);
+        assertNotNull(members);
+        assertEquals(ImmutableList.of(contentId), 
ImmutableList.copyOf(members.getValue(Type.STRINGS)));
+    }
+
+    @Test
+    public void testAddSameAsMember() throws Exception {
+        String contentId = userProvider.getContentID(groupTree);
+
+        // NOTE: reversed over of import compared to 'testNewMembers'
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), 
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+        importer.processReferences();
+
+        PropertyState members = groupTree.getProperty(REP_MEMBERS);
+        assertNull(members);
+    }
+
+    @Test
+    public void testNewMembersToEveryone() throws Exception {
+        groupTree.setProperty(REP_MEMBERS, 
ImmutableList.of(knownMemberContentId), Type.STRINGS);
+        groupTree.setProperty(REP_PRINCIPAL_NAME, EveryonePrincipal.NAME);
+
+        Tree userTree = createUserTree();
+        String contentId = userProvider.getContentID(userTree);
+
+        assertTrue(importer.handlePropInfo(userTree, 
createPropInfo(REP_AUTHORIZABLE_ID, TEST_USER_ID), 
mockPropertyDefinition(NT_REP_AUTHORIZABLE, false)));
+        assertTrue(importer.handlePropInfo(groupTree, 
createPropInfo(REP_MEMBERS, contentId), 
mockPropertyDefinition(NT_REP_MEMBER_REFERENCES, true)));
+        importer.processReferences();
+
+        PropertyState members = groupTree.getProperty(REP_MEMBERS);
+        assertNotNull(members);
+        assertEquals(ImmutableList.of(knownMemberContentId), 
ImmutableList.copyOf(members.getValue(Type.STRINGS)));
     }
 }
\ No newline at end of file


Reply via email to