(dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let ((tramp-fuse-remove-hidden-files t)
(tmp-name (tramp--test-make-temp-name nil quoted)))
-
- (unwind-protect
- (progn
- ;; Local files.
- (make-directory tmp-name)
- (should (file-directory-p tmp-name))
- (write-region "foo" nil (expand-file-name "foo" tmp-name))
- (should (file-exists-p (expand-file-name "foo" tmp-name)))
- (write-region "bar" nil (expand-file-name "bold" tmp-name))
- (should (file-exists-p (expand-file-name "bold" tmp-name)))
- (make-directory (expand-file-name "boz" tmp-name))
- (should (file-directory-p (expand-file-name "boz" tmp-name)))
- (should (equal (file-name-completion "fo" tmp-name) "foo"))
- (should (equal (file-name-completion "foo" tmp-name) t))
- (should (equal (file-name-completion "b" tmp-name) "bo"))
- (should-not (file-name-completion "a" tmp-name))
- ;; `file-name-completion' should not err out if
- ;; directory does not exist. (Bug#61890)
- ;; Ange-FTP does not support this.
- (unless (tramp--test-ange-ftp-p)
- (should-not
- (file-name-completion
- "a" (tramp-compat-file-name-concat tmp-name "fuzz"))))
- ;; Ange-FTP does not support predicates.
- (unless (tramp--test-ange-ftp-p)
- (should
- (equal
- (file-name-completion "b" tmp-name #'file-directory-p)
- "boz/")))
- (should
- (equal (file-name-all-completions "fo" tmp-name) '("foo")))
- (should
- (equal
- (sort (file-name-all-completions "b" tmp-name) #'string-lessp)
- '("bold" "boz/")))
- (should-not (file-name-all-completions "a" tmp-name))))
- ;; `file-name-completion' ignores file names that end in
- ;; any string in `completion-ignored-extensions'.
- (let ((completion-ignored-extensions '(".ext")))
- (write-region "foo" nil (expand-file-name "foo.ext" tmp-name))
- (should (file-exists-p (expand-file-name "foo.ext" tmp-name)))
- (should (equal (file-name-completion "fo" tmp-name) "foo"))
- (should (equal (file-name-completion "foo" tmp-name) t))
- (should
- (equal (file-name-completion "foo." tmp-name) "foo.ext"))
- (should (equal (file-name-completion "foo.ext" tmp-name) t))
- ;; `file-name-all-completions' is not affected.
- (should
- (equal
- (sort (file-name-all-completions "" tmp-name) #'string-lessp)
- '("../" "./" "bold" "boz/" "foo" "foo.ext")))))
-
- ;; Cleanup.
- (ignore-errors (delete-directory tmp-name 'recursive)))))))
+ ;; Local files.
+ (make-directory tmp-name)
+ (should (file-directory-p tmp-name))
+ (write-region "foo" nil (expand-file-name "foo" tmp-name))
+ (should (file-exists-p (expand-file-name "foo" tmp-name)))
+ (write-region "bar" nil (expand-file-name "bold" tmp-name))
+ (should (file-exists-p (expand-file-name "bold" tmp-name)))
+ (make-directory (expand-file-name "boz" tmp-name))
+ (should (file-directory-p (expand-file-name "boz" tmp-name)))
+ (should (equal (file-name-completion "fo" tmp-name) "foo"))
+ (should (equal (file-name-completion "foo" tmp-name) t))
+ (should (equal (file-name-completion "b" tmp-name) "bo"))
+ (should-not (file-name-completion "a" tmp-name))
+ ;; `file-name-completion' should not err out if
+ ;; directory does not exist. (Bug#61890)
+ ;; Ange-FTP does not support this.
+ (unless (tramp--test-ange-ftp-p)
+ (should-not
+ (file-name-completion
+ "a" (tramp-compat-file-name-concat tmp-name "fuzz"))))
+ ;; Ange-FTP does not support predicates.
+ (unless (tramp--test-ange-ftp-p)
+ (should
+ (equal
+ (file-name-completion "b" tmp-name #'file-directory-p)
+ "boz/")))
+ (should
+ (equal (file-name-all-completions "fo" tmp-name) '("foo")))
+ (should
+ (equal
+ (sort (file-name-all-completions "b" tmp-name) #'string-lessp)
+ '("bold" "boz/")))
+ (should-not (file-name-all-completions "a" tmp-name))
+ ;; Cleanup.
+ (ignore-errors (delete-directory tmp-name 'recursive))))))
(tramp--test-deftest-with-perl tramp-test26-file-name-completion)
(ert-deftest try-completion-string-list-predicate ()
(minibuf-tests--try-completion-pred
#'identity #'minibuf-tests--memq-of-collection))
-(ert-deftest try-completion-string-list-completion-regexp ()
- (minibuf-tests--try-completion-regexp #'identity))
(ert-deftest try-completion-symbol-list ()
(minibuf-tests--try-completion
(minibuf-tests--try-completion-pred
#'minibuf-tests--strings-to-symbol-list
#'minibuf-tests--memq-of-collection))
-(ert-deftest try-completion-symbol-list-completion-regexp ()
- (minibuf-tests--try-completion-regexp
- #'minibuf-tests--strings-to-symbol-list))
(ert-deftest try-completion-symbol-alist ()
(minibuf-tests--try-completion
(minibuf-tests--try-completion-pred
#'minibuf-tests--strings-to-symbol-alist
#'minibuf-tests--memq-of-collection))
-(ert-deftest try-completion-symbol-alist-completion-regexp ()
- (minibuf-tests--try-completion-regexp
- #'minibuf-tests--strings-to-symbol-alist))
(ert-deftest try-completion-string-alist ()
(minibuf-tests--try-completion
(minibuf-tests--try-completion-pred
#'minibuf-tests--strings-to-string-alist
#'minibuf-tests--memq-of-collection))
-(ert-deftest try-completion-string-alist-completion-regexp ()
- (minibuf-tests--try-completion-regexp
- #'minibuf-tests--strings-to-string-alist))
(ert-deftest try-completion-obarray ()
(minibuf-tests--try-completion
(minibuf-tests--try-completion-pred
#'minibuf-tests--strings-to-obarray
#'minibuf-tests--part-of-obarray))
-(ert-deftest try-completion-obarray-completion-regexp ()
- (minibuf-tests--try-completion-regexp
- #'minibuf-tests--strings-to-obarray))
(ert-deftest try-completion-string-hashtable ()
(minibuf-tests--try-completion
(minibuf-tests--try-completion-pred
#'minibuf-tests--strings-to-string-hashtable
#'minibuf-tests--part-of-hashtable))
-(ert-deftest try-completion-string-hashtable-completion-regexp ()
- (minibuf-tests--try-completion-regexp
- #'minibuf-tests--strings-to-string-hashtable))
(ert-deftest try-completion-symbol-hashtable ()
(minibuf-tests--try-completion
(minibuf-tests--try-completion-pred
#'minibuf-tests--strings-to-symbol-hashtable
#'minibuf-tests--part-of-hashtable))
-(ert-deftest try-completion-symbol-hashtable-completion-regexp ()
- (minibuf-tests--try-completion-regexp
- #'minibuf-tests--strings-to-symbol-hashtable))
\f
;;; Tests for `all-completions'.
(ert-deftest all-completions-string-list-predicate ()
(minibuf-tests--all-completions-pred
#'identity #'minibuf-tests--memq-of-collection))
-(ert-deftest all-completions-string-list-completion-regexp ()
- (minibuf-tests--all-completions-regexp #'identity))
(ert-deftest all-completions-symbol-list ()
(minibuf-tests--all-completions
(minibuf-tests--all-completions-pred
#'minibuf-tests--strings-to-symbol-list
#'minibuf-tests--memq-of-collection))
-(ert-deftest all-completions-symbol-list-completion-regexp ()
- (minibuf-tests--all-completions-regexp
- #'minibuf-tests--strings-to-symbol-list))
(ert-deftest all-completions-symbol-alist ()
(minibuf-tests--all-completions
(minibuf-tests--all-completions-pred
#'minibuf-tests--strings-to-symbol-alist
#'minibuf-tests--memq-of-collection))
-(ert-deftest all-completions-symbol-alist-completion-regexp ()
- (minibuf-tests--all-completions-regexp
- #'minibuf-tests--strings-to-symbol-alist))
(ert-deftest all-completions-string-alist ()
(minibuf-tests--all-completions
(minibuf-tests--all-completions-pred
#'minibuf-tests--strings-to-string-alist
#'minibuf-tests--memq-of-collection))
-(ert-deftest all-completions-string-alist-completion-regexp ()
- (minibuf-tests--all-completions-regexp
- #'minibuf-tests--strings-to-string-alist))
(ert-deftest all-completions-obarray ()
(minibuf-tests--all-completions
(minibuf-tests--all-completions-pred
#'minibuf-tests--strings-to-obarray
#'minibuf-tests--part-of-obarray))
-(ert-deftest all-completions-obarray-completion-regexp ()
- (minibuf-tests--all-completions-regexp
- #'minibuf-tests--strings-to-obarray))
(ert-deftest all-completions-string-hashtable ()
(minibuf-tests--all-completions
(minibuf-tests--all-completions-pred
#'minibuf-tests--strings-to-string-hashtable
#'minibuf-tests--part-of-hashtable))
-(ert-deftest all-completions-string-hashtable-completion-regexp ()
- (minibuf-tests--all-completions-regexp
- #'minibuf-tests--strings-to-string-hashtable))
(ert-deftest all-completions-symbol-hashtable ()
(minibuf-tests--all-completions
(minibuf-tests--all-completions-pred
#'minibuf-tests--strings-to-symbol-hashtable
#'minibuf-tests--part-of-hashtable))
-(ert-deftest all-completions-symbol-hashtable-completion-regexp ()
- (minibuf-tests--all-completions-regexp
- #'minibuf-tests--strings-to-symbol-hashtable))
\f
;;; Tests for `test-completion'.
(ert-deftest test-completion-string-list-predicate ()
(minibuf-tests--test-completion-pred
#'identity #'minibuf-tests--memq-of-collection))
-(ert-deftest test-completion-string-list-completion-regexp ()
- (minibuf-tests--test-completion-regexp #'identity))
(ert-deftest test-completion-symbol-list ()
(minibuf-tests--test-completion
(minibuf-tests--test-completion-pred
#'minibuf-tests--strings-to-symbol-list
#'minibuf-tests--memq-of-collection))
-(ert-deftest test-completion-symbol-list-completion-regexp ()
- (minibuf-tests--test-completion-regexp
- #'minibuf-tests--strings-to-symbol-list))
(ert-deftest test-completion-symbol-alist ()
(minibuf-tests--test-completion
(minibuf-tests--test-completion-pred
#'minibuf-tests--strings-to-symbol-alist
#'minibuf-tests--memq-of-collection))
-(ert-deftest test-completion-symbol-alist-completion-regexp ()
- (minibuf-tests--test-completion-regexp
- #'minibuf-tests--strings-to-symbol-alist))
(ert-deftest test-completion-string-alist ()
(minibuf-tests--test-completion
(minibuf-tests--test-completion-pred
#'minibuf-tests--strings-to-string-alist
#'minibuf-tests--memq-of-collection))
-(ert-deftest test-completion-string-alist-completion-regexp ()
- (minibuf-tests--test-completion-regexp
- #'minibuf-tests--strings-to-string-alist))
(ert-deftest test-completion-obarray ()
(minibuf-tests--test-completion
(minibuf-tests--test-completion-pred
#'minibuf-tests--strings-to-obarray
#'minibuf-tests--part-of-obarray))
-(ert-deftest test-completion-obarray-completion-regexp ()
- (minibuf-tests--test-completion-regexp
- #'minibuf-tests--strings-to-obarray))
(ert-deftest test-completion-string-hashtable ()
(minibuf-tests--test-completion
(minibuf-tests--test-completion-pred
#'minibuf-tests--strings-to-string-hashtable
#'minibuf-tests--part-of-hashtable))
-(ert-deftest test-completion-string-hashtable-completion-regexp ()
- (minibuf-tests--test-completion-regexp
- #'minibuf-tests--strings-to-string-hashtable))
(ert-deftest test-completion-symbol-hashtable ()
(minibuf-tests--test-completion
(minibuf-tests--test-completion-pred
#'minibuf-tests--strings-to-symbol-hashtable
#'minibuf-tests--part-of-hashtable))
-(ert-deftest test-completion-symbol-hashtable-completion-regexp ()
- (minibuf-tests--test-completion-regexp
- #'minibuf-tests--strings-to-symbol-hashtable))
(ert-deftest test-try-completion-ignore-case ()
(let ((completion-ignore-case t))