summaryrefslogtreecommitdiff
path: root/test/lisp/dired-tests.el
diff options
context:
space:
mode:
Diffstat (limited to 'test/lisp/dired-tests.el')
-rw-r--r--test/lisp/dired-tests.el179
1 files changed, 163 insertions, 16 deletions
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
index bd1816172e7..cd58edaa3f8 100644
--- a/test/lisp/dired-tests.el
+++ b/test/lisp/dired-tests.el
@@ -38,19 +38,21 @@
(file "test")
(full-name (expand-file-name file dir))
(regexp "bar")
- (dired-always-read-filesystem t))
+ (dired-always-read-filesystem t) buffers)
(if (file-exists-p dir)
(delete-directory dir 'recursive))
(make-directory dir)
(with-temp-file full-name (insert "foo"))
- (find-file-noselect full-name)
- (dired dir)
+ (push (find-file-noselect full-name) buffers)
+ (push (dired dir) buffers)
(with-temp-file full-name (insert "bar"))
(dired-mark-files-containing-regexp regexp)
(unwind-protect
(should (equal (dired-get-marked-files nil nil nil 'distinguish-1-mark)
`(t ,full-name)))
;; Clean up
+ (dolist (buf buffers)
+ (when (buffer-live-p buf) (kill-buffer buf)))
(delete-directory dir 'recursive))))
(ert-deftest dired-test-bug25609 ()
@@ -60,7 +62,8 @@
(target (expand-file-name (file-name-nondirectory from) to))
(nested (expand-file-name (file-name-nondirectory from) target))
(dired-dwim-target t)
- (dired-recursive-copies 'always)) ; Don't prompt me.
+ (dired-recursive-copies 'always) ; Don't prompt me.
+ buffers)
(advice-add 'dired-query ; Don't ask confirmation to overwrite a file.
:override
(lambda (_sym _prompt &rest _args) (setq dired-query t))
@@ -70,8 +73,8 @@
(lambda (_prompt _coll &optional _pred _match init _hist _def _inherit _keymap)
init)
'((name . "advice-completing-read")))
- (dired to)
- (dired-other-window temporary-file-directory)
+ (push (dired to) buffers)
+ (push (dired-other-window temporary-file-directory) buffers)
(dired-goto-file from)
(dired-do-copy)
(dired-do-copy); Again.
@@ -79,18 +82,80 @@
(progn
(should (file-exists-p target))
(should-not (file-exists-p nested)))
+ (dolist (buf buffers)
+ (when (buffer-live-p buf) (kill-buffer buf)))
(delete-directory from 'recursive)
(delete-directory to 'recursive)
(advice-remove 'dired-query "advice-dired-query")
(advice-remove 'completing-read "advice-completing-read"))))
-(ert-deftest dired-test-bug27243 ()
- "Test for http://debbugs.gnu.org/27243 ."
+;; (ert-deftest dired-test-bug27243 ()
+;; "Test for http://debbugs.gnu.org/27243 ."
+;; (let ((test-dir (make-temp-file "test-dir-" t))
+;; (dired-auto-revert-buffer t) buffers)
+;; (with-current-buffer (find-file-noselect test-dir)
+;; (make-directory "test-subdir"))
+;; (push (dired test-dir) buffers)
+;; (unwind-protect
+;; (let ((buf (current-buffer))
+;; (pt1 (point))
+;; (test-file (concat (file-name-as-directory "test-subdir")
+;; "test-file")))
+;; (write-region "Test" nil test-file nil 'silent nil 'excl)
+;; ;; Sanity check: point should now be on the subdirectory.
+;; (should (equal (dired-file-name-at-point)
+;; (concat (file-name-as-directory test-dir)
+;; (file-name-as-directory "test-subdir"))))
+;; (push (dired-find-file) buffers)
+;; (let ((pt2 (point))) ; Point is on test-file.
+;; (switch-to-buffer buf)
+;; ;; Sanity check: point should now be back on the subdirectory.
+;; (should (eq (point) pt1))
+;; ;; Case 1: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#5
+;; (push (dired-find-file) buffers)
+;; (should (eq (point) pt2))
+;; ;; Case 2: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#28
+;; (push (dired test-dir) buffers)
+;; (should (eq (point) pt1))))
+;; (dolist (buf buffers)
+;; (when (buffer-live-p buf) (kill-buffer buf)))
+;; (delete-directory test-dir t))))
+
+(ert-deftest dired-test-bug27243-01 ()
+ "Test for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#5 ."
+ (let ((test-dir (make-temp-file "test-dir-" t))
+ (dired-auto-revert-buffer t) buffers)
+ (with-current-buffer (find-file-noselect test-dir)
+ (make-directory "test-subdir"))
+ (push (dired test-dir) buffers)
+ (unwind-protect
+ (let ((buf (current-buffer))
+ (pt1 (point))
+ (test-file (concat (file-name-as-directory "test-subdir")
+ "test-file")))
+ (write-region "Test" nil test-file nil 'silent nil 'excl)
+ ;; Sanity check: point should now be on the subdirectory.
+ (should (equal (dired-file-name-at-point)
+ (concat (file-name-as-directory test-dir)
+ (file-name-as-directory "test-subdir"))))
+ (push (dired-find-file) buffers)
+ (let ((pt2 (point))) ; Point is on test-file.
+ (switch-to-buffer buf)
+ ;; Sanity check: point should now be back on the subdirectory.
+ (should (eq (point) pt1))
+ (push (dired-find-file) buffers)
+ (should (eq (point) pt2))))
+ (dolist (buf buffers)
+ (when (buffer-live-p buf) (kill-buffer buf)))
+ (delete-directory test-dir t))))
+
+(ert-deftest dired-test-bug27243-02 ()
+ "Test for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#28 ."
(let ((test-dir (make-temp-file "test-dir-" t))
- (dired-auto-revert-buffer t))
+ (dired-auto-revert-buffer t) buffers)
(with-current-buffer (find-file-noselect test-dir)
(make-directory "test-subdir"))
- (dired test-dir)
+ (push (dired test-dir) buffers)
(unwind-protect
(let ((buf (current-buffer))
(pt1 (point))
@@ -101,17 +166,48 @@
(should (equal (dired-file-name-at-point)
(concat (file-name-as-directory test-dir)
(file-name-as-directory "test-subdir"))))
- (dired-find-file)
+ (push (dired-find-file) buffers)
(let ((pt2 (point))) ; Point is on test-file.
(switch-to-buffer buf)
;; Sanity check: point should now be back on the subdirectory.
(should (eq (point) pt1))
- ;; Case 1: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#5
- (dired-find-file)
- (should (eq (point) pt2))
- ;; Case 2: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#28
- (dired test-dir)
+ (push (dired test-dir) buffers)
(should (eq (point) pt1))))
+ (dolist (buf buffers)
+ (when (buffer-live-p buf) (kill-buffer buf)))
+ (delete-directory test-dir t))))
+
+(ert-deftest dired-test-bug27243-03 ()
+ "Test for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27243#61 ."
+ (let ((test-dir (make-temp-file "test-dir-" t))
+ (dired-auto-revert-buffer t)
+ test-subdir1 test-subdir2 allbufs)
+ (unwind-protect
+ (progn
+ (with-current-buffer (find-file-noselect test-dir)
+ (push (current-buffer) allbufs)
+ (make-directory "test-subdir1")
+ (make-directory "test-subdir2")
+ (let ((test-file1 "test-file1")
+ (test-file2 "test-file2"))
+ (with-current-buffer (find-file-noselect "test-subdir1")
+ (push (current-buffer) allbufs)
+ (write-region "Test1" nil test-file1 nil 'silent nil 'excl))
+ (with-current-buffer (find-file-noselect "test-subdir2")
+ (push (current-buffer) allbufs)
+ (write-region "Test2" nil test-file2 nil 'silent nil 'excl))))
+ ;; Call find-file with a wild card and test point in each file.
+ (let ((buffers (find-file (concat (file-name-as-directory test-dir)
+ "*")
+ t)))
+ (dolist (buf buffers)
+ (let ((pt (with-current-buffer buf (point))))
+ (switch-to-buffer (find-file-noselect test-dir))
+ (find-file (buffer-name buf))
+ (should (equal (point) pt))))
+ (append buffers allbufs)))
+ (dolist (buf allbufs)
+ (when (buffer-live-p buf) (kill-buffer buf)))
(delete-directory test-dir t))))
(ert-deftest dired-test-bug27693 ()
@@ -168,5 +264,56 @@
(should (looking-at "src")))
(when (buffer-live-p buf) (kill-buffer buf)))))
+(ert-deftest dired-test-bug27817 ()
+ "Test for http://debbugs.gnu.org/27817 ."
+ (require 'em-ls)
+ (let ((orig eshell-ls-use-in-dired)
+ (dired-use-ls-dired 'unspecified)
+ buf insert-directory-program)
+ (unwind-protect
+ (progn
+ (customize-set-variable 'eshell-ls-use-in-dired t)
+ (should (setq buf (dired source-directory))))
+ (customize-set-variable 'eshell-ls-use-in-dired orig)
+ (and (buffer-live-p buf) (kill-buffer)))))
+
+(ert-deftest dired-test-bug27631 ()
+ "Test for http://debbugs.gnu.org/27631 ."
+ (let* ((dir (make-temp-file "bug27631" 'dir))
+ (dir1 (expand-file-name "dir1" dir))
+ (dir2 (expand-file-name "dir2" dir))
+ (default-directory dir)
+ buf)
+ (unwind-protect
+ (progn
+ (make-directory dir1)
+ (make-directory dir2)
+ (with-temp-file (expand-file-name "a.txt" dir1))
+ (with-temp-file (expand-file-name "b.txt" dir2))
+ (setq buf (dired (expand-file-name "dir*/*.txt" dir)))
+ (dired-toggle-marks)
+ (should (cdr (dired-get-marked-files)))
+ ;; Must work with ls-lisp ...
+ (require 'ls-lisp)
+ (kill-buffer buf)
+ (setq default-directory dir)
+ (let (ls-lisp-use-insert-directory-program)
+ (setq buf (dired (expand-file-name "dir*/*.txt" dir)))
+ (dired-toggle-marks)
+ (should (cdr (dired-get-marked-files))))
+ ;; ... And with em-ls as well.
+ (kill-buffer buf)
+ (setq default-directory dir)
+ (unload-feature 'ls-lisp 'force)
+ (require 'em-ls)
+ (let ((orig eshell-ls-use-in-dired))
+ (customize-set-value 'eshell-ls-use-in-dired t)
+ (setq buf (dired (expand-file-name "dir*/*.txt" dir)))
+ (dired-toggle-marks)
+ (should (cdr (dired-get-marked-files)))))
+ (delete-directory dir 'recursive)
+ (when (buffer-live-p buf) (kill-buffer buf)))))
+
+
(provide 'dired-tests)
;; dired-tests.el ends here