Author: stefan2
Date: Wed Oct 12 11:01:57 2016
New Revision: 1764438

URL: http://svn.apache.org/viewvc?rev=1764438&view=rev
Log:
On the authzperf branch:
Some test cleanup.

* subversion/tests/libsvn_repos/repos-test.c
  (test_authz_pattern_tests): Add commentary and strengthen one test case.

Modified:
    subversion/branches/authzperf/subversion/tests/libsvn_repos/repos-test.c

Modified: 
subversion/branches/authzperf/subversion/tests/libsvn_repos/repos-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/authzperf/subversion/tests/libsvn_repos/repos-test.c?rev=1764438&r1=1764437&r2=1764438&view=diff
==============================================================================
--- subversion/branches/authzperf/subversion/tests/libsvn_repos/repos-test.c 
(original)
+++ subversion/branches/authzperf/subversion/tests/libsvn_repos/repos-test.c 
Wed Oct 12 11:01:57 2016
@@ -1638,6 +1638,7 @@ test_authz_pattern_tests(apr_pool_t *poo
     { NULL, NULL, NULL, svn_authz_none, FALSE }
   };
 
+  /* Global override via "**" and selective override for a specific path. */
   const char *contents2 =
     "[:glob:/X]"                                                            NL
     "user1 ="                                                               NL
@@ -1676,6 +1677,7 @@ test_authz_pattern_tests(apr_pool_t *poo
     { NULL, NULL, NULL, svn_authz_none, FALSE }
   };
 
+  /* Global patterns vs. global path rules. */
   const char *contents3 =
     "[groups]"                                                              NL
     "Team1 = user1"                                                         NL
@@ -1692,15 +1694,19 @@ test_authz_pattern_tests(apr_pool_t *poo
 
   /* Definition of the paths to test and expected replies for each. */
   struct check_access_tests test_set3[] = {
-    /* No access at the root*/
+    /* No access at the root of Repo1 (inherited from global settings) */
     { "/", "Repo1", "user1", svn_authz_read, FALSE },
     { "/", "Repo1", "user2", svn_authz_read, FALSE },
+
+    /* r/o access for both users at the root of Repo2 */
     { "/", "Repo2", "user1", svn_authz_read, TRUE },
     { "/", "Repo2", "user2", svn_authz_read, TRUE },
     { "/", "Repo2", "user1", svn_authz_write, FALSE },
     { "/", "Repo2", "user2", svn_authz_write, FALSE },
 
-    /* User 1 has recursive write access anywhere. */
+    /* user1 has recursive write access (b/c there are no further rules
+     * restricting the access once granted at the parent) wherever there is
+     * a "folder..." in the  path, while user2 has no access at all. */
     { "/folder_1", "Repo1", "user1",
       svn_authz_write | svn_authz_recursive, TRUE },
     { "/folder_1", "Repo1", "user2", svn_authz_read, FALSE },
@@ -1712,6 +1718,8 @@ test_authz_pattern_tests(apr_pool_t *poo
     { "/foo/bar/folder", "Repo1", "user1",
       svn_authz_write | svn_authz_recursive, TRUE },
     { "/foo/bar/folder", "Repo1", "user2", svn_authz_read, FALSE },
+
+    /* Doesn't quite match the pattern: */
     { "/foo/bar/folde", "Repo1", "user1", svn_authz_read, FALSE },
     { "/foo/bar/folde", "Repo1", "user2", svn_authz_read, FALSE },
 
@@ -1719,6 +1727,11 @@ test_authz_pattern_tests(apr_pool_t *poo
     { NULL, NULL, NULL, svn_authz_none, FALSE }
   };
 
+  /* Illustrate the difference between "matching" rule and "applying" rule.
+   * "*" only _matches_ a single level and will _apply_ to sub-paths only
+   * if no other rule _applies_.  The "**" rule applies to all paths in
+   * trunk and will only be eclipsed for members of team1 and then only for
+   * the first sub-level. */
   const char *contents4 =
     "[groups]"                                                              NL
     "team1 = user1, user3"                                                  NL
@@ -1747,8 +1760,10 @@ test_authz_pattern_tests(apr_pool_t *poo
 
     /* At the second sub-level, team2 has full write access;
      * the remainder of team1 has still r/o access. */
-    { "/trunk/A/B", "Repo1", "user2", svn_authz_write, TRUE },
-    { "/trunk/A/B", "Repo1", "user3", svn_authz_write, TRUE },
+    { "/trunk/A/B", "Repo1", "user2",
+      svn_authz_write | svn_authz_recursive, TRUE },
+    { "/trunk/A/B", "Repo1", "user3",
+      svn_authz_write | svn_authz_recursive, TRUE },
     { "/trunk/A/B", "Repo1", "user1", svn_authz_read, TRUE },
     { "/trunk/A/B", "Repo1", "user1", svn_authz_write, FALSE },
 


Reply via email to