aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Kangas2020-11-06 04:45:26 +0100
committerStefan Kangas2020-11-06 04:59:37 +0100
commit1efcec2717a683202cbea538aabfb9f71ea1ec96 (patch)
tree3f40d796a2ac5c929a5a94824e9268cbd651c788
parentac471ff09d9b7874c53447fdd2d06efd2d8b1e40 (diff)
downloademacs-1efcec2717a683202cbea538aabfb9f71ea1ec96.tar.gz
emacs-1efcec2717a683202cbea538aabfb9f71ea1ec96.zip
Add more tests for where-is-internal
* test/src/keymap-tests.el (keymap-where-is-internal) (keymap-where-is-internal/firstonly-t) (keymap-where-is-internal/menu-item) (keymap-where-is-internal/advertised-binding) (keymap-where-is-internal/advertised-binding-respect-remap) (keymap-where-is-internal/remap) (keymap-where-is-internal/shadowed): New tests. (keymap-where-is-internal/preferred-modifier-is-a-string): Rename from keymap-where-is-internal-test.
-rw-r--r--test/src/keymap-tests.el79
1 files changed, 78 insertions, 1 deletions
diff --git a/test/src/keymap-tests.el b/test/src/keymap-tests.el
index 1a30a7d3a0b..0f3fde48042 100644
--- a/test/src/keymap-tests.el
+++ b/test/src/keymap-tests.el
@@ -3,6 +3,7 @@
3;; Copyright (C) 2015-2020 Free Software Foundation, Inc. 3;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
4 4
5;; Author: Juanma Barranquero <lekktu@gmail.com> 5;; Author: Juanma Barranquero <lekktu@gmail.com>
6;; Stefan Kangas <stefankangas@gmail.com>
6 7
7;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
8 9
@@ -51,7 +52,83 @@ commit 86c19714b097aa477d339ed99ffb5136c755a046."
51 (should (eq (lookup-key Buffer-menu-mode-map [32]) 'undefined))) 52 (should (eq (lookup-key Buffer-menu-mode-map [32]) 'undefined)))
52 (define-key Buffer-menu-mode-map [32] def)))) 53 (define-key Buffer-menu-mode-map [32] def))))
53 54
54(ert-deftest keymap-where-is-internal-test () 55
56;;;; where-is-internal
57
58(defun keymap-tests--command-1 () (interactive) nil)
59(defun keymap-tests--command-2 () (interactive) nil)
60(put 'keymap-tests--command-1 :advertised-binding [?y])
61
62(ert-deftest keymap-where-is-internal ()
63 (let ((map (make-sparse-keymap)))
64 (define-key map "x" 'keymap-tests--command-1)
65 (define-key map "y" 'keymap-tests--command-1)
66 (should (equal (where-is-internal 'keymap-tests--command-1 map)
67 '([?y] [?x])))))
68
69(ert-deftest keymap-where-is-internal/firstonly-t ()
70 (let ((map (make-sparse-keymap)))
71 (define-key map "x" 'keymap-tests--command-1)
72 (define-key map "y" 'keymap-tests--command-1)
73 (should (equal (where-is-internal 'keymap-tests--command-1 map t)
74 [?y]))))
75
76(ert-deftest keymap-where-is-internal/menu-item ()
77 (let ((map (make-sparse-keymap)))
78 (define-key map [menu-bar foobar cmd1]
79 '(menu-item "Run Command 1" keymap-tests--command-1
80 :help "Command 1 Help"))
81 (define-key map "x" 'keymap-tests--command-1)
82 (should (equal (where-is-internal 'keymap-tests--command-1 map)
83 '([?x] [menu-bar foobar cmd1])))
84 (should (equal (where-is-internal 'keymap-tests--command-1 map t) [?x]))))
85
86
87(ert-deftest keymap-where-is-internal/advertised-binding ()
88 ;; Make sure order does not matter.
89 (dolist (keys '(("x" . "y") ("y" . "x")))
90 (let ((map (make-sparse-keymap)))
91 (define-key map (car keys) 'keymap-tests--command-1)
92 (define-key map (cdr keys) 'keymap-tests--command-1)
93 (should (equal (where-is-internal 'keymap-tests--command-1 map t) [121])))))
94
95(ert-deftest keymap-where-is-internal/advertised-binding-respect-remap ()
96 (let ((map (make-sparse-keymap)))
97 (define-key map "x" 'next-line)
98 (define-key map [remap keymap-tests--command-1] 'next-line)
99 (define-key map "y" 'keymap-tests--command-1)
100 (should (equal (where-is-internal 'keymap-tests--command-1 map t) [?x]))))
101
102(ert-deftest keymap-where-is-internal/remap ()
103 (let ((map (make-keymap)))
104 (define-key map (kbd "x") 'foo)
105 (define-key map (kbd "y") 'bar)
106 (define-key map [remap foo] 'bar)
107 (should (equal (where-is-internal 'foo map t) [?y]))
108 (should (equal (where-is-internal 'bar map t) [?y]))))
109
110(defvar keymap-tests-minor-mode-map
111 (let ((map (make-sparse-keymap)))
112 (define-key map "x" 'keymap-tests--command-2)
113 map))
114
115(defvar keymap-tests-major-mode-map
116 (let ((map (make-sparse-keymap)))
117 (define-key map "x" 'keymap-tests--command-1)
118 map))
119
120(define-minor-mode keymap-tests-minor-mode "Test.")
121
122(define-derived-mode keymap-tests-major-mode nil "Test.")
123
124(ert-deftest keymap-where-is-internal/shadowed ()
125 (with-temp-buffer
126 (keymap-tests-major-mode)
127 (keymap-tests-minor-mode)
128 (should-not (where-is-internal 'keymap-tests--command-1 nil t))
129 (should (equal (where-is-internal 'keymap-tests--command-2 nil t) [120]))))
130
131(ert-deftest keymap-where-is-internal/preferred-modifier-is-a-string ()
55 "Make sure we don't crash when `where-is-preferred-modifier' is not a symbol." 132 "Make sure we don't crash when `where-is-preferred-modifier' is not a symbol."
56 (should 133 (should
57 (equal (let ((where-is-preferred-modifier "alt")) 134 (equal (let ((where-is-preferred-modifier "alt"))