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 2017/05/11 16:07:59 UTC
svn commit: r1794851 - in
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak:
security/user/action/ spi/security/user/action/
Author: angela
Date: Thu May 11 16:07:58 2017
New Revision: 1794851
URL: http://svn.apache.org/viewvc?rev=1794851&view=rev
Log:
OAK-6038 : Drop dependency of spi.security.* tests from AbstractSecurityTest (wip
Added:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java
- copied, changed from r1794697, jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java
Copied: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java (from r1794697, jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java?p2=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java&p1=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java&r1=1794697&r2=1794851&rev=1794851&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java Thu May 11 16:07:58 2017
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.jackrabbit.oak.spi.security.user.action;
+package org.apache.jackrabbit.oak.security.user.action;
import java.util.UUID;
@@ -23,11 +23,18 @@ import org.apache.jackrabbit.api.securit
import org.apache.jackrabbit.oak.AbstractSecurityTest;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.user.action.ClearMembershipAction;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+/**
+ * Integration tests for {@link ClearMembershipAction} including a complete
+ * security setup.
+ *
+ * @see {@link org.apache.jackrabbit.oak.spi.security.user.action.ClearMembershipActionTest}
+ */
public class ClearMembershipActionTest extends AbstractSecurityTest {
private ClearMembershipAction action;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java?rev=1794851&r1=1794850&r2=1794851&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java Thu May 11 16:07:58 2017
@@ -106,11 +106,6 @@ public class AccessControlActionTest imp
return gr;
}
- @Test
- public void testInit() {
- // TODO
- }
-
@Test(expected = IllegalStateException.class)
public void testOnCreateUserMissingSecurityProvider() throws Exception {
new AccessControlAction().onCreate(Mockito.mock(User.class), null, root, NamePathMapper.DEFAULT);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java?rev=1794851&r1=1794850&r2=1794851&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java Thu May 11 16:07:58 2017
@@ -16,85 +16,190 @@
*/
package org.apache.jackrabbit.oak.spi.security.user.action;
-import java.util.UUID;
+import java.security.Principal;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import javax.jcr.RepositoryException;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.Value;
+import com.google.common.collect.Iterators;
+import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.User;
-import org.apache.jackrabbit.oak.AbstractSecurityTest;
+import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
-public class ClearMembershipActionTest extends AbstractSecurityTest {
+public class ClearMembershipActionTest {
- private ClearMembershipAction action;
+ private final ClearMembershipAction action = new ClearMembershipAction();
- private Group gr;
+ private final Root root = Mockito.mock(Root.class);
+ private final SecurityProvider securityProvider = Mockito.mock(SecurityProvider.class);
- @Override
- public void before() throws Exception {
- super.before();
-
- gr = getUserManager(root).createGroup("gr" + UUID.randomUUID().toString());
- root.commit();
+ private final UserManager userManager = Mockito.mock(UserManager.class);
+ private final UserConfiguration userConfiguration = Mockito.mock(UserConfiguration.class);
- action = new ClearMembershipAction();
- action.init(getSecurityProvider(), ConfigurationParameters.EMPTY);
- }
+ private final User user = Mockito.mock(User.class);
+ private final TestGroup gr = new TestGroup();
- @Override
- public void after() throws Exception {
- try {
- if (gr != null) {
- gr.remove();
- root.commit();
- }
- } finally {
- super.after();
- }
+ @Before
+ public void before() throws Exception {
+ action.init(securityProvider, ConfigurationParameters.EMPTY);
}
@Test
- public void testOnCreateUser() throws Exception {
- action.onCreate(getTestUser(), "pw", root, NamePathMapper.DEFAULT);
- assertFalse(root.hasPendingChanges());
+ public void testOnRemoveUserNoMembership() throws Exception {
+ when(user.declaredMemberOf()).thenReturn(Iterators.emptyIterator());
+ action.onRemove(user, root, NamePathMapper.DEFAULT);
}
@Test
- public void testOnCreateGroup() throws Exception {
- action.onCreate(gr, root, NamePathMapper.DEFAULT);
- assertFalse(root.hasPendingChanges());
+ public void testOnRemoveGroupNoMembership() throws Exception {
+ action.onRemove(gr, root, NamePathMapper.DEFAULT);
}
@Test
- public void testOnPwChange() throws Exception {
- action.onPasswordChange(getTestUser(), "newPw", root, NamePathMapper.DEFAULT);
- assertFalse(root.hasPendingChanges());
- }
+ public void testOnRemoveUserWithMembership() throws Exception {
+ when(user.declaredMemberOf()).thenReturn(Iterators.singletonIterator(gr));
- @Test
- public void testOnRemoveUserNoMembership() throws Exception {
- action.onRemove(getTestUser(), root, NamePathMapper.DEFAULT);
- assertFalse(root.hasPendingChanges());
+ action.onRemove(user, root, NamePathMapper.DEFAULT);
+ assertTrue(gr.removed.contains(user));
}
@Test
- public void testOnRemoveGroupNoMembership() throws Exception {
- action.onRemove(gr, root, NamePathMapper.DEFAULT);
- assertFalse(root.hasPendingChanges());
+ public void testOnRemoveGroupWithMembership() throws Exception {
+ Group memberGroup = Mockito.mock(Group.class);
+ when(memberGroup.declaredMemberOf()).thenReturn(Iterators.singletonIterator(gr));
+
+ action.onRemove(memberGroup, root, NamePathMapper.DEFAULT);
+ assertTrue(gr.removed.contains(memberGroup));
}
- @Test
- public void testOnRemoveUserWithMembership() throws Exception {
- User u = getTestUser();
- gr.addMember(u);
- root.commit();
-
- action.onRemove(u, root, NamePathMapper.DEFAULT);
- assertTrue(root.hasPendingChanges());
- assertFalse(gr.isDeclaredMember(u));
+
+ private static final class TestGroup implements Group {
+
+ Set<Authorizable> removed = new HashSet<>();
+
+ @Override
+ public Iterator<Authorizable> getDeclaredMembers() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Iterator<Authorizable> getMembers() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isDeclaredMember(Authorizable authorizable) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isMember(Authorizable authorizable) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean addMember(Authorizable authorizable) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Set<String> addMembers(String... strings) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean removeMember(Authorizable authorizable) throws RepositoryException {
+ return removed.add(authorizable);
+ }
+
+ @Override
+ public Set<String> removeMembers(String... strings) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getID() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isGroup() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Principal getPrincipal() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Iterator<Group> declaredMemberOf() throws RepositoryException {
+ return Iterators.emptyIterator();
+ }
+
+ @Override
+ public Iterator<Group> memberOf() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void remove() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Iterator<String> getPropertyNames() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Iterator<String> getPropertyNames(String s) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean hasProperty(String s) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setProperty(String s, Value value) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setProperty(String s, Value[] values) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Value[] getProperty(String s) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean removeProperty(String s) throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getPath() throws UnsupportedRepositoryOperationException, RepositoryException {
+ throw new UnsupportedOperationException();
+ }
}
}
\ No newline at end of file