summaryrefslogtreecommitdiff
path: root/tests/test-custom-misc-jump-to-matching-paren.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-14 02:31:16 -0600
committerCraig Jennings <c@cjennings.net>2025-11-14 02:31:16 -0600
commit9d55ed149e100b4fb3ef6f5a79d263dcb26ce835 (patch)
treeb02a77b84849f15b4302fda8f3f8e3942cb253ac /tests/test-custom-misc-jump-to-matching-paren.el
parent7b982b1984dd37af42a2dfc9f4c3e52b27102860 (diff)
checking in modified/removed tests and other misc changes
Diffstat (limited to 'tests/test-custom-misc-jump-to-matching-paren.el')
-rw-r--r--tests/test-custom-misc-jump-to-matching-paren.el197
1 files changed, 0 insertions, 197 deletions
diff --git a/tests/test-custom-misc-jump-to-matching-paren.el b/tests/test-custom-misc-jump-to-matching-paren.el
deleted file mode 100644
index 973b6dfa..00000000
--- a/tests/test-custom-misc-jump-to-matching-paren.el
+++ /dev/null
@@ -1,197 +0,0 @@
-;;; test-custom-misc-jump-to-matching-paren.el --- Tests for cj/jump-to-matching-paren -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; Tests for the cj/jump-to-matching-paren function from custom-misc.el
-;;
-;; This function jumps to matching delimiters using Emacs's sexp navigation.
-;; It works with any delimiter that has matching syntax according to the
-;; current syntax table (parentheses, brackets, braces, etc.).
-;;
-;; Unlike other functions in this test suite, this is an INTERACTIVE function
-;; that moves point and displays messages. We test it as an integration test
-;; by setting up buffers, positioning point, calling the function, and
-;; verifying where point ends up.
-;;
-;; Key behaviors:
-;; - When on opening delimiter: jump forward to matching closing delimiter
-;; - When on closing delimiter: jump backward to matching opening delimiter
-;; - When just after closing delimiter: jump backward to matching opening
-;; - When not on delimiter: display message, don't move
-;; - When no matching delimiter: display error message, don't move
-
-;;; Code:
-
-(require 'ert)
-(require 'testutil-general)
-
-;; Add modules directory to load path
-(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
-
-;; Stub dependencies before loading the module
-(defvar cj/custom-keymap (make-sparse-keymap)
- "Stub keymap for testing.")
-
-;; Now load the actual production module
-(require 'custom-misc)
-
-;;; Test Helpers
-
-(defun test-jump-to-matching-paren (text point-position)
- "Test cj/jump-to-matching-paren with TEXT and point at POINT-POSITION.
-Returns the new point position after calling the function.
-POINT-POSITION is 1-indexed (1 = first character)."
- (with-temp-buffer
- (emacs-lisp-mode) ; Use elisp mode for proper syntax table
- (insert text)
- (goto-char point-position)
- (cj/jump-to-matching-paren)
- (point)))
-
-;;; Normal Cases - Forward Jump (Opening to Closing)
-
-(ert-deftest test-jump-paren-forward-simple ()
- "Should jump forward from opening paren to closing paren."
- ;; Text: "(hello)"
- ;; Start at position 1 (on opening paren)
- ;; Should end at position 8 (after closing paren)
- (should (= 8 (test-jump-to-matching-paren "(hello)" 1))))
-
-(ert-deftest test-jump-paren-forward-nested ()
- "Should jump forward over nested parens."
- ;; Text: "(foo (bar))"
- ;; Start at position 1 (on outer opening paren)
- ;; Should end at position 12 (after outer closing paren)
- (should (= 12 (test-jump-to-matching-paren "(foo (bar))" 1))))
-
-(ert-deftest test-jump-paren-forward-inner-nested ()
- "Should jump forward from inner opening paren."
- ;; Text: "(foo (bar))"
- ;; Start at position 6 (on inner opening paren)
- ;; Should end at position 11 (after inner closing paren)
- (should (= 11 (test-jump-to-matching-paren "(foo (bar))" 6))))
-
-(ert-deftest test-jump-bracket-forward ()
- "Should jump forward from opening bracket."
- ;; Text: "[1 2 3]"
- ;; Start at position 1
- ;; Should end at position 8
- (should (= 8 (test-jump-to-matching-paren "[1 2 3]" 1))))
-
-;; Note: Braces are not treated as matching delimiters in emacs-lisp-mode
-;; so we don't test them here
-
-;;; Normal Cases - Backward Jump (Closing to Opening)
-
-(ert-deftest test-jump-paren-backward-simple ()
- "Should jump backward from closing paren to opening paren."
- ;; Text: "(hello)"
- ;; Start at position 7 (on closing paren)
- ;; Should end at position 2 (after opening paren)
- (should (= 2 (test-jump-to-matching-paren "(hello)" 7))))
-
-(ert-deftest test-jump-paren-backward-nested ()
- "Should jump backward over nested parens from after outer closing."
- ;; Text: "(foo (bar))"
- ;; Start at position 12 (after outer closing paren)
- ;; backward-sexp goes back to before opening paren
- (should (= 1 (test-jump-to-matching-paren "(foo (bar))" 12))))
-
-(ert-deftest test-jump-paren-backward-inner-nested ()
- "Should jump backward from inner closing paren."
- ;; Text: "(foo (bar))"
- ;; Start at position 10 (on inner closing paren)
- ;; Should end at position 7 (after inner opening paren)
- (should (= 7 (test-jump-to-matching-paren "(foo (bar))" 10))))
-
-(ert-deftest test-jump-bracket-backward ()
- "Should jump backward from after closing bracket."
- ;; Text: "[1 2 3]"
- ;; Start at position 8 (after ])
- ;; backward-sexp goes back one sexp
- (should (= 1 (test-jump-to-matching-paren "[1 2 3]" 8))))
-
-;;; Normal Cases - Jump from After Closing Delimiter
-
-(ert-deftest test-jump-paren-after-closing ()
- "Should jump backward when just after closing paren."
- ;; Text: "(hello)"
- ;; Start at position 8 (after closing paren)
- ;; backward-sexp goes back one sexp, ending before the opening paren
- (should (= 1 (test-jump-to-matching-paren "(hello)" 8))))
-
-;;; Boundary Cases - No Movement
-
-(ert-deftest test-jump-paren-not-on-delimiter ()
- "Should not move when not on delimiter."
- ;; Text: "(hello world)"
- ;; Start at position 3 (on 'e' in hello)
- ;; Should stay at position 3
- (should (= 3 (test-jump-to-matching-paren "(hello world)" 3))))
-
-(ert-deftest test-jump-paren-on-whitespace ()
- "Should not move when on whitespace."
- ;; Text: "(hello world)"
- ;; Start at position 7 (on space)
- ;; Should stay at position 7
- (should (= 7 (test-jump-to-matching-paren "(hello world)" 7))))
-
-;;; Boundary Cases - Unmatched Delimiters
-
-(ert-deftest test-jump-paren-unmatched-opening ()
- "Should not move from unmatched opening paren."
- ;; Text: "(hello"
- ;; Start at position 1 (on opening paren with no closing)
- ;; Should stay at position 1
- (should (= 1 (test-jump-to-matching-paren "(hello" 1))))
-
-(ert-deftest test-jump-paren-unmatched-closing ()
- "Should move to beginning from unmatched closing paren."
- ;; Text: "hello)"
- ;; Start at position 6 (on closing paren with no opening)
- ;; backward-sexp with unmatched closing paren goes to beginning
- (should (= 1 (test-jump-to-matching-paren "hello)" 6))))
-
-;;; Boundary Cases - Empty Delimiters
-
-(ert-deftest test-jump-paren-empty ()
- "Should jump over empty parens."
- ;; Text: "()"
- ;; Start at position 1
- ;; Should end at position 3
- (should (= 3 (test-jump-to-matching-paren "()" 1))))
-
-(ert-deftest test-jump-paren-empty-backward ()
- "Should stay put when on closing paren of empty parens."
- ;; Text: "()"
- ;; Start at position 2 (on closing paren)
- ;; backward-sexp from closing of empty parens gives an error, so stays at 2
- (should (= 2 (test-jump-to-matching-paren "()" 2))))
-
-;;; Boundary Cases - Multiple Delimiter Types
-
-(ert-deftest test-jump-paren-mixed-delimiters ()
- "Should jump over mixed delimiter types."
- ;; Text: "(foo [bar {baz}])"
- ;; Start at position 1 (on opening paren)
- ;; Should end at position 18 (after closing paren)
- (should (= 18 (test-jump-to-matching-paren "(foo [bar {baz}])" 1))))
-
-(ert-deftest test-jump-bracket-in-parens ()
- "Should jump from bracket inside parens."
- ;; Text: "(foo [bar])"
- ;; Start at position 6 (on opening bracket)
- ;; Should end at position 11 (after closing bracket)
- (should (= 11 (test-jump-to-matching-paren "(foo [bar])" 6))))
-
-;;; Complex Cases - Strings and Comments
-
-(ert-deftest test-jump-paren-over-string ()
- "Should jump over parens containing strings."
- ;; Text: "(\"hello (world)\")"
- ;; Start at position 1 (on opening paren)
- ;; Should end at position 18 (after closing paren)
- ;; The parens in the string should be ignored
- (should (= 18 (test-jump-to-matching-paren "(\"hello (world)\")" 1))))
-
-(provide 'test-custom-misc-jump-to-matching-paren)
-;;; test-custom-misc-jump-to-matching-paren.el ends here