summaryrefslogtreecommitdiff
path: root/test/lisp/minibuffer-tests.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2019-11-26 13:18:18 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2019-11-26 13:18:18 -0500
commit384d1c47cec8e61d1896694b14fcf88710f9dc4d (patch)
tree0f0f94811898dde4d2bee1f24e3d9d8619446d37 /test/lisp/minibuffer-tests.el
parentd4515f3cabcb2e70d71cd4133d069f5286d30654 (diff)
downloademacs-384d1c47cec8e61d1896694b14fcf88710f9dc4d.tar.gz
* test/lisp/minibuffer-tests.el (completion-table-test-quoting): New test
* test/data/minibuffer-test-cttq$tion: New file-name test data.
Diffstat (limited to 'test/lisp/minibuffer-tests.el')
-rw-r--r--test/lisp/minibuffer-tests.el21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/lisp/minibuffer-tests.el b/test/lisp/minibuffer-tests.el
index 35df7cc17f1..6b297244214 100644
--- a/test/lisp/minibuffer-tests.el
+++ b/test/lisp/minibuffer-tests.el
@@ -80,5 +80,26 @@
(should (equal (try-completion "B-hel" subvtable)
"B-hello"))))
+(ert-deftest completion-table-test-quoting ()
+ (let ((process-environment
+ `("CTTQ1=ed" "CTTQ2=et/" ,@process-environment)))
+ (pcase-dolist (`(,input ,output)
+ '(
+ ;; Test that $ in files is properly $$ quoted.
+ ("data/m-cttq" "data/minibuffer-test-cttq$$tion")
+ ;; Test that $$ in input is properly unquoted.
+ ("data/m-cttq$$t" "data/minibuffer-test-cttq$$tion")
+ ;; Test that env-vars are preserved.
+ ("lisp/c${CTTQ1}et/se-u" "lisp/c${CTTQ1}et/semantic-utest")
+ ("lisp/ced${CTTQ2}se-u" "lisp/ced${CTTQ2}semantic-utest")
+ ;; Test that env-vars don't prevent partial-completion.
+ ;; FIXME: Ideally we'd like to keep the ${CTTQ}!
+ ("lis/c${CTTQ1}/se-u" "lisp/cedet/semantic-utest")
+ ))
+ (should (equal (completion-try-completion input
+ #'completion--file-name-table
+ nil (length input))
+ (cons output (length output)))))))
+
(provide 'completion-tests)
;;; completion-tests.el ends here