;;; 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