From 69b39ff80b227ab2f4d37ec292a30b11bd367243 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Mon, 26 Sep 2022 02:12:41 -0400 Subject: [PATCH 2/2] ; whitespace: Add test case for read-only buffers (bug#58082) --- test/lisp/whitespace-tests.el | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/test/lisp/whitespace-tests.el b/test/lisp/whitespace-tests.el index 97c30c4d62..fb53543c9e 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 @@ whitespace-tests--with-test-buffer (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 @@ whitespace-tests--empty-eob "\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 -- 2.37.3