diff options
author | Tino Calancha <tino.calancha@gmail.com> | 2017-02-27 16:26:06 +0900 |
---|---|---|
committer | Tino Calancha <tino.calancha@gmail.com> | 2017-02-27 16:26:06 +0900 |
commit | 841e3e377c97142cfe76b9d91467f439198f5e39 (patch) | |
tree | bedab4128a289d0499420c8cdd0943966d24b490 /test/lisp/dired-tests.el | |
parent | fd8f724147b0a64c15f42dd09d21d8b2f81f6cbc (diff) | |
download | emacs-841e3e377c97142cfe76b9d91467f439198f5e39.tar.gz |
Choose the right target dir on dired operations
Prevent from changing the input target dir
when dired-dwim-target is non-nil (Bug#25609).
* lisp/dired-aux.el (dired-do-create-files):
If dired-dwim-target is non-nil, then bind 'default' to nil.
* test/lisp/dired-tests.el (dired-test-bug25609): Add test.
Diffstat (limited to 'test/lisp/dired-tests.el')
-rw-r--r-- | test/lisp/dired-tests.el | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el index 489f8fdfea3..1863864abdf 100644 --- a/test/lisp/dired-tests.el +++ b/test/lisp/dired-tests.el @@ -20,6 +20,7 @@ ;;; Code: (require 'ert) (require 'dired) +(require 'nadvice) (ert-deftest dired-autoload () @@ -52,5 +53,36 @@ ;; Clean up (delete-directory dir 'recursive)))) +(ert-deftest dired-test-bug25609 () + "Test for http://debbugs.gnu.org/25609 ." + (let* ((from (make-temp-file "foo" 'dir)) + (to (make-temp-file "bar" 'dir)) + (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. + (advice-add 'dired-query ; Don't ask confirmation to overwrite a file. + :override + (lambda (sym prompt &rest args) (setq dired-query t)) + '((name . "advice-dired-query"))) + (advice-add 'completing-read ; Just return init. + :override + (lambda (prompt coll &optional pred match init hist def inherit keymap) + init) + '((name . "advice-completing-read"))) + (dired to) + (dired-other-window temporary-file-directory) + (dired-goto-file from) + (dired-do-copy) + (dired-do-copy); Again. + (unwind-protect + (progn + (should (file-exists-p target)) + (should-not (file-exists-p nested))) + (delete-directory from 'recursive) + (delete-directory to 'recursive) + (advice-remove 'dired-query "advice-dired-query") + (advice-remove 'completing-read "advice-completing-read")))) + (provide 'dired-tests) ;; dired-tests.el ends here |