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 an...@apache.org on 2015/07/07 14:43:33 UTC
svn commit: r1689645 -
/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/GroupTest.java
Author: angela
Date: Tue Jul 7 12:43:33 2015
New Revision: 1689645
URL: http://svn.apache.org/r1689645
Log:
minor improvement: additional test cases (see also OAK-2991)
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/GroupTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/GroupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/GroupTest.java?rev=1689645&r1=1689644&r2=1689645&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/GroupTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/user/GroupTest.java Tue Jul 7 12:43:33 2015
@@ -23,8 +23,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
-
import javax.jcr.RepositoryException;
+import javax.jcr.Session;
import javax.jcr.UnsupportedRepositoryOperationException;
import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -766,6 +766,88 @@ public class GroupTest extends AbstractU
checkDeclaredMemberOf(user2, grp1.getID());
}
+ @Test
+ public void testRemoveMembership() throws RepositoryException {
+ String grId2 = createGroupId();
+ Group gr2 = null;
+
+ try {
+ gr2 = userMgr.createGroup(grId2);
+ gr2.addMember(user);
+ superuser.save();
+
+ Iterator<Group> groups = user.declaredMemberOf();
+ while (groups.hasNext()) {
+ Group group = groups.next();
+ group.removeMember(user);
+ superuser.save();
+ }
+
+ assertFalse(userMgr.getAuthorizable(group.getID(), Group.class).isDeclaredMember(user));
+ assertFalse(userMgr.getAuthorizable(grId2, Group.class).isDeclaredMember(user));
+
+ groups = user.declaredMemberOf();
+ while (groups.hasNext()) {
+ String id = groups.next().getID();
+ assertFalse(group.getID().equals(id));
+ assertFalse(grId2.equals(id));
+ }
+ } finally {
+ if (gr2 != null) {
+ gr2.remove();
+ superuser.save();
+ }
+ }
+ }
+
+ @Test
+ public void testRemoveMembershipWithDifferentSessions() throws Exception {
+ String grId2 = createGroupId();
+ Group gr2 = null;
+
+ Session s2 = null;
+ Session s3 = null;
+
+ try {
+ gr2 = userMgr.createGroup(grId2);
+ gr2.addMember(user);
+ superuser.save();
+
+ s2 = getHelper().getReadWriteSession();
+ Authorizable u2 = getUserManager(s2).getAuthorizable(user.getID());
+
+ Iterator<Group> groups = u2.declaredMemberOf();
+ while (groups.hasNext()) {
+ Group group = groups.next();
+ group.removeMember(u2);
+ }
+ s2.save();
+
+ s3 = getHelper().getReadWriteSession();
+ Authorizable u3 = getUserManager(s3).getAuthorizable(user.getID());
+ assertFalse(getUserManager(s3).getAuthorizable(group.getID(), Group.class).isDeclaredMember(u3));
+ assertFalse(getUserManager(s3).getAuthorizable(grId2, Group.class).isDeclaredMember(u3));
+
+ groups = u3.declaredMemberOf();
+ while (groups.hasNext()) {
+ String id = groups.next().getID();
+ assertFalse(group.getID().equals(id));
+ assertFalse(grId2.equals(id));
+ }
+ } finally {
+ if (gr2 != null) {
+ gr2.remove();
+ superuser.save();
+ }
+ if (s2 != null) {
+ s2.logout();
+ }
+ if (s3 != null) {
+ s3.logout();
+ }
+ }
+ }
+
private void checkDeclaredMembers(Group grp, String ... ids) throws RepositoryException {
TreeSet<String> members = new TreeSet<String>();
Iterator<Authorizable> iter = grp.getMembers();