;;; register-tests.el --- tests for register.el -*- lexical-binding: t-*- ;; Copyright (C) 2017-2026 Free Software Foundation, Inc. ;; Author: Tino Calancha ;; Keywords: ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;;; Code: (require 'ert) (require 'cl-lib) (ert-deftest register-test-bug27634 () "Test for https://debbugs.gnu.org/27634 ." (dolist (event (list ?\C-g 'escape ?\C-\[)) (cl-letf (((symbol-function 'read-key) #'ignore) (last-input-event event) (register-alist nil)) (should (equal 'quit (condition-case err (call-interactively 'point-to-register) (quit (car err))))) (should-not register-alist)))) (require 'frameset) (require 'semantic/senator) (require 'doc-view) (ert-deftest register--jumpable-p () ;; Keyboard macro (should (register--jumpable-p (kmacro "test"))) ;; Marker (should (register--jumpable-p (make-marker))) ;; Frameset (should (register--jumpable-p (frameset-make-register (frameset-save nil :app 'register :filters frameset-session-filter-alist) (frameset-frame-id nil) (point-marker)))) ;; Frame configuration (should (register--jumpable-p (list (current-frame-configuration) (point-marker)))) ;; Window configuration (should (register--jumpable-p (list (current-window-configuration) (point-marker)))) ;; File (should (register--jumpable-p '(file . "foo"))) ;; Buffer (should (register--jumpable-p '(buffer . "foo"))) ;; File to revisit (should (register--jumpable-p '(file-query "quux" 1))) ;; Senator's semantic tag (should (register--jumpable-p (senator-make-register (list "foo" 'type nil nil (make-overlay 1 1))))) ;; DocView: FIXME -- this should pass! (should (register--jumpable-p (cons 'doc-view (list (cons 'buffer (current-buffer)) '(file . "foo") '(page . 1))))) (should-not (register--jumpable-p "test"))) (provide 'register-tests) ;;; register-tests.el ends here