summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Pluim <rpluim@gmail.com>2023-03-18 10:33:39 +0100
committerRobert Pluim <rpluim@gmail.com>2023-03-18 10:37:15 +0100
commitaedb9e3ec37512e4e2c1a6066613b2b5fcaf2aa6 (patch)
treee88035d06092592384185daf1c0222969f14f9a6
parentfaee8d507387f72e61fa809326e12703b4ba20b2 (diff)
downloademacs-aedb9e3ec37512e4e2c1a6066613b2b5fcaf2aa6.tar.gz
Add tests for Bug#62207
* test/src/keymap-tests.el (keymap-unset-test-remove-and-inheritance): New test.
-rw-r--r--test/src/keymap-tests.el18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/src/keymap-tests.el b/test/src/keymap-tests.el
index aa710519825..29220c95395 100644
--- a/test/src/keymap-tests.el
+++ b/test/src/keymap-tests.el
@@ -475,6 +475,24 @@ g .. h foo
"a" #'next-line
"a" #'previous-line)))
+(ert-deftest keymap-unset-test-remove-and-inheritance ()
+ "Check various behaviors of keymap-unset. (Bug#62207)"
+ (let ((map (make-sparse-keymap))
+ (parent (make-sparse-keymap)))
+ (set-keymap-parent map parent)
+ ;; Removing an unset key should not add a key.
+ (keymap-set parent "u" #'undo)
+ (keymap-unset map "u" t)
+ (should (equal (keymap-lookup map "u") #'undo))
+ ;; Non-removed child bindings should shadow parent
+ (keymap-set map "u" #'identity)
+ (keymap-unset map "u")
+ ;; From the child, but nil.
+ (should-not (keymap-lookup map "u"))
+ (keymap-unset map "u" t)
+ ;; From the parent this time/
+ (should (equal (keymap-lookup map "u") #'undo))))
+
(provide 'keymap-tests)
;;; keymap-tests.el ends here