aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lisp/vc/vc-tests/vc-tests.el66
1 files changed, 65 insertions, 1 deletions
diff --git a/test/lisp/vc/vc-tests/vc-tests.el b/test/lisp/vc/vc-tests/vc-tests.el
index 788db646db3..ed0f2597bd0 100644
--- a/test/lisp/vc/vc-tests/vc-tests.el
+++ b/test/lisp/vc/vc-tests/vc-tests.el
@@ -624,6 +624,54 @@ This checks also `vc-backend' and `vc-responsible-backend'."
624 (ignore-errors 624 (ignore-errors
625 (run-hooks 'vc-test--cleanup-hook)))))) 625 (run-hooks 'vc-test--cleanup-hook))))))
626 626
627(defun vc-test--rename-directory (backend)
628 "Check the rename-file action for directories."
629 (ert-with-temp-directory tempdir
630 (let ((vc-handled-backends `(,backend))
631 (default-directory
632 (file-name-as-directory
633 (expand-file-name
634 (make-temp-name "vc-test") temporary-file-directory)))
635 (process-environment process-environment)
636 vc-test--cleanup-hook)
637 (vc--fix-home-for-bzr tempdir)
638 (unwind-protect
639 (progn
640 ;; Cleanup.
641 (add-hook
642 'vc-test--cleanup-hook
643 (let ((dir default-directory))
644 (lambda () (delete-directory dir 'recursive))))
645
646 ;; Create empty repository.
647 (make-directory default-directory)
648 (vc-test--create-repo-function backend)
649
650 (let* ((tmp-dir (expand-file-name "dir1/" default-directory))
651 (tmp-name1 (expand-file-name "foo" tmp-dir))
652 (tmp-name2 (expand-file-name "bar" tmp-dir))
653 (new-dir (expand-file-name "dir2/" default-directory))
654 (new-name1 (expand-file-name "foo" new-dir))
655 (new-name2 (expand-file-name "bar" new-dir)))
656 (make-directory tmp-dir)
657 (write-region "foo" nil tmp-name1 nil 'nomessage)
658 (write-region "bar" nil tmp-name2 nil 'nomessage)
659 ;; Register TMP-NAME1 but *not* TMP-NAME2.
660 (vc-register `(,backend
661 (,(file-relative-name tmp-name1
662 default-directory))))
663
664 (vc-rename-file (directory-file-name tmp-dir)
665 (directory-file-name new-dir))
666 (should-not (file-exists-p tmp-name1))
667 (should-not (file-exists-p tmp-name2))
668 (should (file-exists-p new-name1))
669 (should (file-exists-p new-name2))))
670
671 ;; Save exit.
672 (ignore-errors
673 (run-hooks 'vc-test--cleanup-hook))))))
674
627(defvar vc-hg-global-switches) 675(defvar vc-hg-global-switches)
628 676
629(defmacro vc-test--with-author-identity (backend &rest body) 677(defmacro vc-test--with-author-identity (backend &rest body)
@@ -1222,7 +1270,23 @@ This checks also `vc-backend' and `vc-responsible-backend'."
1222 ',(intern 1270 ',(intern
1223 (format "vc-test-%s01-register" backend-string)))))) 1271 (format "vc-test-%s01-register" backend-string))))))
1224 (skip-unless (memq ',backend '(Git Hg))) 1272 (skip-unless (memq ',backend '(Git Hg)))
1225 (vc-test--checkin-patch ',backend)))))) 1273 (vc-test--checkin-patch ',backend))
1274
1275 (ert-deftest
1276 ,(intern (format "vc-test-%s10-rename-directory" backend-string)) ()
1277 ,(format "Check `vc-rename-file' with directories for the %s backend."
1278 backend-string)
1279 (skip-unless
1280 (ert-test-passed-p
1281 (ert-test-most-recent-result
1282 (ert-get-test
1283 ',(intern
1284 (format "vc-test-%s01-register" backend-string))))))
1285 ;; See vc-test-*-rename-file regarding CVS and Mtn.
1286 ;; SVN requires all files to rename are registered but we want
1287 ;; to test a mix of registered and unregistered files in this test.
1288 (skip-when (memq ',backend '(CVS SVN Mtn)))
1289 (vc-test--rename-directory ',backend))))))
1226 1290
1227(provide 'vc-tests) 1291(provide 'vc-tests)
1228;;; vc-tests.el ends here 1292;;; vc-tests.el ends here