summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
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"))