From: Richard Hansen Date: Mon, 26 Sep 2022 06:12:41 +0000 (-0400) Subject: ; whitespace: Add test case for read-only buffers (bug#58082) X-Git-Tag: emacs-29.0.90~1856^2~196 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fd653f5208e8600166003af41660ce2ad0b6362f;p=emacs.git ; whitespace: Add test case for read-only buffers (bug#58082) --- diff --git a/test/lisp/whitespace-tests.el b/test/lisp/whitespace-tests.el index 97c30c4d627..fb53543c9e1 100644 --- a/test/lisp/whitespace-tests.el +++ b/test/lisp/whitespace-tests.el @@ -27,7 +27,8 @@ (defmacro whitespace-tests--with-test-buffer (style &rest body) "Run BODY in a buffer with `whitespace-mode' style STYLE. The buffer is displayed in `selected-window', and -`noninteractive' is set to nil even in batch mode." +`noninteractive' is set to nil even in batch mode. If STYLE is +nil, `whitespace-mode' is left disabled." (declare (debug ((style form) def-body)) (indent 1)) `(ert-with-test-buffer-selected () @@ -37,7 +38,8 @@ The buffer is displayed in `selected-window', and (let ((noninteractive nil) (whitespace-style ,style)) (font-lock-mode 1) - (whitespace-mode 1) + ,(when style + '(whitespace-mode 1)) ,@body))) (defun whitespace-tests--faceup (&rest lines) @@ -310,6 +312,21 @@ buffer's content." "\t\n" " »")))) +(ert-deftest whitespace-tests--empty-bob-eob-read-only-buffer () + (whitespace-tests--with-test-buffer '() + (insert "\nx\n\n") + (should (equal (buffer-string) "\nx\n\n")) + (setq-local buffer-read-only t) + (goto-char 2) + (should (equal (line-number-at-pos) 2)) + (should (equal (- (point) (line-beginning-position)) 0)) + (let ((whitespace-style '(face empty))) + (whitespace-mode 1) + (should (whitespace-tests--faceup "«:whitespace-empty:\n" + "»x\n" + "«:whitespace-empty:\n" + "»"))))) + (provide 'whitespace-tests) ;;; whitespace-tests.el ends here