Skip to content

Commit

Permalink
Merge pull request #410 from rswgnu/add-tests-for-ebut-link-directly
Browse files Browse the repository at this point in the history
Add tests for ebut-link-directly and gbut-link-directly
  • Loading branch information
rswgnu authored Nov 30, 2023
2 parents ae55b5c + 12c2f5d commit 3692855
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 2 deletions.
9 changes: 8 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2023-11-30 Mats Lidell <[email protected]>

* test/hui-tests.el (hui--ebut-link-directly-to-file)
(hui--ebut-link-directly-to-dired, hui--buf-writable-err)
(hui--gbut-link-directly-ibut, hui--gbut-link-directly-ebut): Add
tests for ebut-link-directly.

2023-11-29 Mats Lidell <[email protected]>

* test/hyrolo-tests.el (hyrolo-fgrep-and-goto-next-visible-org-heading)
Expand All @@ -7,7 +14,7 @@
(hyrolo-fgrep-and-goto-next-visible-kotl-heading-level-2)
(hyrolo-fgrep-and-goto-next-visible-kotl-heading-cell-2): Add test for
moving to next header and that action-key then brings you to the
matching record.
matchi

2023-11-25 Mats Lidell <[email protected]>

Expand Down
103 changes: 102 additions & 1 deletion test/hui-tests.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Mats Lidell <[email protected]>
;;
;; Orig-Date: 30-Jan-21 at 12:00:00
;; Last-Mod: 15-Nov-23 at 01:57:15 by Bob Weiner
;; Last-Mod: 30-Nov-23 at 19:53:31 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -831,6 +831,107 @@ With point on label suggest that ibut for rename."
(hy-delete-file-and-buffer filea)
(hy-delete-file-and-buffer fileb))))

(ert-deftest hui--ebut-link-directly-to-file ()
"Create a direct link to a file."
(let ((filea (make-temp-file "hypb" nil ".txt"))
(fileb (make-temp-file "hypb" nil ".txt" "1234567890")))
(unwind-protect
(progn
(delete-other-windows)
(find-file fileb)
(goto-char (point-max))
(split-window)
(find-file filea)
(with-simulated-input "button RET"
(hui:ebut-link-directly (get-buffer-window)
(get-buffer-window (get-file-buffer fileb)))
(should (string= (buffer-string) "<(button)>"))
(hy-test-helpers-verify-hattr-at-p :actype 'actypes::link-to-file
:args (list fileb 11)
:loc filea
:lbl-key "button")))
(hy-delete-file-and-buffer filea)
(hy-delete-file-and-buffer fileb))))

(ert-deftest hui--ebut-link-directly-to-dired ()
"Create a direct link to a directory in Dired."
(let* ((file (make-temp-file "hypb" nil ".txt"))
(dir hyperb:dir)
dir-buf)
(unwind-protect
(progn
(delete-other-windows)
(setq dir-buf (dired dir))
(goto-char (point-min))
;; Move point just prior to last colon on the first dired directory line;
;; With some dired formats, there may be text after the last colon.
(goto-char (line-end-position))
(skip-chars-backward "^:")
(when (/= (point) (point-min))
(goto-char (1- (point))))
(split-window)
(find-file file)
(with-simulated-input "button RET"
(hui:ebut-link-directly (get-buffer-window) (get-buffer-window dir-buf))
;; Implicit link should be the `dir' dired directory,
;; possibly minus the final directory '/'.
(should (string= (buffer-string) "<(button)>"))
(hy-test-helpers-verify-hattr-at-p :actype 'actypes::link-to-directory
:args (list (directory-file-name hyperb:dir)) ; Remove trailing slash!?
:loc file
:lbl-key "button")))
(hy-delete-file-and-buffer file))))

(ert-deftest hui--buf-writable-err ()
"Verify error is signaled if buffer is not writable."
(with-temp-buffer
(read-only-mode)
(condition-case err
(hui:buf-writable-err (current-buffer) "func")
(error
(progn
(should (equal (car err) 'error))
(should (string-match
"(func) Read-only error in Hyperbole button buffer"
(cadr err))))))))

(ert-deftest hui--gbut-link-directly-ibut ()
"Verify an ibut is created last in the global but file."
(defvar global-but-file)
(let ((global-but-file (make-temp-file "gbut" nil ".txt" "First\n"))
(file (make-temp-file "hypb" nil ".txt")))
(unwind-protect
(mocklet ((gbut:file => global-but-file))
(delete-other-windows)
(find-file file)
(with-simulated-input "button RET"
(hui:gbut-link-directly t)
(with-current-buffer (find-buffer-visiting global-but-file)
(should (string= (buffer-string)
(concat "First\n<[button]> - \"" file ":1\""))))))
(hy-delete-file-and-buffer global-but-file)
(hy-delete-file-and-buffer file))))

(ert-deftest hui--gbut-link-directly-ebut ()
"Verify an ebut is created last in the global but file."
(defvar global-but-file)
(let ((global-but-file (make-temp-file "gbut" nil ".txt" "First\n"))
(file (make-temp-file "hypb" nil ".txt")))
(unwind-protect
(mocklet ((gbut:file => global-but-file))
(delete-other-windows)
(find-file file)
(with-simulated-input "button RET"
(hui:gbut-link-directly)
(with-current-buffer (find-buffer-visiting global-but-file)
(should (string= (buffer-string) "First\n<(button)>\n"))
(hy-test-helpers-verify-hattr-at-p :actype 'actypes::link-to-file
:args (list file 1)
:loc global-but-file
:lbl-key "button"))))
(hy-delete-file-and-buffer global-but-file)
(hy-delete-file-and-buffer file))))

;; This file can't be byte-compiled without `with-simulated-input' which
;; is not part of the actual dependencies, so:
;; Local Variables:
Expand Down

0 comments on commit 3692855

Please sign in to comment.