emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master b305fab: Add tests for 'substitute-command-keys'


From: Eli Zaretskii
Subject: [Emacs-diffs] master b305fab: Add tests for 'substitute-command-keys'
Date: Thu, 18 Aug 2016 15:07:10 +0000 (UTC)

branch: master
commit b305fab44c10488e601096d506a30259961e8d7f
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Add tests for 'substitute-command-keys'
    
    * test/src/doc-tests.el (doc-test-substitute-command-keys): New
    tests.
---
 test/src/doc-tests.el |   92 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/test/src/doc-tests.el b/test/src/doc-tests.el
new file mode 100644
index 0000000..be49054
--- /dev/null
+++ b/test/src/doc-tests.el
@@ -0,0 +1,92 @@
+;;; doc-tests.el --- Tests for doc.c
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Eli Zaretskii <address@hidden>
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'ert)
+
+(ert-deftest doc-test-substitute-command-keys ()
+  ;; Bindings.
+  (should (string= (substitute-command-keys "foo \\[goto-char]") "foo M-g c"))
+  ;; Cannot use string= here, as that compares unibyte and multibyte
+  ;; strings not equal.
+  (should (compare-strings
+           (substitute-command-keys "\200 \\[goto-char]") nil nil
+           "\200 M-g c" nil nil))
+  ;; Literals.
+  (should (string= (substitute-command-keys "foo \\=\\[goto-char]")
+                   "foo \\[goto-char]"))
+  (should (string= (substitute-command-keys "foo \\=\\=")
+                   "foo \\="))
+  ;; Keymaps.
+  (should (string= (substitute-command-keys
+                    "\\{minibuffer-local-must-match-map}")
+                   "\
+key             binding
+---             -------
+
+C-g            abort-recursive-edit
+TAB            minibuffer-complete
+C-j            minibuffer-complete-and-exit
+RET            minibuffer-complete-and-exit
+ESC            Prefix Command
+SPC            minibuffer-complete-word
+?              minibuffer-completion-help
+<C-tab>                file-cache-minibuffer-complete
+<XF86Back>     previous-history-element
+<XF86Forward>  next-history-element
+<down>         next-line-or-history-element
+<next>         next-history-element
+<prior>                switch-to-completions
+<up>           previous-line-or-history-element
+
+M-v            switch-to-completions
+
+M-n            next-history-element
+M-p            previous-history-element
+M-r            previous-matching-history-element
+M-s            next-matching-history-element
+
+"))
+  (should (string=
+           (substitute-command-keys
+            "\\<minibuffer-local-must-match-map>\\[abort-recursive-edit]")
+           "C-g"))
+  ;; Allow any style of quotes, since the terminal might not support
+  ;; UTF-8.
+  (should (string-match
+           "\nUses keymap [`‘']foobar-map['’], which is not currently 
defined.\n"
+            (substitute-command-keys "\\{foobar-map}")))
+  ;; Quotes.
+  (should (let ((text-quoting-style 'grave))
+            (string= (substitute-command-keys "quotes `like this'")
+                      "quotes `like this'")))
+  (should (let ((text-quoting-style 'grave))
+            (string= (substitute-command-keys "quotes ‘like this’")
+                      "quotes ‘like this’")))
+  (should (let ((text-quoting-style 'straight))
+            (string= (substitute-command-keys "quotes `like this'")
+                     "quotes 'like this'")))
+  ;; Bugs.
+  (should (string= (substitute-command-keys "\\[foobar") "\\[foobar"))
+  (should (string= (substitute-command-keys "\\=") "\\="))
+  )
+
+(provide 'doc-tests)
+;;; doc-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]