Mercurial > vim
comparison src/testdir/test_fileformat.vim @ 16821:140bf183f946 v8.1.1412
patch 8.1.1412: test 30 is old style
commit https://github.com/vim/vim/commit/72fcf07b0639b49be3305de141d777baa9c965a0
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon May 27 22:21:44 2019 +0200
patch 8.1.1412: test 30 is old style
Problem: Test 30 is old style.
Solution: Turn it into a new style test. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/4440)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 27 May 2019 22:30:06 +0200 |
parents | d6857a8dc07e |
children | 2f4be7ca1b1b |
comparison
equal
deleted
inserted
replaced
16820:5e02daf3e49c | 16821:140bf183f946 |
---|---|
1 | |
1 " Test behavior of fileformat after bwipeout of last buffer | 2 " Test behavior of fileformat after bwipeout of last buffer |
2 | |
3 func Test_fileformat_after_bw() | 3 func Test_fileformat_after_bw() |
4 bwipeout | 4 bwipeout |
5 set fileformat& | 5 set fileformat& |
6 if &fileformat == 'dos' | 6 if &fileformat == 'dos' |
7 let test_fileformats = 'unix' | 7 let test_fileformats = 'unix' |
29 call delete('Xfile') | 29 call delete('Xfile') |
30 let &ffs = ffs | 30 let &ffs = ffs |
31 au! BufReadPre Xfile | 31 au! BufReadPre Xfile |
32 bw! | 32 bw! |
33 endfunc | 33 endfunc |
34 | |
35 " Convert the contents of a file into a literal string | |
36 func s:file2str(fname) | |
37 let b = readfile(a:fname, 'B') | |
38 let s = '' | |
39 for c in b | |
40 let s .= nr2char(c) | |
41 endfor | |
42 return s | |
43 endfunc | |
44 | |
45 " Concatenate the contents of files 'f1' and 'f2' and create 'destfile' | |
46 func s:concat_files(f1, f2, destfile) | |
47 let b1 = readfile(a:f1, 'B') | |
48 let b2 = readfile(a:f2, 'B') | |
49 let b3 = b1 + b2 | |
50 call writefile(b3, a:destfile, 'B') | |
51 endfun | |
52 | |
53 " Test for a lot of variations of the 'fileformats' option | |
54 func Test_fileformats() | |
55 " create three test files, one in each format | |
56 call writefile(['unix', 'unix'], 'XXUnix') | |
57 call writefile(["dos\r", "dos\r"], 'XXDos') | |
58 call writefile(["mac\rmac\r"], 'XXMac', 'b') | |
59 " create a file with no End Of Line | |
60 call writefile(["noeol"], 'XXEol', 'b') | |
61 " create mixed format files | |
62 call s:concat_files('XXUnix', 'XXDos', 'XXUxDs') | |
63 call s:concat_files('XXUnix', 'XXMac', 'XXUxMac') | |
64 call s:concat_files('XXDos', 'XXMac', 'XXDosMac') | |
65 call s:concat_files('XXMac', 'XXEol', 'XXMacEol') | |
66 call s:concat_files('XXUxDs', 'XXMac', 'XXUxDsMc') | |
67 | |
68 new | |
69 | |
70 " Test 1: try reading and writing with 'fileformats' empty | |
71 set fileformats= | |
72 | |
73 " try with 'fileformat' set to 'unix' | |
74 set fileformat=unix | |
75 e! XXUnix | |
76 w! Xtest | |
77 call assert_equal("unix\nunix\n", s:file2str('Xtest')) | |
78 e! XXDos | |
79 w! Xtest | |
80 call assert_equal("dos\r\ndos\r\n", s:file2str('Xtest')) | |
81 e! XXMac | |
82 w! Xtest | |
83 call assert_equal("mac\rmac\r\n", s:file2str('Xtest')) | |
84 bwipe XXUnix XXDos XXMac | |
85 | |
86 " try with 'fileformat' set to 'dos' | |
87 set fileformat=dos | |
88 e! XXUnix | |
89 w! Xtest | |
90 call assert_equal("unix\r\nunix\r\n", s:file2str('Xtest')) | |
91 e! XXDos | |
92 w! Xtest | |
93 call assert_equal("dos\r\ndos\r\n", s:file2str('Xtest')) | |
94 e! XXMac | |
95 w! Xtest | |
96 call assert_equal("mac\rmac\r\r\n", s:file2str('Xtest')) | |
97 bwipe XXUnix XXDos XXMac | |
98 | |
99 " try with 'fileformat' set to 'mac' | |
100 set fileformat=mac | |
101 e! XXUnix | |
102 w! Xtest | |
103 call assert_equal("unix\nunix\n\r", s:file2str('Xtest')) | |
104 e! XXDos | |
105 w! Xtest | |
106 call assert_equal("dos\r\ndos\r\n\r", s:file2str('Xtest')) | |
107 e! XXMac | |
108 w! Xtest | |
109 call assert_equal("mac\rmac\r", s:file2str('Xtest')) | |
110 bwipe XXUnix XXDos XXMac | |
111 | |
112 " Test 2: try reading and writing with 'fileformats' set to one format | |
113 | |
114 " try with 'fileformats' set to 'unix' | |
115 set fileformats=unix | |
116 e! XXUxDsMc | |
117 w! Xtest | |
118 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r\n", | |
119 \ s:file2str('Xtest')) | |
120 bwipe XXUxDsMc | |
121 | |
122 " try with 'fileformats' set to 'dos' | |
123 set fileformats=dos | |
124 e! XXUxDsMc | |
125 w! Xtest | |
126 call assert_equal("unix\r\nunix\r\ndos\r\ndos\r\nmac\rmac\r\r\n", | |
127 \ s:file2str('Xtest')) | |
128 bwipe XXUxDsMc | |
129 | |
130 " try with 'fileformats' set to 'mac' | |
131 set fileformats=mac | |
132 e! XXUxDsMc | |
133 w! Xtest | |
134 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r", | |
135 \ s:file2str('Xtest')) | |
136 bwipe XXUxDsMc | |
137 | |
138 " Test 3: try reading and writing with 'fileformats' set to two formats | |
139 | |
140 " try with 'fileformats' set to 'unix,dos' | |
141 set fileformats=unix,dos | |
142 e! XXUxDsMc | |
143 w! Xtest | |
144 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r\n", | |
145 \ s:file2str('Xtest')) | |
146 bwipe XXUxDsMc | |
147 | |
148 e! XXUxMac | |
149 w! Xtest | |
150 call assert_equal("unix\nunix\nmac\rmac\r\n", s:file2str('Xtest')) | |
151 bwipe XXUxMac | |
152 | |
153 e! XXDosMac | |
154 w! Xtest | |
155 call assert_equal("dos\r\ndos\r\nmac\rmac\r\r\n", s:file2str('Xtest')) | |
156 bwipe XXDosMac | |
157 | |
158 " try with 'fileformats' set to 'unix,mac' | |
159 set fileformats=unix,mac | |
160 e! XXUxDs | |
161 w! Xtest | |
162 call assert_equal("unix\nunix\ndos\r\ndos\r\n", s:file2str('Xtest')) | |
163 bwipe XXUxDs | |
164 | |
165 e! XXUxDsMc | |
166 w! Xtest | |
167 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r\n", | |
168 \ s:file2str('Xtest')) | |
169 bwipe XXUxDsMc | |
170 | |
171 e! XXDosMac | |
172 w! Xtest | |
173 call assert_equal("dos\r\ndos\r\nmac\rmac\r", s:file2str('Xtest')) | |
174 bwipe XXDosMac | |
175 | |
176 e! XXEol | |
177 exe "normal ggO\<C-R>=&ffs\<CR>:\<C-R>=&ff\<CR>" | |
178 w! Xtest | |
179 call assert_equal("unix,mac:unix\nnoeol\n", s:file2str('Xtest')) | |
180 bwipe! XXEol | |
181 | |
182 " try with 'fileformats' set to 'dos,mac' | |
183 set fileformats=dos,mac | |
184 e! XXUxDs | |
185 w! Xtest | |
186 call assert_equal("unix\r\nunix\r\ndos\r\ndos\r\n", s:file2str('Xtest')) | |
187 bwipe XXUxDs | |
188 | |
189 e! XXUxMac | |
190 exe "normal ggO\<C-R>=&ffs\<CR>:\<C-R>=&ff\<CR>" | |
191 w! Xtest | |
192 call assert_equal("dos,mac:dos\r\nunix\r\nunix\r\nmac\rmac\r\r\n", | |
193 \ s:file2str('Xtest')) | |
194 bwipe! XXUxMac | |
195 | |
196 e! XXUxDsMc | |
197 w! Xtest | |
198 call assert_equal("unix\r\nunix\r\ndos\r\ndos\r\nmac\rmac\r\r\n", | |
199 \ s:file2str('Xtest')) | |
200 bwipe XXUxDsMc | |
201 | |
202 e! XXMacEol | |
203 exe "normal ggO\<C-R>=&ffs\<CR>:\<C-R>=&ff\<CR>" | |
204 w! Xtest | |
205 call assert_equal("dos,mac:mac\rmac\rmac\rnoeol\r", s:file2str('Xtest')) | |
206 bwipe! XXMacEol | |
207 | |
208 " Test 4: try reading and writing with 'fileformats' set to three formats | |
209 set fileformats=unix,dos,mac | |
210 e! XXUxDsMc | |
211 w! Xtest | |
212 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r\n", | |
213 \ s:file2str('Xtest')) | |
214 bwipe XXUxDsMc | |
215 | |
216 e! XXEol | |
217 exe "normal ggO\<C-R>=&ffs\<CR>:\<C-R>=&ff\<CR>" | |
218 w! Xtest | |
219 call assert_equal("unix,dos,mac:unix\nnoeol\n", s:file2str('Xtest')) | |
220 bwipe! XXEol | |
221 | |
222 set fileformats=mac,dos,unix | |
223 e! XXUxDsMc | |
224 w! Xtest | |
225 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r\n", | |
226 \ s:file2str('Xtest')) | |
227 bwipe XXUxDsMc | |
228 | |
229 e! XXEol | |
230 exe "normal ggO\<C-R>=&ffs\<CR>:\<C-R>=&ff\<CR>" | |
231 w! Xtest | |
232 call assert_equal("mac,dos,unix:mac\rnoeol\r", s:file2str('Xtest')) | |
233 bwipe! XXEol | |
234 | |
235 " Test 5: try with 'binary' set | |
236 set fileformats=mac,unix,dos | |
237 set binary | |
238 e! XXUxDsMc | |
239 w! Xtest | |
240 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r", | |
241 \ s:file2str('Xtest')) | |
242 bwipe XXUxDsMc | |
243 | |
244 set fileformats=mac | |
245 e! XXUxDsMc | |
246 w! Xtest | |
247 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r", | |
248 \ s:file2str('Xtest')) | |
249 bwipe XXUxDsMc | |
250 | |
251 set fileformats=dos | |
252 e! XXUxDsMc | |
253 w! Xtest | |
254 call assert_equal("unix\nunix\ndos\r\ndos\r\nmac\rmac\r", | |
255 \ s:file2str('Xtest')) | |
256 bwipe XXUxDsMc | |
257 | |
258 e! XXUnix | |
259 w! Xtest | |
260 call assert_equal("unix\nunix\n", s:file2str('Xtest')) | |
261 bwipe! XXUnix | |
262 | |
263 set nobinary ff& ffs& | |
264 | |
265 " cleanup | |
266 only | |
267 %bwipe! | |
268 call delete('XXUnix') | |
269 call delete('XXDos') | |
270 call delete('XXMac') | |
271 call delete('XXEol') | |
272 call delete('XXUxDs') | |
273 call delete('XXUxMac') | |
274 call delete('XXDosMac') | |
275 call delete('XXMacEol') | |
276 call delete('XXUxDsMc') | |
277 call delete('Xtest') | |
278 endfunc |