You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2008/04/03 10:15:04 UTC

svn commit: r644215 [3/3] - in /jackrabbit/trunk/jackrabbit-core/src: main/java/org/apache/jackrabbit/core/security/ main/java/org/apache/jackrabbit/core/security/authorization/ main/java/org/apache/jackrabbit/core/security/authorization/acl/ main/java...

Added: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/GlobPatternTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/GlobPatternTest.java?rev=644215&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/GlobPatternTest.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/GlobPatternTest.java Thu Apr  3 01:15:01 2008
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.security.authorization.combined;
+
+import org.apache.jackrabbit.test.JUnitTest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * <code>GlobPatternTest</code>...
+ */
+public class GlobPatternTest extends JUnitTest {
+
+    private static Logger log = LoggerFactory.getLogger(GlobPatternTest.class);
+
+    public void testMatches() {
+        // TODO
+    }
+
+    public void testMatchesItem() {
+       // TODO
+    }
+}
\ No newline at end of file

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/GlobPatternTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/GlobPatternTest.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision url

Added: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyEntryImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyEntryImplTest.java?rev=644215&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyEntryImplTest.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyEntryImplTest.java Thu Apr  3 01:15:01 2008
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.security.authorization.combined;
+
+import org.apache.jackrabbit.core.security.authorization.AbstractPolicyEntryTest;
+import org.apache.jackrabbit.core.security.authorization.PolicyEntry;
+import org.apache.jackrabbit.core.security.authorization.PrivilegeRegistry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.security.Principal;
+
+/**
+ * <code>PolicyEntryImplTest</code>...
+ */
+public class PolicyEntryImplTest extends AbstractPolicyEntryTest {
+
+    private static Logger log = LoggerFactory.getLogger(PolicyEntryImplTest.class);
+
+    private String nodePath;
+    private String glob;
+
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        nodePath = "/a/b/c/d";
+        glob = "*";
+    }
+
+    protected PolicyEntry createPolicyEntry(Principal principal, int privileges, boolean isAllow) {
+        return new PolicyEntryImpl(principal, privileges, isAllow, nodePath, glob);
+    }
+
+    public void testPrincipalMustNotBeNull() {
+        try {
+            PolicyEntry pe = new PolicyEntryImpl(null, PrivilegeRegistry.ALL, true, nodePath, glob);
+            fail("Principal must not be null");
+        } catch (IllegalArgumentException e) {
+            // success
+        }
+    }
+
+    public void testNodePathMustNotBeNull() {
+        try {
+            PolicyEntry pe = new PolicyEntryImpl(testPrincipal, PrivilegeRegistry.ALL, true, null, glob);
+            fail("NodePath must not be null");
+        } catch (IllegalArgumentException e) {
+            // success
+        }
+    }
+
+    public void testGetNodePath() {
+        PolicyEntryImpl pe = new PolicyEntryImpl(testPrincipal, PrivilegeRegistry.ALL, true, nodePath, glob);
+        assertEquals(nodePath, pe.getNodePath());
+    }
+
+    public void testGetGlob() {
+        PolicyEntryImpl pe = new PolicyEntryImpl(testPrincipal, PrivilegeRegistry.ALL, true, nodePath, glob);
+        assertEquals(glob, pe.getGlob());
+
+        pe = new PolicyEntryImpl(testPrincipal, PrivilegeRegistry.ALL, true, nodePath, null);
+        assertNull(pe.getGlob());
+
+        pe = new PolicyEntryImpl(testPrincipal, PrivilegeRegistry.ALL, true, nodePath, "");
+        assertEquals("", pe.getGlob());
+    }
+
+    public void testMatches() throws RepositoryException {
+        PolicyEntryImpl pe = new PolicyEntryImpl(testPrincipal,
+                PrivilegeRegistry.ALL, true, nodePath, glob);
+
+        // TODO: review again
+        List toMatch = new ArrayList();
+        toMatch.add(nodePath + "/any");
+        toMatch.add(nodePath + "/anyother");
+        toMatch.add(nodePath + "/f/g/h");
+        toMatch.add(nodePath);
+        for (Iterator it = toMatch.iterator(); it.hasNext();) {
+            String str = it.next().toString();
+            assertTrue(pe.getNodePath() + pe.getGlob() + " should match " + str, pe.matches(str));
+        }
+
+        List notToMatch = new ArrayList();
+        notToMatch.add(null);
+        notToMatch.add("");
+        notToMatch.add("/");
+        notToMatch.add("/a/b/c/");
+        for (Iterator it = notToMatch.iterator(); it.hasNext();) {
+            Object obj = it.next();
+            String str = (obj == null) ? null : obj.toString();
+            assertFalse(pe.getNodePath() + pe.getGlob() + " shouldn't match " + str, pe.matches(str));
+        }
+    }
+}
\ No newline at end of file

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyEntryImplTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyEntryImplTest.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision url

