diff options
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/keymap-tests.el | 18 |
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 | |||
| 475 | "a" #'next-line | 475 | "a" #'next-line |
| 476 | "a" #'previous-line))) | 476 | "a" #'previous-line))) |
| 477 | 477 | ||
| 478 | (ert-deftest keymap-unset-test-remove-and-inheritance () | ||
| 479 | "Check various behaviors of keymap-unset. (Bug#62207)" | ||
| 480 | (let ((map (make-sparse-keymap)) | ||
| 481 | (parent (make-sparse-keymap))) | ||
| 482 | (set-keymap-parent map parent) | ||
| 483 | ;; Removing an unset key should not add a key. | ||
| 484 | (keymap-set parent "u" #'undo) | ||
| 485 | (keymap-unset map "u" t) | ||
| 486 | (should (equal (keymap-lookup map "u") #'undo)) | ||
| 487 | ;; Non-removed child bindings should shadow parent | ||
| 488 | (keymap-set map "u" #'identity) | ||
| 489 | (keymap-unset map "u") | ||
| 490 | ;; From the child, but nil. | ||
| 491 | (should-not (keymap-lookup map "u")) | ||
| 492 | (keymap-unset map "u" t) | ||
| 493 | ;; From the parent this time/ | ||
| 494 | (should (equal (keymap-lookup map "u") #'undo)))) | ||
| 495 | |||
| 478 | (provide 'keymap-tests) | 496 | (provide 'keymap-tests) |
| 479 | 497 | ||
| 480 | ;;; keymap-tests.el ends here | 498 | ;;; keymap-tests.el ends here |