[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17547: [PATCH] Add basic test suits for tildify package.
From: |
Stefan Monnier |
Subject: |
bug#17547: [PATCH] Add basic test suits for tildify package. |
Date: |
Tue, 27 May 2014 21:02:36 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) |
[ Please try not to send the same email to both emacs-devel and
bug-gnu-emacs. ]
Thanks, installed.
Stefan
>>>>> "Michal" == Michal Nazarewicz <mina86@mina86.com> writes:
> ---
> lisp/ChangeLog | 5 ++
> lisp/textmodes/tildify.el | 22 +++++----
> test/ChangeLog | 4 ++
> test/automated/tildify-tests.el | 106
> ++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 128 insertions(+), 9 deletions(-)
> create mode 100644 test/automated/tildify-tests.el
> diff --git a/lisp/ChangeLog b/lisp/ChangeLog
> index 09796f7..c2b1612 100644
> --- a/lisp/ChangeLog
> +++ b/lisp/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-05-21 Michal Nazarewicz <mina86@mina86.com>
> +
> + * textmodes/tildify.el (tildify-buffer, tildify-region): Add
> + dont-ask option.
> +
> 2014-05-19 Leo Liu <sdl.web@gmail.com>
> * emacs-lisp/cl-lib.el (cl-endp): Conform to CL's semantics.
> diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
> index 9732e7f..339f900 100644
> --- a/lisp/textmodes/tildify.el
> +++ b/lisp/textmodes/tildify.el
> @@ -3,7 +3,7 @@
> ;; Copyright (C) 1997-2014 Free Software Foundation, Inc.
> ;; Author: Milan Zamazal <pdm@zamazal.org>
> -;; Version: 4.5
> +;; Version: 4.5.1
> ;; Keywords: text, TeX, SGML, wp
> ;; This file is part of GNU Emacs.
> @@ -172,20 +172,22 @@ END-REGEX defines end of the corresponding text part
> and can be either:
> ;;; *** Interactive functions ***
> ;;;###autoload
> -(defun tildify-region (beg end)
> +(defun tildify-region (beg end &optional dont-ask)
> "Add hard spaces in the region between BEG and END.
> See variables `tildify-pattern-alist', `tildify-string-alist', and
> `tildify-ignored-environments-alist' for information about configuration
> parameters.
> -This function performs no refilling of the changed text."
> - (interactive "*r")
> +This function performs no refilling of the changed text.
> +If DONT-ASK is set, or called interactively with prefix argument, user
> +won't be prompted for confirmation of each substitution."
> + (interactive "*rP")
> (setq tildify-count 0)
> (let (a
> z
> (marker-end (copy-marker end))
> end-env
> finish
> - (ask t)
> + (ask (not dont-ask))
> (case-fold-search nil)
> (regexp (tildify-build-regexp)) ; beginnings of environments
> aux)
> @@ -226,14 +228,16 @@ This function performs no refilling of the changed
> text."
> (message "%d spaces replaced." tildify-count))
> ;;;###autoload
> -(defun tildify-buffer ()
> +(defun tildify-buffer (&optional dont-ask)
> "Add hard spaces in the current buffer.
> See variables `tildify-pattern-alist', `tildify-string-alist', and
> `tildify-ignored-environments-alist' for information about configuration
> parameters.
> -This function performs no refilling of the changed text."
> - (interactive "*")
> - (tildify-region (point-min) (point-max)))
> +This function performs no refilling of the changed text.
> +If DONT-ASK is set, or called interactively with prefix argument, user
> +won't be prompted for confirmation of each substitution."
> + (interactive "*P")
> + (tildify-region (point-min) (point-max) dont-ask))
> ;;; *** Auxiliary functions ***
> diff --git a/test/ChangeLog b/test/ChangeLog
> index 3fed975..17468c2 100644
> --- a/test/ChangeLog
> +++ b/test/ChangeLog
> @@ -1,3 +1,7 @@
> +2014-05-21 Michal Nazarewicz <mina86@mina86.com>
> +
> + * automated/tildify-tests.el: New file.
> +
> 2014-05-15 Dmitry Antipov <dmantipov@yandex.ru>
> * automated/fns-tests.el: New file.
> diff --git a/test/automated/tildify-tests.el b/test/automated/tildify-tests.el
> new file mode 100644
> index 0000000..4223029
> --- /dev/null
> +++ b/test/automated/tildify-tests.el
> @@ -0,0 +1,106 @@
> +;;; tildify-test.el --- ERT tests for teldify.el
> +
> +;; Copyright (C) 2014 Free Software Foundation, Inc.
> +
> +;; Author: Michal Nazarewicz <mina86@mina86.com>
> +;; Version: 4.5
> +;; Keywords: text, TeX, SGML, wp
> +
> +;; This file is part of GNU Emacs.
> +
> +;; GNU Emacs 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.
> +
> +;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
> +
> +;;; Commentary:
> +
> +;; This package defines regression tests for the tildify package.
> +
> +;;; Code:
> +
> +(require 'ert)
> +(require 'tildify)
> +
> +(defun tildify-test--example-sentence (space)
> + "Return an example sentence with SPACE where hard space is required."
> + (concat "Lorem ipsum v" space "dolor sit amet, a" space
> + "consectetur adipiscing elit."))
> +
> +
> +(defun tildify-test--example-html (sentence &optional with-nbsp)
> + "Return an example HTML code.
> +SENTENCE is placed where spaces should not be replaced with hard spaces, and
> +WITH-NBSP is placed where spaces should be replaced with hard spaces. If the
> +latter is missing, SENTENCE will be used in all placeholder positions."
> + (let ((with-nbsp (or with-nbsp sentence)))
> + (concat "<p>" with-nbsp "</p>\n"
> + "<pre>" sentence "</pre>\n"
> + "<! -- " sentence " -- >\n"
> + "<p>" with-nbsp "</p>\n"
> + "<" sentence ">\n")))
> +
> +
> +(defun tildify-test--test (modes input expected)
> + "Test tildify running in MODES.
> +INPUT is the initial content of the buffer and EXPECTED is expected result
> +after `tildify-buffer' is run."
> + (dolist (mode modes)
> + (with-temp-buffer
> + (funcall mode)
> + (let ((header (concat "Testing `tildify-buffer' in "
> + (symbol-name mode) "\n")))
> + (insert header input)
> + (tildify-buffer t)
> + (should (string-equal (concat header expected) (buffer-string)))))
> + (with-temp-buffer
> + (funcall mode)
> + (let ((header (concat "Testing `tildify-region' in "
> + (symbol-name mode) "\n")))
> + (insert header input)
> + (tildify-region (point-min) (point-max) t)
> + (should (string-equal (concat header expected) (buffer-string)))))))
> +
> +(ert-deftest tildify-test-html ()
> + "Tests tildification in an HTML document"
> + (let* ((sentence (tildify-test--example-sentence " "))
> + (with-nbsp (tildify-test--example-sentence " ")))
> + (tildify-test--test '(html-mode sgml-mode)
> + (tildify-test--example-html sentence sentence)
> + (tildify-test--example-html sentence with-nbsp))))
> +
> +
> +(defun tildify-test--example-tex (sentence &optional with-nbsp)
> + "Return an example (La)Tex code.
> +SENTENCE is placed where spaces should not be replaced with hard spaces, and
> +WITH-NBSP is placed where spaces should be replaced with hard spaces. If the
> +latter is missing, SENTENCE will be used in all placeholder positions."
> + (let ((with-nbsp (or with-nbsp sentence)))
> + (concat with-nbsp "\n"
> + "\\begin{verbatim}\n" sentence "\n\\end{verbatim}\n"
> + "\\verb#" sentence "#\n"
> + "$$" sentence "$$\n"
> + "$" sentence "$\n"
> + "\\[" sentence "\\]\n"
> + "\\v A % " sentence "\n"
> + with-nbsp "\n")))
> +
> +(ert-deftest tildify-test-tex ()
> + "Tests tildification in a (La)TeX document"
> + (let* ((sentence (tildify-test--example-sentence " "))
> + (with-nbsp (tildify-test--example-sentence "~")))
> + (tildify-test--test '(tex-mode latex-mode plain-tex-mode)
> + (tildify-test--example-tex sentence sentence)
> + (tildify-test--example-tex sentence with-nbsp))))
> +
> +(provide 'tildify-tests)
> +
> +;;; tildify-tests.el ends here
> --
> 1.9.1.423.g4596e3a