diff options
| author | Andrea Corallo | 2021-03-09 10:03:47 +0100 |
|---|---|---|
| committer | Andrea Corallo | 2021-03-09 10:03:47 +0100 |
| commit | 43b0df62cd5922df5495b3f4aee5b7beca14384f (patch) | |
| tree | 3c0bfa9526d08c9c85e646cd355467e3dfb439ac /test/src | |
| parent | 380ba045c48bfbb160da288b1bd50f82d3f999f0 (diff) | |
| parent | 9cbdf20316e1cec835a7dfe28877142e437976f4 (diff) | |
| download | emacs-43b0df62cd5922df5495b3f4aee5b7beca14384f.tar.gz emacs-43b0df62cd5922df5495b3f4aee5b7beca14384f.zip | |
Merge commit '9cbdf20316' into native-comp
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/keymap-tests.el | 58 |
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. |