88 lines
3.1 KiB
EmacsLisp
88 lines
3.1 KiB
EmacsLisp
;;; command-expansion.el --- tests for TeX command expansion
|
|
|
|
;; Copyright (C) 2014 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 'tex-buf)
|
|
|
|
(ert-deftest TeX-command-expansion ()
|
|
"Check whether \"%%%%\" is correctly expanded when before \"%`\"."
|
|
(should (string=
|
|
(let ((TeX-command-list
|
|
(list (cons "Test" '("%%%% %`%'" TeX-run-command t t)))))
|
|
(TeX-command-expand (nth 1 (assoc "Test" TeX-command-list))
|
|
'TeX-master-file))
|
|
"%% \"\\input\"")))
|
|
|
|
(ert-deftest TeX-command-expansion-errors ()
|
|
"Test error handling in `TeX-command-expand'."
|
|
(should-error
|
|
;; This error is actually thrown by `TeX-engine-in-engine-alist', but we want
|
|
;; to be sure that `TeX-command-expand' fails when the engine is not valid.
|
|
(let ((TeX-engine 'non-existing-engine))
|
|
(TeX-command-expand "%l" 'TeX-master-file))))
|
|
|
|
(ert-deftest TeX-view-command-raw-errors ()
|
|
"Tests to trigger errors in `TeX-view-command-raw'."
|
|
;; Viewer specification should be either a command line string or a Lisp
|
|
;; function name to be executed. This test makes sure that the functions
|
|
;; throws an error if the selected viewer has a wrong specification (for
|
|
;; example a function call, not the function name) such that the returned
|
|
;; value `command' isn't a string. This prevents an infinite loop in
|
|
;; `TeX-command-expand'.
|
|
(should-error
|
|
(with-temp-buffer
|
|
(let ((TeX-view-program-list '(("viewer"
|
|
(wrong-specification))))
|
|
(TeX-view-program-selection
|
|
'((output-pdf "viewer"))))
|
|
(TeX-mode)
|
|
(TeX-view-command-raw)))
|
|
:type 'error)
|
|
;; Signal an error when a nonexistent viewer is selected.
|
|
(should-error
|
|
(with-temp-buffer
|
|
(let ((TeX-view-program-selection
|
|
'((output-pdf "does-not-exist"))))
|
|
(TeX-mode)
|
|
(TeX-view-command-raw)))
|
|
:type 'error)
|
|
;; Signal an error if the binary associated to the viewer cannot be found.
|
|
(should-error
|
|
(with-temp-buffer
|
|
(let ((TeX-view-program-list
|
|
'(("viewer" "viewer %o" "**this-program-does-not-exist**")))
|
|
(TeX-view-program-selection
|
|
'((output-pdf "viewer"))))
|
|
(TeX-mode)
|
|
(TeX-view-command-raw)))
|
|
:type 'error)
|
|
;; Error if there is no selected viewer for current buffer.
|
|
(should-error
|
|
(with-temp-buffer
|
|
(let (TeX-view-program-selection)
|
|
(TeX-mode)
|
|
(TeX-view-command-raw)))
|
|
:type 'error))
|
|
|
|
;;; command-expansion.el ends here
|