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/02/20 14:13:27 UTC

svn commit: r1783769 - in /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak: ./ security/principal/ security/user/ security/user/autosave/ security/user/query/

Author: angela
Date: Mon Feb 20 14:13:27 2017
New Revision: 1783769

URL: http://svn.apache.org/viewvc?rev=1783769&view=rev
Log:
OAK-5689 : AbstractSecurityTest: enforce test-failure for traversal queries (wip)

Modified:
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/EveryoneGroupTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/autosave/AutoSaveEnabledManagerTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java Mon Feb 20 14:13:27 2017
@@ -54,6 +54,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
 import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
 import org.apache.jackrabbit.oak.plugins.version.VersionHook;
+import org.apache.jackrabbit.oak.query.QueryEngineSettings;
 import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
@@ -80,6 +81,8 @@ public abstract class AbstractSecurityTe
     protected ContentSession adminSession;
     protected Root root;
 
+    protected QueryEngineSettings querySettings;
+
     @Before
     public void before() throws Exception {
         Oak oak = new Oak()
@@ -93,6 +96,7 @@ public abstract class AbstractSecurityTe
                 .with(new PropertyIndexProvider())
                 .with(new TypeEditorProvider())
                 .with(new ConflictValidatorProvider())
+                .with(getQueryEngineSettings())
                 .with(getSecurityProvider());
         withEditors(oak);
         contentRepository = oak.createContentRepository();
@@ -133,6 +137,14 @@ public abstract class AbstractSecurityTe
         return oak;
     }
 
+    protected QueryEngineSettings getQueryEngineSettings() {
+        if (querySettings == null) {
+            querySettings = new QueryEngineSettings();
+            querySettings.setFailTraversal(true);
+        }
+        return querySettings;
+    }
+
     protected ConfigurationParameters getSecurityConfigParameters() {
         return ConfigurationParameters.EMPTY;
     }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java Mon Feb 20 14:13:27 2017
