branch: externals/hyperbole commit a6a25b80f5868cf5d955cb8071334173f862935b Author: Mats Lidell <mats.lid...@lidells.se> Commit: GitHub <nore...@github.com>
Add kotl-mode tests (#95) --- ChangeLog | 11 +++ test/kotl-mode-tests.el | 225 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 236 insertions(+) diff --git a/ChangeLog b/ChangeLog index ceeff3b..1880ef6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2021-05-24 Mats Lidell <ma...@gnu.org> + +* test/kotl-mode-tests.el (kotl-mode-extension-open-buffer-in-kotl-mode) + (kotl-mode-set-view-with-kbd, kotl-mode-idstamp-saved-with-file) + (kotl-mode-demote-keeps-idstamp, kotl-mode-demote-change-label) + (kotl-mode-views, kotl-mode-move-cell-before-cell) + (kotl-mode-move-cell-after-cell, kotl-mode-copy-cell-after-cell) + (kotl-mode-copy-cell-before-cell, kotl-mode-jump-to-cell) + (kotl-mode-goto-child-and-parent, kotl-mode-kill-cell): Add kotl-mode + tests. + 2021-05-23 Bob Weiner <r...@gnu.org> * kotl/kotl-mode.el (kotl-mode:beginning-of-buffer, diff --git a/test/kotl-mode-tests.el b/test/kotl-mode-tests.el index 36c0d39..28f43fc 100644 --- a/test/kotl-mode-tests.el +++ b/test/kotl-mode-tests.el @@ -82,6 +82,231 @@ ;; Cleanup (set-buffer-modified-p nil))) +(ert-deftest kotl-mode-extension-open-buffer-in-kotl-mode () + "When a file with kotl extension is created it enters kotl mode." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl" "hej"))) + (unwind-protect + (progn + (find-file kotl-file) + (should (equal major-mode 'kotl-mode))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-set-view-with-kbd () + "When the view mode is changed the label is changed too." + (skip-unless (not noninteractive)) + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (should (string= (kcell-view:label (point)) "1")) + (should (hact 'kbd-key "C-c C-v 0 RET")) + (hy-test-helpers:consume-input-events) + (should (eq (kview:label-type kview) 'id)) + (should (string= (kcell-view:label (point)) "01"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-idstamp-saved-with-file () + "The active view mode is saved with the buffer." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + + ;; Verify default label + (should (string= (kcell-view:label (point)) "1")) + + ;; Verify idstamp label + (kvspec:activate "ben0") + (should (eq (kview:label-type kview) 'id)) + (should (string= (kcell-view:idstamp) "01")) + (should (string= (kcell-view:label (point)) "01")) + + ;; Verify idstamp view is active when file is visited next time. + (set-buffer-modified-p t) + (save-buffer) + (kill-buffer) + (find-file kotl-file) + (should (eq (kview:label-type kview) 'id)) + (should (string= (kcell-view:idstamp) "01")) + (should (string= (kcell-view:label (point)) "01"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-demote-keeps-idstamp () + "When tree is demoted the idstamp label is not changed." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (kotl-mode:add-cell) + + ;; Verify default label + (should (string= (kcell-view:idstamp) "02")) + (should (string= (kcell-view:label (point)) "2")) + + ;; Verify idstamp label + (kvspec:activate "ben0") + (should (string= (kcell-view:idstamp) "02")) + (should (string= (kcell-view:label (point)) "02")) + + ;; Verify demote does not change idstamp label + (kotl-mode:demote-tree 0) + (should (string= (kcell-view:idstamp) "02")) + (should (string= (kcell-view:label (point)) "02"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-demote-change-label () + "When tree is demoted the label is changed." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (kotl-mode:add-cell) + + ;; Verify default label + (should (string= (kcell-view:label (point)) "2")) + + ;; Verify demote change label + (kotl-mode:demote-tree 0) + (should (string= (kcell-view:label (point)) "1a"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-label-type-activation () + "Kotl-mode test label type activation." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (kotl-mode:add-cell) + (kotl-mode:demote-tree 0) + + (should (string= (kcell-view:label (point)) "1a")) + + (kvspec:activate "ben.") + (should (string= (kcell-view:label (point)) "1.1")) + + (kvspec:activate "ben0") + (should (string= (kcell-view:label (point)) "02"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-move-cell-before-cell () + "Move cell before cell." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (insert "first") + (kotl-mode:add-cell) + (insert "second") + + (kotl-mode:move-before "2" "1" nil) + (kotl-mode:beginning-of-buffer) + + (should (string= (kcell-view:label (point)) "1")) + (should (looking-at-p "second"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-move-cell-after-cell () + "Move cell after cell." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (insert "first") + (kotl-mode:add-cell) + (insert "second") + + (kotl-mode:beginning-of-buffer) + (kotl-mode:move-after "1" "2" nil) + + (should (string= (kcell-view:label (point)) "2")) + (should (looking-at-p "first"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-copy-cell-after-cell () + "Copy cell after cell." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (insert "first") + (kotl-mode:add-cell) + (insert "second") + + (kotl-mode:beginning-of-buffer) + (kotl-mode:copy-after "1" "2" nil) + + (should (string= (kcell-view:label (point)) "3")) + (should (looking-at-p "first"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-copy-cell-before-cell () + "Copy cell after cell." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (insert "first") + (kotl-mode:add-cell) + (insert "second") + + (kotl-mode:copy-before "2" "1" nil) + + (should (string= (kcell-view:label (point)) "1")) + (should (looking-at-p "second"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-jump-to-cell () + "Kotl-mode jump to cell." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (kotl-mode:add-cell) + + (kotl-mode:goto-cell "1") + (should (string= (kcell-view:label (point)) "1")) + + (kotl-mode:goto-cell "2") + (should (string= (kcell-view:label (point)) "2"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-goto-child-and-parent () + "Kotl-mode goto child and goto parent." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (kotl-mode:add-child) + + (should (string= (kcell-view:label (point)) "1a")) + + (kotl-mode:up-level 1) + (should (string= (kcell-view:label (point)) "1")) + + (kotl-mode:down-level 1) + (should (string= (kcell-view:label (point)) "1a"))) + (delete-file kotl-file)))) + +(ert-deftest kotl-mode-kill-cell () + "Kotl-mode kill a cell test." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (progn + (find-file kotl-file) + (insert "first") + (kotl-mode:add-child) + (should (string= (kcell-view:label (point)) "1a")) + + (kotl-mode:kill-tree) + (should (string= (kcell-view:label (point)) "1")) + (kotl-mode:beginning-of-cell) + (should (looking-at-p "first")) + + (kotl-mode:kill-tree) + (kotl-mode:beginning-of-cell) + (should (looking-at-p "$"))) + (delete-file kotl-file)))) + (provide 'kotl-mode-tests) ;;; kotl-mode-tests.el ends here