aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
Diffstat (limited to 'test/src')
-rw-r--r--test/src/keymap-tests.el21
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.