summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-01-24 20:53:36 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2021-01-24 20:53:45 +0100
commite5aaa1251cfb9d6d18682a5eda137a2e12ca4213 (patch)
treef42ec923f2a4821c64032766506a560d5ab68aff /test
parent3cefda090304bbbce43d242072918ca855326842 (diff)
downloademacs-e5aaa1251cfb9d6d18682a5eda137a2e12ca4213.tar.gz
Add some elisp-mode font lock tests
Diffstat (limited to 'test')
-rw-r--r--test/lisp/progmodes/elisp-mode-tests.el51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/lisp/progmodes/elisp-mode-tests.el b/test/lisp/progmodes/elisp-mode-tests.el
index fd43707f277..0da0e393535 100644
--- a/test/lisp/progmodes/elisp-mode-tests.el
+++ b/test/lisp/progmodes/elisp-mode-tests.el
@@ -834,5 +834,56 @@ to (xref-elisp-test-descr-to-target xref)."
(indent-region (point-min) (point-max))
(should (equal (buffer-string) orig)))))
+(defun test--font (form search)
+ (with-temp-buffer
+ (emacs-lisp-mode)
+ (if (stringp form)
+ (insert form)
+ (pp form (current-buffer)))
+ (font-lock-debug-fontify)
+ (goto-char (point-min))
+ (and (re-search-forward search nil t)
+ (get-text-property (match-beginning 1) 'face))))
+
+(ert-deftest test-elisp-font-keywords-1 ()
+ ;; Special form.
+ (should (eq (test--font '(if foo bar) "(\\(if\\)")
+ 'font-lock-keyword-face))
+ ;; Macro.
+ (should (eq (test--font '(when foo bar) "(\\(when\\)")
+ 'font-lock-keyword-face))
+ (should (eq (test--font '(condition-case nil
+ (foo)
+ (error (if a b)))
+ "(\\(if\\)")
+ 'font-lock-keyword-face))
+ (should (eq (test--font '(condition-case nil
+ (foo)
+ (when (if a b)))
+ "(\\(when\\)")
+ 'nil)))
+
+(ert-deftest test-elisp-font-keywords-2 ()
+ :expected-result :failed ; FIXME bug#43265
+ (should (eq (test--font '(condition-case nil
+ (foo)
+ (error (when a b)))
+ "(\\(when\\)")
+ 'font-lock-keyword-face)))
+
+(ert-deftest test-elisp-font-keywords-3 ()
+ :expected-result :failed ; FIXME bug#43265
+ (should (eq (test--font '(setq a '(if when zot))
+ "(\\(if\\)")
+ nil)))
+
+(ert-deftest test-elisp-font-keywords-if ()
+ :expected-result :failed ; FIXME bug#43265
+ (should (eq (test--font '(condition-case nil
+ (foo)
+ ((if foo) (when a b)))
+ "(\\(if\\)")
+ nil)))
+
(provide 'elisp-mode-tests)
;;; elisp-mode-tests.el ends here