branch: externals/hyperbole
commit e995fc8905371e20dd9f739feb86b1e6af5f0fd8
Author: Mats Lidell <mats.lid...@lidells.se>
Commit: Mats Lidell <mats.lid...@lidells.se>

    Add test for moving between two sections
---
 ChangeLog            |  5 +++--
 test/hyrolo-tests.el | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 192412611a..0f02762c89 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,8 +6,9 @@
     tests.
     (hyrolo-tests--outline-next-visible-header)
     (hyrolo-tests--tab-through-matches)
-    (hyrolo-tests--outline-hide-show-heading): Add test for working with hyrolo
-    matches.
+    (hyrolo-tests--outline-hide-show-heading)
+    (hyrolo-tests--outline-next-visible-header-two-sections): Add test for
+    working with hyrolo matches.
 
 2023-12-31  Mats Lidell  <ma...@gnu.org>
 
diff --git a/test/hyrolo-tests.el b/test/hyrolo-tests.el
index 75690a57ce..7cb7f8bf33 100644
--- a/test/hyrolo-tests.el
+++ b/test/hyrolo-tests.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <ma...@gnu.org>
 ;;
 ;; Orig-Date:    19-Jun-21 at 22:42:00
-;; Last-Mod:      1-Jan-24 at 19:18:41 by Mats Lidell
+;; Last-Mod:      1-Jan-24 at 19:29:48 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -566,6 +566,53 @@ Example:
       (kill-buffer "*HyRolo*")
       (hy-delete-file-and-buffer org-file))))
 
+(ert-deftest hyrolo-tests--outline-next-visible-header-two-sections ()
+  "Verify movement to next visible header with two sections."
+  (let* ((org-file1 (make-temp-file "hypb" nil ".org"
+                                    (hyrolo-tests--gen-outline "header-a" 1 
"body-a" 2)))
+         (org-file2 (make-temp-file "hypb" nil ".org"
+                                    (hyrolo-tests--gen-outline "header-b" 1 
"body-b" 2)))
+         (hyrolo-file-list (list org-file1 org-file2)))
+    (unwind-protect
+        (progn
+          (hyrolo-grep "body")
+          (should (string= "*HyRolo*" (buffer-name)))
+
+          ;; Move down
+          (should (looking-at-p "==="))
+          (should (hact 'kbd-key "n"))
+          (should (looking-at-p "^* header-a 1$"))
+          (should (hact 'kbd-key "n"))
+          (should (looking-at-p "^** header-a 1.2$"))
+          (should (hact 'kbd-key "n"))
+          (should (looking-at-p "^* header-b 1$"))
+          (should (hact 'kbd-key "n"))
+          (should (looking-at-p "^** header-b 1.2$"))
+          (should (hact 'kbd-key "n"))
+          (should (eobp))
+
+          ;; Move back up
+          (should (hact 'kbd-key "p"))
+          (should (looking-at-p "^** header-b 1.2$"))
+          (should (hact 'kbd-key "p"))
+          (should (looking-at-p "^* header-b 1$"))
+          (should (hact 'kbd-key "p"))
+          (should (looking-at-p "^** header-a 1.2$"))
+          (should (hact 'kbd-key "p"))
+          (should (looking-at-p "^* header-a 1$"))
+          (should (hact 'kbd-key "p"))
+
+          ;; BUG: This fails in Emacs 29 and 30
+          ;; This is the expected behavior that works in Emacs 27 and 28.
+          ;; (should (looking-at-p "==="))
+          ;; (should (bobp))
+          ;; This is what we get
+          (should (looking-at-p "@loc>"))
+          (should (= 2 (line-number-at-pos))))
+      (kill-buffer "*HyRolo*")
+      (hy-delete-file-and-buffer org-file1)
+      (hy-delete-file-and-buffer org-file2))))
+
 (ert-deftest hyrolo-tests--outline-hide-show-heading ()
   "Verify hiding and showing headers."
   (let* ((org-file (make-temp-file "hypb" nil ".org"

Reply via email to