From 384d1c47cec8e61d1896694b14fcf88710f9dc4d Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 26 Nov 2019 13:18:18 -0500 Subject: [PATCH] * test/lisp/minibuffer-tests.el (completion-table-test-quoting): New test * test/data/minibuffer-test-cttq$tion: New file-name test data. --- test/data/minibuffer-test-cttq$tion | 0 test/lisp/minibuffer-tests.el | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 test/data/minibuffer-test-cttq$tion 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 -- 2.39.2