;;; test-ox-latex.el --- tests for ox-latex.el -*- lexical-binding: t; -*- ;; Copyright (C) 2022 Ihor Radchenko ;; Author: Ihor Radchenko ;; This program 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 of the License, or ;; (at your option) any later version. ;; This program 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 this program. If not, see . ;;; Commentary: ;; Tests checking validity of Org LaTeX export output. ;;; Code: (require 'ox-latex nil t) (unless (featurep 'ox-latex) (signal 'missing-test-dependency '("org-export-latex"))) (ert-deftest text-ox-latex/protect-square-brackets () "Test [foo] being interpreted as plain text even after LaTeX commands." (org-test-with-exported-text 'latex "* This is test lorem @@latex:\\pagebreak@@ [ipsum] #+begin_figure [lorem] figure #+end_figure | [foo] | 2 | | [bar] | 3 | - [bax] - [aur] " (goto-char (point-min)) (should (search-forward "lorem \\pagebreak {[}ipsum]")) (should (search-forward "{[}lorem] figure")) (should (search-forward "{[}foo]")) (should (search-forward "\\item {[}bax]")))) (ert-deftest test-ox-latex/verse () "Test verse blocks." (org-test-with-exported-text 'latex "#+begin_verse lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor #+end_verse " (goto-char (point-min)) (should (search-forward "\\begin{verse} lorem ipsum dolor\\\\ lorem ipsum dolor lorem ipsum dolor\\\\ lorem ipsum dolor lorem ipsum dolor\\\\ lorem ipsum dolor\\\\ \\end{verse}"))) ;; Footnotes inside verse blocks (org-test-with-exported-text 'latex "#+begin_verse lorem ipsum[fn::Foo bar] dolor #+end_verse [fn:1] Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit tempor. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit tempor tellus. " (goto-char (point-min)) (should (search-forward "\\begin{verse} lorem\\\\ ipsum\\footnote{Foo bar}\\\\ dolor\\\\ \\end{verse}")))) (ert-deftest test-ox-latex/longtable () "Test table export with longtable environment." (org-test-with-exported-text 'latex "#+attr_latex: :environment longtable | First | Second | | Column | Column | |--------------+--------| | a | 1 | | b | 2 | | \\pagebreak c | 3 | | d | 4 | " (goto-char (point-min)) (should (search-forward "\\begin{longtable}{lr} First & Second\\\\ Column & Column\\\\ \\hline \\endfirsthead")) (goto-char (point-min)) (should (search-forward "First & Second\\\\ Column & Column \\\\ \\hline \\endhead")) (goto-char (point-min)) (should (search-forward "\\hline\\multicolumn{2}{r}{Continued on next page} \\\\ \\endfoot")))) (ert-deftest test-ox-latex/inline-image () "Test inline images." (org-test-with-exported-text 'latex "#+caption: Schematic [[https://orgmode.org/worg/images/orgmode/org-mode-unicorn.svg][file:/wallpaper.png]]" (goto-char (point-min)) (should (search-forward "\\href{https://orgmode.org/worg/images/orgmode/org-mode-unicorn.svg}{\\includegraphics[width=.9\\linewidth]{/wallpaper.png}}")))) (provide 'test-ox-latex) ;;; test-ox-latex.el ends here