branch: externals/hyperbole
commit 2349505d4967294c921dc32f5c83fac40e1c5e64
Author: Mats Lidell <mats.lid...@lidells.se>
Commit: GitHub <nore...@github.com>

    Add Rolo key tests (#115)
---
 ChangeLog            |   8 ++++
 test/hyrolo-tests.el | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 118 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 03e5ba5..0405b76 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2021-09-05  Mats Lidell  <ma...@gnu.org>
+
+* test/hyrolo-tests.el (hyrolo-demo-show-overview)
+    (hyrolo-demo-move-to-beginning-and-end-of-file)
+    (hyrolo-demo-move-between-entries-on-same-level)
+    (hyrolo-demo-no-following-same-level-heading): Add tests for rolo keys.
+    (hyrolo-demo-toggle-visibility): Update to test key 's'.
+
 2021-08-19  Mats Lidell  <ma...@gnu.org>
 
 * test/hbut-tests.el (hbut-tests:should-match-tmp-folder): Add check for
diff --git a/test/hyrolo-tests.el b/test/hyrolo-tests.el
index 68ce444..35d3181 100644
--- a/test/hyrolo-tests.el
+++ b/test/hyrolo-tests.el
@@ -64,14 +64,122 @@
         (should (looking-at "Work"))
 
         (should (hact 'kbd-key "h"))
-        (hy-test-helpers:consume-input-events)
         (end-of-line)
         (should (get-char-property (point) 'invisible))
 
         (should (hact 'kbd-key "a"))
-        (hy-test-helpers:consume-input-events)
+        (should-not (get-char-property (point) 'invisible))
+
+        (should (hact 'kbd-key "h"))
+        (end-of-line)
+        (should (get-char-property (point) 'invisible))
+
+        (should (hact 'kbd-key "s"))
         (should-not (get-char-property (point) 'invisible)))
     (hyrolo-demo-quit)))
 
+(ert-deftest hyrolo-demo-show-overview ()
+  "Keys o shall show overview."
+  (skip-unless (not noninteractive))
+  (unwind-protect
+      (progn
+        (load "../hyrolo-demo")
+        (should (hact 'kbd-key "C-x 4r work RET TAB"))
+        (hy-test-helpers:consume-input-events)
+        (should (string= (buffer-name) "*Hyperbole Rolo*"))
+        (should (looking-at "Work"))
+
+        (should (hact 'kbd-key "o"))
+        (hy-test-helpers:consume-input-events)
+        (end-of-line)
+        (should-not (get-char-property (point) 'invisible))
+
+        ;; Check second line is an outline
+        (should (hact 'kbd-key "n"))
+        (end-of-line)
+        (should (get-char-property (point) 'invisible))
+
+        ;; Check third line is an outline
+        (should (hact 'kbd-key "n"))
+        (end-of-line)
+        (should (get-char-property (point) 'invisible))
+
+        ;; Check fourth line is end of buffer
+        (should (hact 'kbd-key "n"))
+        (should (equal (point) (point-max))))
+    (hyrolo-demo-quit)))
+
+(ert-deftest hyrolo-demo-move-to-beginning-and-end-of-file ()
+  "Keys '<', '.' and '>', ',' shall move to beginning and end of file 
respectively."
+  (skip-unless (not noninteractive))
+  (unwind-protect
+      (progn
+        (load "../hyrolo-demo")
+        (should (hact 'kbd-key "C-x 4r work RET TAB"))
+        (hy-test-helpers:consume-input-events)
+        (should (string= (buffer-name) "*Hyperbole Rolo*"))
+        (should (looking-at "Work"))
+
+        (should (hact 'kbd-key ">"))
+        (should (equal (point) (point-max)))
+
+        (should (hact 'kbd-key "<"))
+        (should (equal (point) (point-min)))
+
+        (should (hact 'kbd-key ","))
+        (should (equal (point) (point-max)))
+
+        (should (hact 'kbd-key "."))
+        (should (equal (point) (point-min))))
+    (hyrolo-demo-quit)))
+
+(ert-deftest hyrolo-demo-move-between-entries-on-same-level ()
+  "Keys '<', '.' and '>', ',' shall move to beginning and end of file 
respectively."
+  (skip-unless (not noninteractive))
+  (unwind-protect
+      (progn
+        (load "../hyrolo-demo")
+        (should (hact 'kbd-key "C-x 4r com RET TAB"))
+        (hy-test-helpers:consume-input-events)
+        (should (string= (buffer-name) "*Hyperbole Rolo*"))
+        (should (hact 'kbd-key "<"))
+        (should (equal (point) (point-min)))
+
+        (should (hact 'kbd-key "n"))
+        (should (looking-at "\\*\\*\\s-+Strong"))
+
+        (should (hact 'kbd-key "f"))
+        (should (looking-at "\\*\\*\\s-+Hansen"))
+
+        (should (hact 'kbd-key "b"))
+        (should (looking-at "\\*\\*\\s-+Strong")))
+    (hyrolo-demo-quit)))
+
+(ert-deftest hyrolo-demo-no-following-same-level-heading ()
+  "Error when trying to move to non existing next level heading."
+  (skip-unless (not noninteractive))
+  (unwind-protect
+      (progn
+        (load "../hyrolo-demo")
+        (should (hact 'kbd-key "C-x 4r com RET TAB"))
+        (hy-test-helpers:consume-input-events)
+        (should (string= (buffer-name) "*Hyperbole Rolo*"))
+        (should (hact 'kbd-key "<"))
+        (should (equal (point) (point-min)))
+
+        (should (hact 'kbd-key "n"))
+        (should (looking-at "\\*\\*\\s-+Strong"))
+
+        (should (hact 'kbd-key "n"))
+        (should (looking-at "\\*\\*\\*\\s-+Smith"))
+
+        (condition-case err
+            (should (hact 'kbd-key "f"))
+          (error
+           (progn
+             (should (equal (car err) 'error))
+             (should (string-match "No following same-level heading" (cadr 
err)))))))
+    (hyrolo-demo-quit)))
+
 (provide 'hyrolo-tests)
 ;;; hyrolo-tests.el ends here

Reply via email to