@@ -41,6 +41,9 @@ public class PrincipalProviderImplTest e
 
     @Test
     public void testEveryoneMembers() throws Exception {
+        // FIXME: check, why this query causes a traversal despite the existence of an index
+        getQueryEngineSettings().setFailTraversal(false);
+
         Principal everyone = principalProvider.getPrincipal(EveryonePrincipal.NAME);
         assertTrue(everyone instanceof EveryonePrincipal);
 
@@ -64,6 +67,8 @@ public class PrincipalProviderImplTest e
             }
 
         } finally {
+            getQueryEngineSettings().setFailTraversal(true);
+
             if (everyoneGroup != null) {
                 everyoneGroup.remove();
                 root.commit();

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/EveryoneGroupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/EveryoneGroupTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/EveryoneGroupTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/EveryoneGroupTest.java Mon Feb 20 14:13:27 2017
@@ -102,16 +102,25 @@ public class EveryoneGroupTest extends A
 
     @Test
     public void testGetMembers() throws Exception {
-        Set<Authorizable> members = ImmutableSet.copyOf(everyoneGroup.getMembers());
+        // FIXME: check, why this query causes a traversal despite the existence of an index
+        getQueryEngineSettings().setFailTraversal(false);
 
-        assertFalse(members.contains(everyoneGroup));
-        for (Authorizable a : authorizables) {
-            assertTrue(members.contains(a));
+        try {
+            Set<Authorizable> members = ImmutableSet.copyOf(everyoneGroup.getMembers());
+
+            assertFalse(members.contains(everyoneGroup));
+            for (Authorizable a : authorizables) {
+                assertTrue(members.contains(a));
+            }
+        } finally {
+            getQueryEngineSettings().setFailTraversal(true);
         }
     }
 
     @Test
     public void testGetDeclaredMembers() throws Exception {
+        getQueryEngineSettings().setFailTraversal(false);
+
         Set<Authorizable> members = ImmutableSet.copyOf(everyoneGroup.getDeclaredMembers());
 
         assertFalse(members.contains(everyoneGroup));

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java Mon Feb 20 14:13:27 2017
@@ -284,11 +284,18 @@ public class UserManagerImplTest extends
 
     @Test
     public void testFindWithNullValue() throws RepositoryException {
-        Iterator<Authorizable> result = userMgr.findAuthorizables(UserConstants.REP_PRINCIPAL_NAME, null);
-        assertTrue(result.hasNext());
+        // FIXME: check, why this query causes a traversal despite the existence of an index
+        getQueryEngineSettings().setFailTraversal(false);
 
-        result = userMgr.findAuthorizables("./"+UserConstants.REP_PRINCIPAL_NAME, null);
-        assertTrue(result.hasNext());
+        try {
+            Iterator<Authorizable> result = userMgr.findAuthorizables(UserConstants.REP_PRINCIPAL_NAME, null);
+            assertTrue(result.hasNext());
+
+            result = userMgr.findAuthorizables("./" + UserConstants.REP_PRINCIPAL_NAME, null);
+            assertTrue(result.hasNext());
+        } finally {
+            getQueryEngineSettings().setFailTraversal(true);
+        }
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java Mon Feb 20 14:13:27 2017
@@ -139,6 +139,9 @@ public class UserPrincipalProviderTest e
 
     @Test
     public void testEveryoneMembers() throws Exception {
+        // FIXME: check, why this query causes a traversal despite the existence of an index
+        getQueryEngineSettings().setFailTraversal(false);
+
         Principal everyone = principalProvider.getPrincipal(EveryonePrincipal.NAME);
         assertTrue(everyone instanceof EveryonePrincipal);
 
@@ -155,6 +158,8 @@ public class UserPrincipalProviderTest e
             ((java.security.acl.Group) ep).isMember(getTestUser().getPrincipal());
 
         } finally {
+            getQueryEngineSettings().setFailTraversal(true);
+
             if (everyoneGroup != null) {
                 everyoneGroup.remove();
                 root.commit();

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/autosave/AutoSaveEnabledManagerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/autosave/AutoSaveEnabledManagerTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/autosave/AutoSaveEnabledManagerTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/autosave/AutoSaveEnabledManagerTest.java Mon Feb 20 14:13:27 2017
@@ -93,12 +93,19 @@ public class AutoSaveEnabledManagerTest
 
     @Test
     public void testFindAuthorizable() throws RepositoryException {
-        Iterator<Authorizable> res = mgr.findAuthorizables(UserConstants.REP_AUTHORIZABLE_ID, UserConstants.DEFAULT_ANONYMOUS_ID);
-        assertTrue(res.hasNext());
+        // FIXME: check, why this query causes a traversal despite the existence of an index
+        getQueryEngineSettings().setFailTraversal(false);
 
-        Authorizable a = res.next();
-        assertNotNull(a);
-        assertTrue(a instanceof AuthorizableImpl);
+        try {
+            Iterator<Authorizable> res = mgr.findAuthorizables(UserConstants.REP_AUTHORIZABLE_ID, UserConstants.DEFAULT_ANONYMOUS_ID);
+            assertTrue(res.hasNext());
+
+            Authorizable a = res.next();
+            assertNotNull(a);
+            assertTrue(a instanceof AuthorizableImpl);
+        } finally {
+            getQueryEngineSettings().setFailTraversal(true);
+        }
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java?rev=1783769&r1=1783768&r2=1783769&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java Mon Feb 20 14:13:27 2017
@@ -55,6 +55,14 @@ public class UserQueryManagerTest extend
 
         valueFactory = new ValueFactoryImpl(root, namePathMapper);
         propertyName = "testProperty";
+
+        getQueryEngineSettings().setFailTraversal(false);
+    }
+
+    @Override
+    public void after() throws Exception {
+        getQueryEngineSettings().setFailTraversal(true);
+        super.after();
     }
 
     /**