diff options
| author | Vedang Manerikar <ved.manerikar@gmail.com> | 2025-12-30 21:19:04 +0530 |
|---|---|---|
| committer | Vedang Manerikar <ved.manerikar@gmail.com> | 2025-12-31 08:32:12 +0530 |
| commit | 804d183c59c7804f94fab652658fa7d4c4fd6ca0 (patch) | |
| tree | ee393c7d791cd650b1866975e61d059bb34daeab /test | |
| parent | 2e4b7bc3512017309c47e9db2ed419a872a79c28 (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.el | 48 |
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")) |
