summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVedang Manerikar <ved.manerikar@gmail.com>2025-12-30 21:19:04 +0530
committerVedang Manerikar <ved.manerikar@gmail.com>2025-12-31 08:32:12 +0530
commit804d183c59c7804f94fab652658fa7d4c4fd6ca0 (patch)
treeee393c7d791cd650b1866975e61d059bb34daeab /test
parent2e4b7bc3512017309c47e9db2ed419a872a79c28 (diff)
fix(pdf-view): replace obsolete registerv-make with cl-defstruct
The registerv-make function was deprecated in Emacs 27.1. Replace it with a proper cl-defstruct (pdf-view-register) and cl-defmethod implementations for register-val-jump-to, register-val-describe, and register-val-insert. Add tests for the register API used by pdf-view: - pdf-view-registerv-make-creates-register: verifies register creation - pdf-view-register-val-insert: verifies insert method works - pdf-view-position-to-register-stores-position: verifies store/retrieve Fixes: #333
Diffstat (limited to 'test')
-rw-r--r--test/pdf-view-test.el48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/pdf-view-test.el b/test/pdf-view-test.el
index 58f6be5..4a4a74b 100644
--- a/test/pdf-view-test.el
+++ b/test/pdf-view-test.el
@@ -3,6 +3,54 @@
(require 'pdf-view)
(require 'ert)
+;; Tests for pdf-view-register struct and cl-defmethod implementations.
+;; These tests use mock bookmark data because the actual pdf-view-registerv-make
+;; function requires a window context which isn't available in batch mode.
+
+(ert-deftest pdf-view-register-struct-creation ()
+ "Test that pdf-view-register struct can be created."
+ (let* ((mock-bookmark '("test.pdf"
+ (filename . "/path/to/test.pdf")
+ (page . 1)
+ (origin . (0.0 . 0.0))
+ (handler . pdf-view-bookmark-jump-handler)))
+ (reg (pdf-view-register--make mock-bookmark)))
+ ;; Should return non-nil
+ (should reg)
+ ;; Should be a pdf-view-register struct
+ (should (pdf-view-register-p reg))
+ ;; Should store the bookmark
+ (should (equal (pdf-view-register-bookmark reg) mock-bookmark))))
+
+(ert-deftest pdf-view-register-val-describe ()
+ "Test that register-val-describe works for PDF register entries."
+ (let* ((mock-bookmark '("test.pdf"
+ (filename . "/path/to/test.pdf")
+ (page . 5)
+ (origin . (0.0 . 0.5))
+ (handler . pdf-view-bookmark-jump-handler)))
+ (reg (pdf-view-register--make mock-bookmark)))
+ ;; register-val-describe should return a non-empty string
+ (should (stringp
+ (with-output-to-string
+ (register-val-describe reg nil))))
+ ;; The description should mention the page number
+ (should (string-match-p "page 5"
+ (with-output-to-string
+ (register-val-describe reg nil))))))
+
+(ert-deftest pdf-view-register-val-insert ()
+ "Test that register-val-insert works for PDF register entries."
+ (let* ((mock-bookmark '("test.pdf"
+ (filename . "/path/to/test.pdf")
+ (page . 1)
+ (handler . pdf-view-bookmark-jump-handler)))
+ (reg (pdf-view-register--make mock-bookmark)))
+ ;; register-val-insert should insert text without error
+ (with-temp-buffer
+ (register-val-insert reg)
+ (should (> (buffer-size) 0)))))
+
(ert-deftest pdf-view-handle-archived-file ()
:expected-result :failed
(skip-unless (executable-find "gzip"))