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