diff options
Diffstat (limited to 'emacs.d/nxhtml/tests/nxhtmltest-helpers.el')
-rw-r--r-- | emacs.d/nxhtml/tests/nxhtmltest-helpers.el | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/emacs.d/nxhtml/tests/nxhtmltest-helpers.el b/emacs.d/nxhtml/tests/nxhtmltest-helpers.el new file mode 100644 index 0000000..b05a6ca --- /dev/null +++ b/emacs.d/nxhtml/tests/nxhtmltest-helpers.el @@ -0,0 +1,156 @@ +;;; nxhtmltest-helpers.el --- Helper functions for testing +;; +;; Author: Lennart Borgman (lennart O borgman A gmail O com) +;; Created: 2008-07-08T19:10:54+0200 Tue +;; Version: 0.2 +;; Last-Updated: 2008-09-01T01:13:15+0200 Sun +;; URL: +;; Keywords: +;; Compatibility: +;; +;; Features that might be required by this library: +;; +;; `button', `help-fns', `help-mode', `view'. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: +;; +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Change log: +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; 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 2, 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; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth +;; Floor, Boston, MA 02110-1301, USA. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Code: + +(eval-when-compile (require 'cl)) +(require 'ert2) + +(defun nxhtmltest-goto-line (line) + (save-restriction + (widen) + (goto-char (point-min)) + (forward-line (1- line)))) + +(defun nxhtmltest-mumamo-error-messages () + (ert-get-messages "^MU:MuMaMo error")) + +(defun nxhtmltest-should-no-mumamo-errors () + (ert-should (not (nxhtmltest-mumamo-error-messages)))) + +(defun nxhtmltest-should-no-nxml-errors () + (ert-should (not (ert-get-messages "Internal nXML mode error")))) + +(defun nxhtmltest-be-really-idle (seconds &optional prompt-mark) + (unless prompt-mark (setq prompt-mark "")) + (with-timeout (4 (message "<<<< %s - not really idle any more at %s" + prompt-mark + (format-time-string "%H:%M:%S"))) + (let ((prompt (format + ">>>> %s Starting beeing really idle %s seconds at %s" + prompt-mark + seconds + (format-time-string "%H:%M:%S ...")))) + (message "%s" prompt) + (read-minibuffer prompt) + (redisplay)))) + +;;(nxhtmltest-be-really-idle 4 "HERE I AM!!") + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Fontification methods + +(defvar nxhtmltest-default-fontification-method nil) + +(defun nxhtmltest-get-fontification-method () + "Ask user for default fontification method." + (let* ((collection + '( + ("Fontify as usual (wait)" fontify-as-usual) + ("Fontify by calling timer handlers" fontify-w-timer-handlers) + ("Fontify ps print " fontify-as-ps-print) + ("Call fontify-buffer" fontify-buffer) + )) + (hist (mapcar (lambda (rec) + (car rec)) + collection)) + (method-name (or t + (completing-read "Default fontification method: " + collection nil t + (car (nth 1 collection)) + 'hist)))) + (setq nxhtmltest-default-fontification-method + ;;(nth 1 (assoc method-name collection)) + ;;'fontify-w-timer-handlers + 'fontify-as-ps-print + ))) + +(defun nxhtmltest-fontify-as-usual (seconds prompt-mark) + (font-lock-mode 1) + ;; This does not work now since I deleted the function below: + (error "font-lock-wait not defined") + ;;(font-lock-wait (nxhtmltest-be-really-idle seconds prompt-mark)) + ) + +(defun nxhtmltest-fontify-w-timers-handlers () + ;;(dolist (timer (copy-list timer-idle-list)) + (dolist (timer (copy-sequence timer-idle-list)) + (timer-event-handler timer)) + (redisplay t)) + +(declare-function jit-lock-fontify-now "jit-lock" (&optional start end)) +(declare-function lazy-lock-fontify-region "lazy-lock" (beg end)) + +;; to avoid compilation gripes +;;(defun ps-print-ensure-fontified (start end) +(defun nxhtmltest-fontify-as-ps-print() + (save-restriction + (widen) + (let ((start (point-min)) + (end (point-max))) + (cond ((and (boundp 'jit-lock-mode) (symbol-value 'jit-lock-mode)) + (jit-lock-fontify-now start end)) + ((and (boundp 'lazy-lock-mode) (symbol-value 'lazy-lock-mode)) + (lazy-lock-fontify-region start end)))))) + +(defun nxhtmltest-fontify-buffer () + (font-lock-fontify-buffer) + (redisplay t)) + +(defun nxhtmltest-fontify-default-way (seconds &optional pmark) + ;;(assert (not font-lock-mode)) + (case nxhtmltest-default-fontification-method + (fontify-as-usual (nxhtmltest-fontify-as-usual seconds pmark)) + (fontify-w-timer-handlers (nxhtmltest-fontify-w-timers-handlers)) + (fontify-as-ps-print (nxhtmltest-fontify-as-ps-print)) + (fontify-buffer (nxhtmltest-fontify-buffer)) + (t (error "Unrecognized default fontification method: %s" + nxhtmltest-default-fontification-method)))) + + + +(provide 'nxhtmltest-helpers) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; nxhtmltest-helpers.el ends here |