aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorAndrea Corallo2021-03-09 10:03:47 +0100
committerAndrea Corallo2021-03-09 10:03:47 +0100
commit43b0df62cd5922df5495b3f4aee5b7beca14384f (patch)
tree3c0bfa9526d08c9c85e646cd355467e3dfb439ac /test/src
parent380ba045c48bfbb160da288b1bd50f82d3f999f0 (diff)
parent9cbdf20316e1cec835a7dfe28877142e437976f4 (diff)
downloademacs-43b0df62cd5922df5495b3f4aee5b7beca14384f.tar.gz
emacs-43b0df62cd5922df5495b3f4aee5b7beca14384f.zip
Merge commit '9cbdf20316' into native-comp
Diffstat (limited to 'test/src')
-rw-r--r--test/src/keymap-tests.el58
1 files changed, 57 insertions, 1 deletions
diff --git a/test/src/keymap-tests.el b/test/src/keymap-tests.el
index d4f5fc3f190..a9b0cb502d3 100644
--- a/test/src/keymap-tests.el
+++ b/test/src/keymap-tests.el
@@ -63,10 +63,66 @@
63 (keymap--get-keyelt object t) 63 (keymap--get-keyelt object t)
64 (should menu-item-filter-ran))) 64 (should menu-item-filter-ran)))
65 65
66(ert-deftest keymap-define-key/undefined ()
67 ;; nil (means key is undefined in this keymap),
68 (let ((map (make-keymap)))
69 (define-key map [?a] nil)
70 (should-not (lookup-key map [?a]))))
71
72(ert-deftest keymap-define-key/keyboard-macro ()
73 ;; a string (treated as a keyboard macro),
74 (let ((map (make-keymap)))
75 (define-key map [?a] "abc")
76 (should (equal (lookup-key map [?a]) "abc"))))
77
78(ert-deftest keymap-define-key/lambda ()
79 (let ((map (make-keymap)))
80 (define-key map [?a] (lambda () (interactive) nil))
81 (should (functionp (lookup-key map [?a])))))
82
83(ert-deftest keymap-define-key/keymap ()
84 ;; a keymap (to define a prefix key),
85 (let ((map (make-keymap))
86 (map2 (make-keymap)))
87 (define-key map [?a] map2)
88 (define-key map2 [?b] 'foo)
89 (should (eq (lookup-key map [?a ?b]) 'foo))))
90
91(ert-deftest keymap-define-key/menu-item ()
92 ;; or an extended menu item definition.
93 ;; (See info node ‘(elisp)Extended Menu Items’.)
94 (let ((map (make-sparse-keymap))
95 (menu (make-sparse-keymap)))
96 (define-key menu [new-file]
97 '(menu-item "Visit New File..." find-file
98 :enable (menu-bar-non-minibuffer-window-p)
99 :help "Specify a new file's name, to edit the file"))
100 (define-key map [menu-bar file] (cons "File" menu))
101 (should (eq (lookup-key map [menu-bar file new-file]) 'find-file))))
102
66(ert-deftest keymap-lookup-key () 103(ert-deftest keymap-lookup-key ()
67 (let ((map (make-keymap))) 104 (let ((map (make-keymap)))
68 (define-key map [?a] 'foo) 105 (define-key map [?a] 'foo)
69 (should (eq (lookup-key map [?a]) 'foo)))) 106 (should (eq (lookup-key map [?a]) 'foo))
107 (should-not (lookup-key map [?b]))))
108
109(ert-deftest keymap-lookup-key/list-of-keymaps ()
110 (let ((map1 (make-keymap))
111 (map2 (make-keymap)))
112 (define-key map1 [?a] 'foo)
113 (define-key map2 [?b] 'bar)
114 (should (eq (lookup-key (list map1 map2) [?a]) 'foo))
115 (should (eq (lookup-key (list map1 map2) [?b]) 'bar))
116 (should-not (lookup-key (list map1 map2) [?c]))))
117
118(ert-deftest keymap-lookup-key/too-long ()
119 (let ((map (make-keymap)))
120 (define-key map (kbd "C-c f") 'foo)
121 (should (= (lookup-key map (kbd "C-c f x")) 2))))
122
123;; TODO: Write test for the ACCEPT-DEFAULT argument.
124;; (ert-deftest keymap-lookup-key/accept-default ()
125;; ...)
70 126
71(ert-deftest describe-buffer-bindings/header-in-current-buffer () 127(ert-deftest describe-buffer-bindings/header-in-current-buffer ()
72 "Header should be inserted into the current buffer. 128 "Header should be inserted into the current buffer.