diff options
| author | Stefan Kangas | 2020-11-06 04:45:26 +0100 |
|---|---|---|
| committer | Stefan Kangas | 2020-11-06 04:59:37 +0100 |
| commit | 1efcec2717a683202cbea538aabfb9f71ea1ec96 (patch) | |
| tree | 3f40d796a2ac5c929a5a94824e9268cbd651c788 | |
| parent | ac471ff09d9b7874c53447fdd2d06efd2d8b1e40 (diff) | |
| download | emacs-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.el | 79 |
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")) |