--- whitespace-tests-a.el 2017-05-12 23:11:38.000000000 +1200 +++ whitespace-tests-b.el 2017-05-15 01:55:43.000000000 +1200 @@ -47,6 +47,31 @@ (should (equal (whitespace-tests--cleanup-string "a \n\t \n\n") "a \n")))) +(ert-deftest whitespace-tests-display-tables () + "Test whitespace stores and restores the buffer display table - bug26892." + (with-temp-buffer + (whitespace-mode -1) ; turn off in case global ws mode is active + (let ((whitespace-style '(space-mark tab-mark newline-mark)) + (whitespace-display-mappings '((space-mark 32 [183] [46]) + (space-mark 160 [164] [95]) + (newline-mark 10 [36 10]) + (tab-mark 9 [187 9] [92 9]))) + (buffer-display-table nil)) + ;test the display table actually changes + (should-not (equal nil + (progn (whitespace-mode 1) + buffer-display-table))) + ;test the display table restores correctly + (should (equal nil + (progn (whitespace-mode -1) + buffer-display-table))) + ;test the stored display table is preserved + (should (equal nil + (progn (whitespace-mode 1) + (whitespace-mode 1) + (whitespace-mode -1) + buffer-display-table)))))) + (provide 'whitespace-tests) ;;; whitespace-tests.el ends here