Add some tests to find-func.el
This commit is contained in:
parent
0eef70aea8
commit
aba77849cd
1 changed files with 63 additions and 0 deletions
|
@ -27,6 +27,7 @@
|
|||
;;; Code:
|
||||
|
||||
(require 'ert-x) ;For `ert-run-keys'.
|
||||
(require 'find-func)
|
||||
|
||||
(ert-deftest find-func-tests--library-completion () ;bug#43393
|
||||
;; FIXME: How can we make this work in batch (see also
|
||||
|
@ -43,6 +44,68 @@
|
|||
(concat data-directory (kbd "n x / TAB RET"))
|
||||
(read-library-name)))))
|
||||
|
||||
(ert-deftest find-func-tests--locate-symbols ()
|
||||
(should (cdr
|
||||
(find-function-search-for-symbol
|
||||
#'goto-line nil "simple")))
|
||||
(should (cdr
|
||||
(find-function-search-for-symbol
|
||||
'minibuffer-history 'defvar "simple")))
|
||||
(should (cdr
|
||||
(find-function-search-for-symbol
|
||||
'with-current-buffer nil "subr")))
|
||||
(should (cdr
|
||||
(find-function-search-for-symbol
|
||||
'font-lock-warning-face 'defface "font-lock")))
|
||||
(should-not (cdr
|
||||
(find-function-search-for-symbol
|
||||
'wrong-variable 'defvar "simple")))
|
||||
(should-not (cdr
|
||||
(find-function-search-for-symbol
|
||||
'wrong-function nil "simple")))
|
||||
(should (cdr (find-function-noselect #'goto-line)))
|
||||
(should (cdr (find-function-noselect #'goto-char)))
|
||||
;; Setting LISP-ONLY and passing a primitive should error.
|
||||
(should-error (find-function-noselect #'goto-char t))
|
||||
(should-error (find-function-noselect 'wrong-function)))
|
||||
|
||||
(defun test-locate-helper (func &optional expected-result)
|
||||
"Assert on the result of `find-function-library' for FUNC.
|
||||
EXPECTED-RESULT is an alist (FUNC . LIBRARY) with the
|
||||
expected function symbol and function library, respectively."
|
||||
(cl-destructuring-bind (orig-function . library)
|
||||
(find-function-library func)
|
||||
(cl-destructuring-bind (expected-func . expected-library)
|
||||
expected-result
|
||||
(should (eq orig-function expected-func))
|
||||
(should (and
|
||||
(not (string-empty-p expected-library))
|
||||
(string-match-p expected-library library))))))
|
||||
|
||||
(ert-deftest find-func-tests--locate-library ()
|
||||
(test-locate-helper #'goto-line '(goto-line . "simple"))
|
||||
(test-locate-helper #'forward-char '(forward-char . "cmds.c"))
|
||||
(should-error (test-locate-helper 'wrong-function)))
|
||||
|
||||
(ert-deftest find-func-tests--locate-adviced-symbols ()
|
||||
(defun my-message ()
|
||||
(message "Hello!"))
|
||||
(advice-add #'mark-sexp :around 'my-message)
|
||||
(test-locate-helper #'mark-sexp '(mark-sexp . "lisp"))
|
||||
(advice-remove #'mark-sexp 'my-message))
|
||||
|
||||
(ert-deftest find-func-tests--find-library-verbose ()
|
||||
(find-function-library #'join-line nil t)
|
||||
(with-current-buffer "*Messages*"
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(skip-chars-backward "\n")
|
||||
(should (string-match-p
|
||||
".join-line. is an alias for .delete-indentation."
|
||||
(buffer-substring
|
||||
(line-beginning-position)
|
||||
(point)))))))
|
||||
|
||||
;; Avoid a byte-compilation warning that may confuse people reading
|
||||
;; the result of the following test.
|
||||
(declare-function compilation--message->loc nil "compile")
|
||||
|
|
Loading…
Add table
Reference in a new issue