From 46909a54e1a2ce0d948e94e0e19ff64af1a39eb9 Mon Sep 17 00:00:00 2001 From: Leo Butler Date: Sun, 17 Mar 2024 08:14:54 -0500 Subject: [PATCH] testing/lisp/test-ox-beamer.el: New regression tests for ox-beamer. * testing/lisp/test-ox-beamer.el (ox-beamer/orgframe, ox-beamer/orgframe-in-example, ox-beamer/orgframe-in-one-example): New file. Regression tests for ox-beamer. Test that the `org-beamer-frame-environment' is defined only when used. --- testing/lisp/test-ox-beamer.el | 110 +++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 testing/lisp/test-ox-beamer.el diff --git a/testing/lisp/test-ox-beamer.el b/testing/lisp/test-ox-beamer.el new file mode 100644 index 000000000..be83b12e0 --- /dev/null +++ b/testing/lisp/test-ox-beamer.el @@ -0,0 +1,110 @@ +;;; test-ox-beamer.el --- tests for ox-beamer.el -*- lexical-binding: t; -*- + +;; Copyright (C) 2024 Leo Butler + +;; Author: Leo Butler + +;; 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 Beamer export output. + +;;; Code: + +(require 'ox-beamer nil t) +(unless (featurep 'ox-beamer) + (signal 'missing-test-dependency "org-export-beamer")) + + + +(ert-deftest ox-beamer/orgframe () + "Test that `org-beamer-frame-environment' is defined and used." + (org-test-with-exported-text + 'beamer + "#+OPTIONS: toc:nil +* A frame +Here is an example: +#+begin_example +\\begin{frame} +... +\\end{frame} +#+end_example +" + (goto-char (point-min)) + (should (search-forward (concat "\\newenvironment<>{" org-beamer-frame-environment "}") nil t)) + (should (search-forward (concat "\\begin{" org-beamer-frame-environment "}") nil t)) + (should (search-forward (concat "\\end{" org-beamer-frame-environment "}") nil t)))) + +(ert-deftest ox-beamer/orgframe-in-example () + "Test that `org-beamer-frame-environment' is not defined." + (org-test-with-exported-text + 'beamer + (concat "#+OPTIONS: toc:nil +* A frame +Here is an example: +#+begin_example +\\begin{" org-beamer-frame-environment "} +... +\\end{" org-beamer-frame-environment "} +#+end_example +") + (goto-char (point-min)) + (should-not (search-forward + (concat "\\newenvironment<>{" org-beamer-frame-environment "}") nil t)) + (forward-line) + (should (search-forward (concat "\\begin{frame}") nil t)) + (should (search-forward (concat "\\begin{" org-beamer-frame-environment "}"))) + (should (search-forward (concat "\\end{" org-beamer-frame-environment "}"))) + (should (search-forward (concat "\\end{frame}") nil t)))) + +(ert-deftest ox-beamer/orgframe-in-one-example () + "Test that `org-beamer-frame-environment' is defined. +First frame should use \"frame\" environment, the second uses +`org-beamer-frame-environment'." + (org-test-with-exported-text + 'beamer + (concat "#+OPTIONS: toc:nil +* A frame +Here is an example: +#+begin_example +\\begin{" org-beamer-frame-environment "} +... +\\end{" org-beamer-frame-environment "} +#+end_example + +* A second frame +Here is a second example: +#+begin_example +\\begin{frame} +... +\\end{frame} +#+end_example +") + (goto-char (point-min)) + (should (search-forward + (concat "\\newenvironment<>{" org-beamer-frame-environment "}") nil t)) + (forward-line) + (org-test-ignore-duplicate + (should (search-forward (concat "\\begin{frame}") nil t)) + (should (search-forward (concat "\\begin{" org-beamer-frame-environment "}"))) + (should (search-forward (concat "\\end{" org-beamer-frame-environment "}"))) + (should (search-forward (concat "\\end{frame}") nil t)) + (should (search-forward (concat "\\begin{" org-beamer-frame-environment "}"))) + (should (search-forward (concat "\\begin{frame}") nil t)) + (should (search-forward (concat "\\end{frame}") nil t)) + (should (search-forward (concat "\\end{" org-beamer-frame-environment "}")))))) + +(provide 'test-ox-beamer) +;;; test-ox-beamer.el ends here