From: Stefan Monnier Date: Tue, 26 Nov 2019 18:18:18 +0000 (-0500) Subject: * test/lisp/minibuffer-tests.el (completion-table-test-quoting): New test X-Git-Tag: emacs-27.0.90~518 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=384d1c47cec8e61d1896694b14fcf88710f9dc4d;p=emacs.git * test/lisp/minibuffer-tests.el (completion-table-test-quoting): New test * test/data/minibuffer-test-cttq$tion: New file-name test data. --- diff --git a/test/data/minibuffer-test-cttq$tion b/test/data/minibuffer-test-cttq$tion new file mode 100644 index 00000000000..e69de29bb2d 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