You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2010/05/26 15:17:18 UTC

svn commit: r948421 - /subversion/trunk/subversion/tests/cmdline/lock_tests.py

Author: rhuijben
Date: Wed May 26 13:17:18 2010
New Revision: 948421

URL: http://svn.apache.org/viewvc?rev=948421&view=rev
Log:
Add a path escaping regression test for the lock code.

* subversion/tests/cmdline/lock_tests.py
  (verify_path_escaping): New function.
  (test_list): Add verify_path_escaping.

Modified:
    subversion/trunk/subversion/tests/cmdline/lock_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/lock_tests.py?rev=948421&r1=948420&r2=948421&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/lock_tests.py Wed May 26 13:17:18 2010
@@ -1472,6 +1472,43 @@ def lock_path_not_in_head(sbox):
   svntest.actions.run_and_verify_svn2(None, None, expected_lock_fail_err_re,
                                       0, 'lock', lambda_path)
 
+def verify_path_escaping(sbox):
+  "verify escaping of lock paths"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  # Add test paths using two characters that need escaping in a url, but
+  # are within the normal ascii range
+  file1 = os.path.join(wc_dir, 'file #1')
+  file2 = os.path.join(wc_dir, 'file #2')
+  file3 = os.path.join(wc_dir, 'file #3')
+
+  svntest.main.file_write(file1, 'File 1')
+  svntest.main.file_write(file2, 'File 2')
+  svntest.main.file_write(file3, 'File 3')
+
+  svntest.main.run_svn(None, 'add', file1, file2, file3)
+
+  svntest.main.run_svn(None, 'ci', '-m', 'commit', wc_dir)
+
+  svntest.main.run_svn(None, 'lock', '-m', 'lock 1', file1)
+  svntest.main.run_svn(None, 'lock', '-m', 'lock 2', sbox.repo_url + '/file%20%232')
+  svntest.main.run_svn(None, 'lock', '-m', 'lock 3', file3)
+  svntest.main.run_svn(None, 'unlock', sbox.repo_url + '/file%20%233')
+
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.add(
+    {
+      'file #1'           : Item(status='  ', writelocked='K', wc_rev='2'),
+      'file #2'           : Item(status='  ', writelocked='O', wc_rev='2'),
+      'file #3'           : Item(status='  ', writelocked='B', wc_rev='2')
+    });
+
+  # Make sure the file locking is reported correctly
+  svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+
 ########################################################################
 # Run the tests
 
@@ -1515,6 +1552,7 @@ test_list = [ None,
               lock_funky_comment_chars,
               lock_twice_in_one_wc,
               lock_path_not_in_head,
+              verify_path_escaping,
             ]
 
 if __name__ == '__main__':