comparison tests/automated/files-tests.el @ 5766:182d01410b8d

Add mode-require-final-newline from GNU. Thanks GNU. lisp/ChangeLog: 2013-09-15 Mats Lidell <matsl@cxemacs.org> * files.el (mode-require-final-newline): Variable synced from GNU. Thank you GNU. Allows modes to control final newlines. (require-final-newline): Add action on visiting and visiting or saving in sync with GNU. * text-mode.el (text-mode): Use mode-require-final-newline. man/ChangeLog: 2013-09-15 Mats Lidell <matsl@xemacs.org> * xemacs/files.texi (Saving): New variable mode-require-final-newline. Update info for require-final-newline. tests/ChangeLog: 2013-09-15 Mats Lidell <matsl@xemacs.org> * automated/files-tests.el: New file. Test new states in require-final-newline and new variable mode-require-final-newline.
author Mats Lidell <mats.lidell@cag.se>
date Mon, 16 Sep 2013 00:00:12 +0200
parents
children
comparison
equal deleted inserted replaced
5765:e88d026f3917 5766:182d01410b8d
1 ;; Copyright (C) 2013 Free Software Foundation, Inc.
2
3 ;; Author: Mats Lidell <matsl@xemacs.org>
4 ;; Maintainer:
5 ;; Created: 2013
6 ;; Keywords: tests
7
8 ;; This file is part of XEmacs.
9
10 ;; XEmacs is free software: you can redistribute it and/or modify it
11 ;; under the terms of the GNU General Public License as published by the
12 ;; Free Software Foundation, either version 3 of the License, or (at your
13 ;; option) any later version.
14
15 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
16 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 ;; for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
22
23 ;;; Synched up with: Not in FSF.
24
25 ;;; Commentary:
26
27 ;; Test tag support.
28 ;; See test-harness.el for instructions on how to run these tests.
29
30 (require 'test-harness)
31
32 ;; Require a newline on save
33 (let ((test-file-name (make-temp-file "files-tests"))
34 (require-final-newline t))
35 (find-file test-file-name)
36 (erase-buffer)
37 (insert "no newline")
38 (Silence-Message (save-buffer 0))
39 (Assert (equal (buffer-string) "no newline\n"))
40 (kill-buffer nil)
41 (delete-file test-file-name))
42
43 ;; Don't require a newline on save
44 (let ((test-file-name (make-temp-file "files-tests"))
45 (require-final-newline nil))
46 (find-file test-file-name)
47 (erase-buffer)
48 (insert "no newline")
49 (Silence-Message (save-buffer 0))
50 (Assert (equal (buffer-string) "no newline"))
51 (kill-buffer nil)
52 (delete-file test-file-name))
53
54 ;; Require a newline on visit (not on save)
55 ;; Answer query when saving with both no and yes.
56 (let ((test-file-name (make-temp-file "files-tests"))
57 (require-final-newline nil))
58 (find-file test-file-name)
59 (erase-buffer)
60 (insert "no newline")
61 (Silence-Message (save-buffer 0))
62 (kill-buffer nil)
63 (let ((require-final-newline 'visit))
64 (find-file test-file-name)
65 (Assert (equal (buffer-string) "no newline\n"))
66
67 ;; Answer no
68 (erase-buffer)
69 (insert "no newline")
70 (flet ((y-or-n-p (prompt) nil))
71 (Silence-Message (save-buffer 0)))
72 (Assert (equal (buffer-string) "no newline"))
73
74 ;; Answer yes
75 (erase-buffer)
76 (insert "no newline")
77 (flet ((y-or-n-p (prompt) t))
78 (Silence-Message (save-buffer 0)))
79 (Assert (equal (buffer-string) "no newline\n")))
80
81 (kill-buffer nil)
82 (delete-file test-file-name))
83
84 ;; Require a newline on visit and save
85 (let ((test-file-name (make-temp-file "files-tests"))
86 (require-final-newline nil))
87 (find-file test-file-name)
88 (erase-buffer)
89 (insert "no newline")
90 (Silence-Message (save-buffer 0))
91 (kill-buffer nil)
92 (let ((require-final-newline 'visit-save))
93 (find-file test-file-name)
94 (Assert (equal (buffer-string) "no newline\n"))
95 (erase-buffer)
96 (insert "no newline")
97 (Silence-Message (save-buffer 0))
98 (Assert (equal (buffer-string) "no newline\n")))
99 (kill-buffer nil)
100 (delete-file test-file-name))
101
102 ;; mode-require-final-newline is respected by text-mode
103 (let ((test-file-name (make-temp-file "files-tests"))
104 (require-final-newline nil)
105 (mode-require-final-newline t))
106 (Assert (equal require-final-newline nil))
107 (find-file test-file-name)
108 (erase-buffer)
109 (text-mode)
110 (Assert (equal require-final-newline t))
111 (insert "no newline")
112 (Silence-Message (save-buffer 0))
113 (Assert (equal (buffer-string) "no newline\n"))
114 (kill-buffer nil)
115 (delete-file test-file-name))