Hi,
Sorry for posting an older patch. Now attached the correct patch. Please share your views. Thanks and regards Prabhu On Tuesday 08 February 2011 04:41 PM, Kamesh Jayachandran wrote:
Prabhu, Please send the patch against the current HEAD. With regards Kamesh Jayachandran
Index: subversion/tests/cmdline/authz_tests.py =================================================================== --- subversion/tests/cmdline/authz_tests.py (revision 1068337) +++ subversion/tests/cmdline/authz_tests.py (working copy) @@ -1084,6 +1084,99 @@ [], 'ls', '-R', sbox.repo_url) +@Skip(svntest.main.is_ra_type_file) +def case_sensitive_authz(sbox): + "authz issue #3781, check case sensitiveness" + + sbox.build() + + wc_dir = sbox.wc_dir + write_restrictive_svnserve_conf(sbox.repo_dir) + + mu_path = os.path.join(wc_dir, 'A', 'mu') + mu_url = sbox.repo_url + '/A/mu' + mu_repo_path = sbox.repo_dir + "/A/mu" + svntest.main.file_append(mu_path, "hi") + + # Create expected output tree. + expected_output = svntest.wc.State(wc_dir, { + 'A/mu' : Item(verb='Sending'), + }) + + # error messages + expected_error_for_commit = "Commit failed" + expected_error_for_cat = "svn: E175013: Unable to connect to a repository"+ \ + " at URL '" + mu_url + "'\n" + \ + "svn: E175013: Access to '/" + mu_repo_path + \ + "' forbidden\n" + \ + "svn: E175009: XML parsing failed: (403 Forbidden)" + + # test the case-sensitivity of the path inside the repo + write_authz_file(sbox, {"/": "jrandom = r", + "/A/mu": "jrandom =", "/a/Mu": "jrandom = rw"}) + svntest.actions.run_and_verify_svn2(None, None, + expected_error_for_cat, + 1, 'cat', mu_url) + + write_authz_file(sbox, {"/": "jrandom = r", + "/A": "jrandom = r", + "/a/Mu": "jrandom = rw"}) + # Commit the file. + svntest.actions.run_and_verify_commit(wc_dir, + None, + None, + expected_error_for_commit, + mu_path) + + def mixcases(repo_name): + mixed_repo_name = '' + for i in range(0, len(repo_name)): + if i % 2 == 0: + mixed_val = repo_name[i].upper() + mixed_repo_name = mixed_repo_name + mixed_val + else: + mixed_val = repo_name[i].lower() + mixed_repo_name = mixed_repo_name + mixed_val + return mixed_repo_name + + mixed_case_repo_dir = mixcases(os.path.basename(sbox.repo_dir)) + + # test the case-sensitivity of the repo name + write_authz_file(sbox, {}, + sections = {mixed_case_repo_dir + ":/": "jrandom = r", + mixed_case_repo_dir + ":/A": "jrandom = r", + sbox.repo_dir + ":/A/mu": "jrandom =", + mixed_case_repo_dir + ":/A/mu": "jrandom = rw"}) + svntest.actions.run_and_verify_svn2(None, None, + expected_error_for_cat, + 1, 'cat', mu_url) + + write_authz_file(sbox, {}, + sections = {mixed_case_repo_dir + ":/": "jrandom = r", + mixed_case_repo_dir + ":/A": "jrandom = r", + mixed_case_repo_dir + ":/A/mu": "jrandom = rw"}) + + # Commit the file again. + svntest.actions.run_and_verify_commit(wc_dir, + None, + None, + expected_error_for_commit, + mu_path) + + # test the case-sensitivity + write_authz_file(sbox, {"/": "jrandom = r", + "/A": "jrandom = r", "/A/mu": "jrandom = rw"}) + + svntest.actions.run_and_verify_svn2('No error', + svntest.verify.AnyOutput, [], + 0, 'cat', mu_url) + # Commit the file. + svntest.actions.run_and_verify_commit(wc_dir, + expected_output, + None, + None, + mu_path) + ######################################################################## # Run the tests @@ -1108,6 +1201,7 @@ multiple_matches, wc_wc_copy_revert, authz_recursive_ls, + case_sensitive_authz, ] serial_only = True
[[[ XFail testcase for the issue 3781 * subversion/tests/cmdline/authz_tests.py (case_sensitive_authz, test_list): New XFail test for the issue 3781 Patch by: Prabhu Gnana Sundar <prabhugs{_AT_}collab.net> Reviewed by: Kamesh Jayachandran <kamesh{_AT_}collab.net> ]]]