diff options
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/keymap-tests.el | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/test/src/keymap-tests.el b/test/src/keymap-tests.el index 950c741a6dd..0d203f6fcb0 100644 --- a/test/src/keymap-tests.el +++ b/test/src/keymap-tests.el | |||
| @@ -509,25 +509,36 @@ g .. h foo | |||
| 509 | ;; From the parent this time/ | 509 | ;; From the parent this time/ |
| 510 | (should (equal (keymap-lookup map "u") #'undo)))) | 510 | (should (equal (keymap-lookup map "u") #'undo)))) |
| 511 | 511 | ||
| 512 | (defun keymap-test--get-maps (posn) | ||
| 513 | (let ((maps (current-active-maps nil posn))) | ||
| 514 | ;; The local map should always be present. | ||
| 515 | (should (memq (current-local-map) maps)) | ||
| 516 | maps)) | ||
| 517 | |||
| 512 | (defun keymap-test--maps-for-posn (area string) | 518 | (defun keymap-test--maps-for-posn (area string) |
| 513 | (current-active-maps | 519 | (keymap-test--get-maps |
| 514 | nil | ||
| 515 | ;; FIXME: This test would be better if this was a real position | 520 | ;; FIXME: This test would be better if this was a real position |
| 516 | ;; created by a real click. | 521 | ;; created by a real click. |
| 517 | `(,(selected-window) ,area (1 . 1) 0 (,string . 0) nil (1 . 1) nil (1 . 1) (1 . 1)))) | 522 | (let (;; If AREA is passed, the click isn't in the buffer; otherwise |
| 523 | ;; it's at position 1. | ||
| 524 | (pos (if area nil 1))) | ||
| 525 | `(,(selected-window) ,area (1 . 1) 0 (,string . 0) | ||
| 526 | ,pos (1 . 1) nil (1 . 1) (1 . 1))))) | ||
| 518 | 527 | ||
| 519 | (ert-deftest keymap-test-keymaps-for-non-buffer-positions () | 528 | (ert-deftest keymap-test-keymaps-for-non-buffer-positions () |
| 520 | "`current-active-maps' with non-buffer positions. (bug#76620)" | 529 | "`current-active-maps' with non-buffer positions. (bug#76620)" |
| 521 | (with-temp-buffer | 530 | (with-temp-buffer |
| 522 | (pop-to-buffer (current-buffer)) | 531 | (pop-to-buffer (current-buffer)) |
| 523 | (let ((keymap (make-sparse-keymap "keymap-at-point"))) | 532 | (let ((keymap (make-sparse-keymap "keymap-at-point"))) |
| 533 | (use-local-map (make-sparse-keymap "buffer-local-map")) | ||
| 524 | (insert (propertize "string" 'keymap keymap)) | 534 | (insert (propertize "string" 'keymap keymap)) |
| 525 | (goto-char (point-min)) | 535 | (goto-char (point-min)) |
| 526 | (should (memq keymap (current-active-maps))) | 536 | (should (memq keymap (keymap-test--get-maps nil))) |
| 527 | (should-not (memq keymap (keymap-test--maps-for-posn 'mode-line nil))) | 537 | (should-not (memq keymap (keymap-test--maps-for-posn 'mode-line nil))) |
| 528 | (should-not (memq keymap (keymap-test--maps-for-posn 'mode-line "s"))) | 538 | (should-not (memq keymap (keymap-test--maps-for-posn 'mode-line "s"))) |
| 529 | (should-not (memq keymap (keymap-test--maps-for-posn nil "s"))) | 539 | (should (memq keymap (keymap-test--maps-for-posn nil "s"))) |
| 530 | (should (memq keymap (keymap-test--maps-for-posn nil nil))) | 540 | (should (memq keymap (keymap-test--maps-for-posn nil nil))) |
| 541 | (should (memq keymap (keymap-test--get-maps "a"))) | ||
| 531 | (let* ((mode-line-keymap (make-sparse-keymap "keymap-in-mode-line")) | 542 | (let* ((mode-line-keymap (make-sparse-keymap "keymap-in-mode-line")) |
| 532 | (s (propertize "string" 'keymap mode-line-keymap))) | 543 | (s (propertize "string" 'keymap mode-line-keymap))) |
| 533 | ;; Respect `keymap' in the string clicked on. | 544 | ;; Respect `keymap' in the string clicked on. |