Files
emacs.d/elpa/auctex-12.1.0/tests/latex/latex-test.el
Mateus Pinto Rodrigues 2362e805bd Add new packages installed
2018-03-27 20:52:59 -03:00

166 lines
5.6 KiB
EmacsLisp

;;; latex-test.el --- tests for LaTeX mode
;; Copyright (C) 2014--2017 Free Software Foundation, Inc.
;; This file is part of AUCTeX.
;; AUCTeX is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; AUCTeX is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with AUCTeX; see the file COPYING. If not, write to the Free
;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
;; 02110-1301, USA.
;;; Code:
(require 'ert)
(require 'latex)
(AUCTeX-set-ert-path
'LaTeX-indent-tabular-test/in
"tabular-in.tex"
'LaTeX-indent-tabular-test/out
"tabular-out.tex"
'LaTeX-filling/in
"latex-filling-in.tex"
'LaTeX-filling/out
"latex-filling-out.tex"
'LaTeX-math-indent/in
"math-indent-in.tex"
'LaTeX-math-indent/out
"math-indent-out.tex"
'tabular-count-ampersands/in
"tabular-count-ampersands-in.tex"
'tabular-count-ampersands/out
"tabular-count-ampersands-out.tex")
;; Test for detecting \& in a table cell added; see
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26010
;; Test for missing & in row added; see
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26032
(ert-deftest LaTeX-indent-tabular ()
(should (string=
(with-temp-buffer
(insert-file-contents LaTeX-indent-tabular-test/in)
(LaTeX-mode)
(indent-region (point-min) (point-max))
(buffer-string))
(with-temp-buffer
(insert-file-contents LaTeX-indent-tabular-test/out)
(buffer-string)))))
;; Another test for indentation, but for math mode, see
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20227 Let's keep those tests
;; separated so it would be easier to find the culprit of a future failure.
(ert-deftest LaTeX-math-indent ()
(should (string=
(with-temp-buffer
(insert-file-contents LaTeX-math-indent/in)
(LaTeX-mode)
(indent-region (point-min) (point-max))
(buffer-string))
(with-temp-buffer
(insert-file-contents LaTeX-math-indent/out)
(buffer-string)))))
;; Test LaTeX code with math modes is indented as expected. This has mostly to
;; do with the value of `LaTeX-fill-break-at-separators' and how
;; `LaTeX-fill-move-to-break-point' handles it. If the test fails, try to look
;; there. The second part of the test looks for unambiguousness of
;; macros starting a paragraph
;; (http://lists.gnu.org/archive/html/auctex/2017-03/msg00009.html)
(ert-deftest LaTeX-filling ()
(should (string=
(with-temp-buffer
(insert-file-contents LaTeX-filling/in)
(LaTeX-mode)
(let ((fill-column 70))
(fill-paragraph)
(let ((cmds '("captionsetup" "caption"
"parencite" "par")))
(dolist (cmd cmds)
(search-forward (concat "\\" cmd))
(save-excursion
(end-of-line 0)
(fill-paragraph)))))
(buffer-string))
(with-temp-buffer
(insert-file-contents LaTeX-filling/out)
(buffer-string)))))
;; Test for bug#19281 (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19281):
;; make sure AUCTeX is able to insert and modify an environment containing a
;; TeX-esc and braces in its name.
(ert-deftest LaTeX-change-environment-with-esc ()
(should (string=
(with-temp-buffer
(LaTeX-mode)
(LaTeX-insert-environment (concat TeX-esc "foo{bar}"))
(LaTeX-modify-environment "foobar")
(buffer-string))
(with-temp-buffer
(LaTeX-mode)
(LaTeX-insert-environment "foobar")
(buffer-string)))))
;; Test for inserting &'s with `M-RET' in various tabular environment.
;; Following styles are loaded: tabularx, tabulary, longtable,
;; dcolumn, siunitx
(ert-deftest LaTeX-count-ampersands-inserted-in-tabular ()
(should (string=
(with-temp-buffer
(insert-file-contents tabular-count-ampersands/in)
(setq TeX-parse-self t)
(LaTeX-mode)
(goto-char (point-min))
;; Do not ask for opt. argument in (TeX-insert-macro "\\"):
(let ((TeX-insert-macro-default-style 'mandatory-args-only))
(while (search-forward "LaTeX-insert-item" nil t)
(LaTeX-insert-item)))
(buffer-string))
(with-temp-buffer
(insert-file-contents tabular-count-ampersands/out)
(LaTeX-mode)
(buffer-string)))))
(ert-deftest LaTeX-addbibresource ()
"Check parsing of bibliography files added with addbibresource.
In particular, make sure dots are treated correctly and only the
last extension is stripped."
(should
(equal
(with-temp-buffer
(insert "\\addbibresource{../foo-1.bar_2.qux3.ext}")
(LaTeX-mode)
(let ((TeX-parse-self t))
(TeX-update-style t))
(LaTeX-bibliography-list))
'(("../foo-1.bar_2.qux3")))))
(ert-deftest LaTeX-auto-class-regexp ()
"Check parsing optional argument with comment correctly.
Test against RequirePackage."
(with-temp-buffer
(insert "\\RequirePackage[
backend=biber % here is a comment
]{biblatex}
")
(latex-mode)
(let ((TeX-parse-self t))
(TeX-update-style t))
(should (member "biblatex" (TeX-style-list)))
(should (LaTeX-provided-package-options-member
"biblatex" "backend=biber"))))
;;; latex-test.el ends here