branch: externals/auctex
commit dda49328337a847629e615d483d7b712bea85016
Author: Arash Esbati <[email protected]>
Commit: Arash Esbati <[email protected]>
Add new fontification test
* tests/latex/font-latex-test.el
(font-latex-general-fontification): Add test for general
fontification of vanilla LaTeX files.
---
tests/latex/font-latex-test.el | 178 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 178 insertions(+)
diff --git a/tests/latex/font-latex-test.el b/tests/latex/font-latex-test.el
index 5e5fccf..577ec77 100644
--- a/tests/latex/font-latex-test.el
+++ b/tests/latex/font-latex-test.el
@@ -83,4 +83,182 @@ $a$")
(should (font-latex-extend-region-backwards-quotation))
(should (= font-lock-beg 5)))))
+(ert-deftest font-latex-general-fontification ()
+ "Test general fontification in a LaTeX file."
+ (with-temp-buffer
+ (let ((TeX-install-font-lock 'font-latex-setup)
+ (font-latex-fontify-sectioning 'color))
+ (insert "\
+\\documentclass[10pt]{article}
+\\begin{document}
+\\section{Macros}
+Inline verbatim test: \\verb|x|
+Inline math test: $x$, \\(x\\)
+Marginpar test: \\marginpar{x}
+Sedate macro test: \\sedate
+\\section{Font Specifiers}
+Roman face test: \\textrm{x}
+Bold face test: \\textbf{x}
+Italic face test: \\textit{x}
+Bold italic face test: \\textit{\\textbf{x}}
+Emphasize face test: \\emph{x}
+Declarations test: \\ttfamily x {\\ttfamily x}
+ \\itshape x {\\itshape x}
+ \\bfseries x {\\bfseries x}
+\\section{Environments}
+\\subsection{Math}
+\\begin{math}
+ x
+\\end{math}
+\\[
+ x
+\\]
+\\[x\\]
+\\begin{displaymath}
+ x
+\\end{displaymath}
+\\begin{equation}
+ x
+\\end{equation}
+\\subsection{Misc.}
+\\begin{verbatim}
+x
+\\end{verbatim}
+\\begin{description}
+\\item[x] x
+\\end{description}
+\\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:\n")
+ (LaTeX-mode)
+ (font-lock-ensure)
+ (goto-char (point-min))
+
+ ;; Test for \documentclass:
+ (search-forward-regexp "\\\\document\\(?1:c\\)lass\\[")
+ (should (font-latex-faces-present-p 'font-lock-keyword-face
+ (match-beginning 1)))
+ (forward-char)
+ ;; Optional argument
+ (should (font-latex-faces-present-p 'font-lock-variable-name-face))
+ (search-forward "{")
+ (forward-char)
+ ;; Mandatory argument:
+ (should (font-latex-faces-present-p 'font-lock-function-name-face))
+ (end-of-line)
+
+ ;; Test for \section macro itself:
+ (search-forward-regexp "\\\\sec\\(?1:t\\)ion{")
+ (should (font-latex-faces-present-p 'font-lock-keyword-face
+ (match-beginning 1)))
+ (goto-char (match-end 0))
+ (forward-char)
+ ;; Test for the argument of \section:
+ (should (font-latex-faces-present-p 'font-lock-type-face))
+ (end-of-line)
+
+ ;; Test for inline verb:
+ (search-forward "\\verb|")
+ (should (font-latex-faces-present-p 'font-latex-verbatim-face))
+ (end-of-line)
+
+ ;; Test for inline math:
+ (search-forward "$")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+ (search-forward "\\(")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+ (end-of-line)
+
+ ;; Test for marginpar:
+ (search-forward "\\marginpar{")
+ (should (font-latex-faces-present-p 'font-lock-constant-face))
+ (end-of-line)
+
+ ;; Test for unfontified macro:
+ (search-forward "\\seda")
+ (should (font-latex-faces-present-p 'font-latex-sedate-face))
+ (end-of-line)
+
+ ;; Test for font specifiers:
+ (search-forward "\\textrm{")
+ (should (font-latex-faces-present-p 'font-lock-type-face))
+ (end-of-line)
+ (search-forward "\\textbf{")
+ (should (font-latex-faces-present-p 'font-latex-bold-face))
+ (end-of-line)
+ (search-forward "\\textit{")
+ (should (font-latex-faces-present-p 'font-latex-italic-face))
+ (end-of-line)
+ (search-forward "\\textit{\\textbf{")
+ (should (font-latex-faces-present-p '(font-latex-italic-face
+ font-latex-bold-face)))
+ (end-of-line)
+ (search-forward "\\emph{")
+ (should (font-latex-faces-present-p 'font-latex-italic-face))
+ (end-of-line)
+ (search-forward "\\ttfam")
+ (should (font-latex-faces-present-p 'font-lock-type-face))
+ (search-forward "\\ttfamily ")
+ (should (font-latex-faces-present-p 'font-lock-type-face))
+ (end-of-line)
+ (search-forward "\\itsha")
+ (should (font-latex-faces-present-p 'font-latex-italic-face))
+ (search-forward "\\itshape ")
+ (should (font-latex-faces-present-p 'font-latex-italic-face))
+ (end-of-line)
+ (search-forward "\\bfseri")
+ (should (font-latex-faces-present-p 'font-latex-bold-face))
+ (search-forward "\\bfseries ")
+ (should (font-latex-faces-present-p 'font-latex-bold-face))
+ (end-of-line)
+
+ ;; Test for math environments:
+ (search-forward-regexp "\\\\be\\(?1:g\\)in{ma\\(?2:t\\)h}")
+ (should (font-latex-faces-present-p 'font-lock-keyword-face
+ (match-beginning 1)))
+ (should (font-latex-faces-present-p 'font-lock-function-name-face
+ (match-beginning 2)))
+ (forward-line)
+ (skip-chars-forward "[:blank:]")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+ (LaTeX-find-matching-end)
+
+ (search-forward "\\[")
+ (forward-line)
+ (skip-chars-forward "[:blank:]")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+
+ (search-forward "\\[")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+ (end-of-line)
+
+ (search-forward "\\begin{displaymath}")
+ (forward-line)
+ (skip-chars-forward "[:blank:]")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+ (LaTeX-find-matching-end)
+
+ (search-forward "\\begin{equation}")
+ (forward-line)
+ (skip-chars-forward "[:blank:]")
+ (should (font-latex-faces-present-p 'font-latex-math-face))
+ (LaTeX-find-matching-end)
+
+ ;; Test for misc. environments:
+ (search-forward "\\begin{verbatim}")
+ (forward-line)
+ (should (font-latex-faces-present-p 'font-latex-verbatim-face))
+ (LaTeX-find-matching-end)
+
+ ;; Check the fontification of \item macro itself:
+ (search-forward-regexp "\\\\it\\(?1:e\\)m\\[")
+ (should (font-latex-faces-present-p 'font-lock-keyword-face
+ (match-beginning 1)))
+ ;; Now for the optional argument:
+ (should (font-latex-faces-present-p 'font-lock-variable-name-face))
+ (LaTeX-find-matching-end) )))
+
;;; font-latex-test.el ends here