Added: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyTemplateImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyTemplateImplTest.java?rev=644215&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyTemplateImplTest.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyTemplateImplTest.java Thu Apr  3 01:15:01 2008
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.security.authorization.combined;
+
+import org.apache.jackrabbit.core.security.authorization.AbstractPolicyTemplateTest;
+import org.apache.jackrabbit.core.security.authorization.PolicyTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Collections;
+
+/**
+ * <code>PolicyTemplateImplTest</code>...
+ */
+public class PolicyTemplateImplTest extends AbstractPolicyTemplateTest {
+
+    private static Logger log = LoggerFactory.getLogger(PolicyTemplateImplTest.class);
+
+    private String testPath = "/rep:accessControl/users/test";
+
+    protected String getTestPath() {
+        return testPath;
+    }
+
+    protected PolicyTemplate createEmptyTemplate(String testPath) {
+        return new PolicyTemplateImpl(Collections.EMPTY_LIST, testPrincipal, testPath);
+    }
+
+    public void testGetPrincipal() {
+        PolicyTemplateImpl pt = (PolicyTemplateImpl) createEmptyTemplate(testPath);
+        assertEquals(testPrincipal, pt.getPrincipal());
+    }
+}
\ No newline at end of file

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyTemplateImplTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/PolicyTemplateImplTest.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision url

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/TestAll.java?rev=644215&r1=644214&r2=644215&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/TestAll.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/authorization/combined/TestAll.java Thu Apr  3 01:15:01 2008
@@ -19,8 +19,12 @@
     public static Test suite() {
         TestSuite suite = new TestSuite("security.authorization.combined tests");
 
-        // TODO add tests
+        suite.addTestSuite(PolicyTemplateImplTest.class);
+        suite.addTestSuite(PolicyEntryImplTest.class);
+        suite.addTestSuite(GlobPatternTest.class);
 
+        //todo: add evaluation tests.
+        
         return suite;
     }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AbstractAccessControlTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AbstractAccessControlTest.java?rev=644215&r1=644214&r2=644215&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AbstractAccessControlTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AbstractAccessControlTest.java Thu Apr  3 01:15:01 2008
@@ -25,6 +25,7 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.Repository;
 
 /**
  * <code>AbstractAccessControlTest</code>...
@@ -46,11 +47,8 @@
         if (!(s instanceof SessionImpl)) {
             throw new NotExecutableException();
         }
-        /*
-        if (s.getRepository().getDescriptor(Repository.OPTION_SIMPLE_ACCESS_CONTROL_SUPPORTED) == null) {
-            throw new NotExecutableException();
-        }
-        */
+        // TODO: uncomment again.
+        // checkSupportedOption(Repository.OPTION_SIMPLE_ACCESS_CONTROL_SUPPORTED);
         try {
             return ((SessionImpl) s).getAccessControlManager();
         } catch (UnsupportedRepositoryOperationException e) {

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlDiscoveryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlDiscoveryTest.java?rev=644215&r1=644214&r2=644215&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlDiscoveryTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlDiscoveryTest.java Thu Apr  3 01:15:01 2008
@@ -32,13 +32,6 @@
  */
 public class AccessControlDiscoveryTest extends AbstractAccessControlTest {
 
-
-    protected void setUp() throws Exception {
-        super.setUp();
-        // TODO: test if options is supporte
-        //checkSupportedOption(superuser, Repository.OPTION_SIMPLE_ACCESS_CONTROL_SUPPORTED
-    }
-
     private Privilege getPrivilege(String name) throws RepositoryException, NotExecutableException {
         Privilege[] privileges = acMgr.getSupportedPrivileges(testRootNode.getPath());
         for (int i = 0; i < privileges.length; i++) {

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlPolicyIteratorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlPolicyIteratorTest.java?rev=644215&r1=644214&r2=644215&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlPolicyIteratorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/jsr283/security/AccessControlPolicyIteratorTest.java Thu Apr  3 01:15:01 2008
@@ -92,9 +92,10 @@
             throw new NotExecutableException();
         }
     }
-    /*
+
     // TODO: uncomment as soon as RangeIterator is adjusted.
-    public void testgetNumberRemaining() {
+    /*
+    public void testgetNumberRemaining() throws NotExecutableException, RepositoryException {
         checkCanReadAc(path);
         AccessControlPolicyIterator it = acMgr.getApplicablePolicies(path);
 

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/GroupAdministratorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/GroupAdministratorTest.java?rev=644215&r1=644214&r2=644215&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/GroupAdministratorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/GroupAdministratorTest.java Thu Apr  3 01:15:01 2008
@@ -342,6 +342,5 @@
             // ok.
         }
         assertFalse(impers.allows(buildSubject(selfPrinc)));
-
     }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/UserAdministratorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/UserAdministratorTest.java?rev=644215&r1=644214&r2=644215&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/UserAdministratorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/UserAdministratorTest.java Thu Apr  3 01:15:01 2008
@@ -143,6 +143,7 @@
         }
     }
 
+    // TODO: uncomment as soon as group-members are stored as weak references
     /*
     public void testRemoveHimSelf() throws RepositoryException, NotExecutableException {
         UserManager umgr = getUserManager(otherSession);