blob: c8ac1141fd20d804ae6e71ca4d62e85044639902 [file] [log] [blame]
Bram Moolenaar1381d792016-08-18 22:11:42 +02001" Tests for tabpage
2
Bram Moolenaar0fef0ae2019-05-01 20:30:40 +02003source screendump.vim
Bram Moolenaardbe88692018-05-20 14:57:22 +02004
Bram Moolenaar1381d792016-08-18 22:11:42 +02005function Test_tabpage()
6 bw!
7 " Simple test for opening and closing a tab page
8 tabnew
9 call assert_equal(2, tabpagenr())
10 quit
11
12 " Open three tab pages and use ":tabdo"
13 0tabnew
14 1tabnew
15 $tabnew
Bram Moolenaar3e8474d2016-10-12 17:52:42 +020016 %del
Bram Moolenaar1381d792016-08-18 22:11:42 +020017 tabdo call append(line('$'), tabpagenr())
18 tabclose! 2
19 tabrewind
20 let line1 = getline('$')
21 undo
22 q
23 tablast
24 let line2 = getline('$')
25 q!
26 call append(line('$'), line1)
27 call append(line('$'), line2)
28 unlet line1 line2
29 call assert_equal(['', '3', '1', '4'], getline(1, '$'))
30 "
31 " Test for settabvar() and gettabvar() functions. Open a new tab page and
32 " set 3 variables to a number, string and a list. Verify that the variables
33 " are correctly set.
34 tabnew
35 tabfirst
36 call settabvar(2, 'val_num', 100)
37 call settabvar(2, 'val_str', 'SetTabVar test')
38 call settabvar(2, 'val_list', ['red', 'blue', 'green'])
39 "
40 call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'])
41
42 tabnext 2
43 call assert_true(t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'])
44 tabclose
45
Bram Moolenaar5a656862018-02-12 22:08:06 +010046 " Test for ":tab drop exist-file" to keep current window.
47 sp test1
48 tab drop test1
49 call assert_true(tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1)
50 close
51 "
52 "
53 " Test for ":tab drop new-file" to keep current window of tabpage 1.
54 split
55 tab drop newfile
56 call assert_true(tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1)
57 tabclose
58 q
59 "
60 "
Bram Moolenaar1bc353b2019-09-01 14:45:28 +020061 " Test for ":tab drop multi-opened-file" to keep current tabpage and window.
Bram Moolenaar5a656862018-02-12 22:08:06 +010062 new test1
63 tabnew
64 new test1
65 tab drop test1
66 call assert_true(tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1)
67 tabclose
68 q
69 "
70 "
71 " Test for ":tab drop vertical-split-window" to jump test1 buffer
72 tabedit test1
73 vnew
74 tabfirst
75 tab drop test1
76 call assert_equal([2, 2, 2, 2], [tabpagenr('$'), tabpagenr(), tabpagewinnr(2, '$'), tabpagewinnr(2)])
77 1tabonly
Bram Moolenaar1381d792016-08-18 22:11:42 +020078 "
79 "
80 for i in range(9) | tabnew | endfor
81 normal! 1gt
82 call assert_equal(1, tabpagenr())
83 tabmove 5
84 call assert_equal(5, tabpagenr())
85 .tabmove
86 call assert_equal(5, tabpagenr())
87 tabmove -
88 call assert_equal(4, tabpagenr())
89 tabmove +
90 call assert_equal(5, tabpagenr())
91 tabmove -2
92 call assert_equal(3, tabpagenr())
93 tabmove +4
94 call assert_equal(7, tabpagenr())
95 tabmove
96 call assert_equal(10, tabpagenr())
Bram Moolenaar1381d792016-08-18 22:11:42 +020097 0tabmove
98 call assert_equal(1, tabpagenr())
99 $tabmove
100 call assert_equal(10, tabpagenr())
101 tabmove 0
102 call assert_equal(1, tabpagenr())
103 tabmove $
104 call assert_equal(10, tabpagenr())
105 3tabmove
106 call assert_equal(4, tabpagenr())
107 7tabmove 5
108 call assert_equal(5, tabpagenr())
Bram Moolenaar82a12462019-01-22 22:41:42 +0100109 -tabmove
110 call assert_equal(4, tabpagenr())
111 +tabmove
112 call assert_equal(5, tabpagenr())
113 -2tabmove
114 call assert_equal(3, tabpagenr())
115 +3tabmove
116 call assert_equal(6, tabpagenr())
Bram Moolenaar7cc59652018-08-07 13:14:46 +0200117
118 " The following are a no-op
119 norm! 2gt
120 call assert_equal(2, tabpagenr())
121 tabmove 2
122 call assert_equal(2, tabpagenr())
123 2tabmove
124 call assert_equal(2, tabpagenr())
125 tabmove 1
126 call assert_equal(2, tabpagenr())
127 1tabmove
128 call assert_equal(2, tabpagenr())
129
Bram Moolenaar2f72c702017-01-29 14:48:10 +0100130 call assert_fails("99tabmove", 'E16:')
131 call assert_fails("+99tabmove", 'E16:')
132 call assert_fails("-99tabmove", 'E16:')
Bram Moolenaar1381d792016-08-18 22:11:42 +0200133 call assert_fails("tabmove foo", 'E474:')
Bram Moolenaar2f72c702017-01-29 14:48:10 +0100134 call assert_fails("tabmove 99", 'E474:')
135 call assert_fails("tabmove +99", 'E474:')
136 call assert_fails("tabmove -99", 'E474:')
137 call assert_fails("tabmove -3+", 'E474:')
138 call assert_fails("tabmove $3", 'E474:')
139 1tabonly!
Bram Moolenaar1381d792016-08-18 22:11:42 +0200140endfunc
141
142" Test autocommands
143function Test_tabpage_with_autocmd()
Bram Moolenaar1381d792016-08-18 22:11:42 +0200144 command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
145 augroup TestTabpageGroup
146 au!
147 autocmd TabEnter * call add(s:li, 'TabEnter')
148 autocmd WinEnter * call add(s:li, 'WinEnter')
149 autocmd BufEnter * call add(s:li, 'BufEnter')
150 autocmd TabLeave * call add(s:li, 'TabLeave')
151 autocmd WinLeave * call add(s:li, 'WinLeave')
152 autocmd BufLeave * call add(s:li, 'BufLeave')
153 augroup END
154
155 let s:li = []
156 let t:a='a'
157 C tab split
158 call assert_equal(['=== tab split ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'], s:li)
159 let s:li = []
160 let t:a='b'
161 C tabnew
162 call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
163 let t:a='c'
164 let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
165 call assert_equal(['a', 'b', 'c'], s:li)
166
167 let s:li = []
168 C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
169 call assert_equal(["=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ==="], s:li)
170 let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
171 call assert_equal(['2', '4', '6'], s:li)
172
173 let s:li = []
174 let w:a='a'
175 C vsplit
176 call assert_equal(['=== vsplit ===', 'WinLeave', 'WinEnter'], s:li)
177 let s:li = []
178 let w:a='a'
179 let tabn=tabpagenr()
180 let winr=range(1, winnr('$'))
181 C tabnext 1
182 call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
183 let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
184 call assert_equal(['a', 'a'], s:li)
185 let s:li = []
186 C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
187 let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
188 call assert_equal(['2', '4'], s:li)
189
190 augroup TabDestructive
191 autocmd TabEnter * :C tabnext 2 | C tabclose 3
192 augroup END
193 let s:li = []
194 C tabnext 3
195 call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
196 call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
197
198 autocmd! TabDestructive TabEnter
199 let s:li = []
200 C tabnew
201 call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
202 let s:li = []
203 C tabnext 1
204 call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
205
206 autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
207 let s:li = []
Bram Moolenaar2f72c702017-01-29 14:48:10 +0100208 call assert_equal(3, tabpagenr('$'))
209 C tabnext 2
210 call assert_equal(2, tabpagenr('$'))
211 call assert_equal(['=== tabnext 2 ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
Bram Moolenaar1381d792016-08-18 22:11:42 +0200212 call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
213
214 delcommand C
215 autocmd! TabDestructive
216 augroup! TabDestructive
217 autocmd! TestTabpageGroup
218 augroup! TestTabpageGroup
Bram Moolenaar2f72c702017-01-29 14:48:10 +0100219 1tabonly!
Bram Moolenaar1381d792016-08-18 22:11:42 +0200220endfunction
221
Bram Moolenaar9b7f8ce2016-08-21 19:07:17 +0200222function Test_tabpage_with_tab_modifier()
223 for n in range(4)
224 tabedit
225 endfor
226
227 function s:check_tab(pre_nr, cmd, post_nr)
228 exec 'tabnext ' . a:pre_nr
229 exec a:cmd
230 call assert_equal(a:post_nr, tabpagenr())
Bram Moolenaar100f5c92016-09-06 21:33:52 +0200231 call assert_equal('help', &buftype)
Bram Moolenaar9b7f8ce2016-08-21 19:07:17 +0200232 helpclose
233 endfunc
234
235 call s:check_tab(1, 'tab help', 2)
236 call s:check_tab(1, '3tab help', 4)
237 call s:check_tab(1, '.tab help', 2)
238 call s:check_tab(1, '.+1tab help', 3)
239 call s:check_tab(1, '0tab help', 1)
240 call s:check_tab(2, '+tab help', 4)
241 call s:check_tab(2, '+2tab help', 5)
242 call s:check_tab(4, '-tab help', 4)
243 call s:check_tab(4, '-2tab help', 3)
244 call s:check_tab(3, '$tab help', 6)
245 call assert_fails('99tab help', 'E16:')
246 call assert_fails('+99tab help', 'E16:')
247 call assert_fails('-99tab help', 'E16:')
248
249 delfunction s:check_tab
Bram Moolenaar2f72c702017-01-29 14:48:10 +0100250 1tabonly!
251endfunction
252
253function Check_tab_count(pre_nr, cmd, post_nr)
254 exec 'tabnext' a:pre_nr
255 normal! G
256 exec a:cmd
257 call assert_equal(a:post_nr, tabpagenr(), a:cmd)
258endfunc
259
260" Test for [count] of tabnext
261function Test_tabpage_with_tabnext()
262 for n in range(4)
263 tabedit
264 call setline(1, ['', '', '3'])
265 endfor
266
267 call Check_tab_count(1, 'tabnext', 2)
268 call Check_tab_count(1, '3tabnext', 3)
269 call Check_tab_count(1, '.tabnext', 1)
270 call Check_tab_count(1, '.+1tabnext', 2)
271 call Check_tab_count(2, '+tabnext', 3)
272 call Check_tab_count(2, '+2tabnext', 4)
273 call Check_tab_count(4, '-tabnext', 3)
274 call Check_tab_count(4, '-2tabnext', 2)
275 call Check_tab_count(3, '$tabnext', 5)
276 call assert_fails('0tabnext', 'E16:')
277 call assert_fails('99tabnext', 'E16:')
278 call assert_fails('+99tabnext', 'E16:')
279 call assert_fails('-99tabnext', 'E16:')
280 call Check_tab_count(1, 'tabnext 3', 3)
281 call Check_tab_count(2, 'tabnext +', 3)
282 call Check_tab_count(2, 'tabnext +2', 4)
283 call Check_tab_count(4, 'tabnext -', 3)
284 call Check_tab_count(4, 'tabnext -2', 2)
285 call Check_tab_count(3, 'tabnext $', 5)
286 call assert_fails('tabnext 0', 'E474:')
287 call assert_fails('tabnext .', 'E474:')
288 call assert_fails('tabnext -+', 'E474:')
289 call assert_fails('tabnext +2-', 'E474:')
290 call assert_fails('tabnext $3', 'E474:')
291 call assert_fails('tabnext 99', 'E474:')
292 call assert_fails('tabnext +99', 'E474:')
293 call assert_fails('tabnext -99', 'E474:')
294
295 1tabonly!
296endfunction
297
298" Test for [count] of tabprevious
299function Test_tabpage_with_tabprevious()
300 for n in range(5)
301 tabedit
302 call setline(1, ['', '', '3'])
303 endfor
304
305 for cmd in ['tabNext', 'tabprevious']
306 call Check_tab_count(6, cmd, 5)
307 call Check_tab_count(6, '3' . cmd, 3)
308 call Check_tab_count(6, '8' . cmd, 4)
309 call Check_tab_count(6, cmd . ' 3', 3)
310 call Check_tab_count(6, cmd . ' 8', 4)
311 for n in range(2)
312 for c in ['0', '.+3', '+', '+2' , '-', '-2' , '$', '+99', '-99']
313 if n == 0 " pre count
314 let entire_cmd = c . cmd
315 let err_code = 'E16:'
316 else
317 let entire_cmd = cmd . ' ' . c
318 let err_code = 'E474:'
319 endif
320 call assert_fails(entire_cmd, err_code)
321 endfor
322 endfor
323 endfor
324
325 1tabonly!
326endfunction
327
328function s:reconstruct_tabpage_for_test(nr)
329 let n = (a:nr > 2) ? a:nr - 2 : 1
330 1tabonly!
331 0tabedit n0
332 for n in range(1, n)
333 exec '$tabedit n' . n
334 if n == 1
335 call setline(1, ['', '', '3'])
336 endif
337 endfor
338endfunc
339
Bram Moolenaardbe88692018-05-20 14:57:22 +0200340func Test_tabpage_ctrl_pgup_pgdown()
341 enew!
342 tabnew tab1
343 tabnew tab2
344
345 call assert_equal(3, tabpagenr())
346 exe "norm! \<C-PageUp>"
347 call assert_equal(2, tabpagenr())
348 exe "norm! \<C-PageDown>"
349 call assert_equal(3, tabpagenr())
350
351 " Check wrapping at last or first page.
352 exe "norm! \<C-PageDown>"
353 call assert_equal(1, tabpagenr())
354 exe "norm! \<C-PageUp>"
355 call assert_equal(3, tabpagenr())
356
357 " With a count, <C-PageUp> and <C-PageDown> are not symmetrical somehow:
358 " - {count}<C-PageUp> goes {count} pages downward (relative count)
359 " - {count}<C-PageDown> goes to page number {count} (absolute count)
360 exe "norm! 2\<C-PageUp>"
361 call assert_equal(1, tabpagenr())
362 exe "norm! 2\<C-PageDown>"
363 call assert_equal(2, tabpagenr())
364
365 1tabonly!
366endfunc
367
Bram Moolenaar2f72c702017-01-29 14:48:10 +0100368" Test for [count] of tabclose
369function Test_tabpage_with_tabclose()
370
371 " pre count
372 call s:reconstruct_tabpage_for_test(6)
373 call Check_tab_count(3, 'tabclose!', 3)
374 call Check_tab_count(1, '3tabclose', 1)
375 call Check_tab_count(4, '4tabclose', 3)
376 call Check_tab_count(3, '1tabclose', 2)
377 call Check_tab_count(2, 'tabclose', 1)
378 call assert_equal(1, tabpagenr('$'))
379 call assert_equal('', bufname(''))
380
381 call s:reconstruct_tabpage_for_test(6)
382 call Check_tab_count(2, '$tabclose', 2)
383 call Check_tab_count(4, '.tabclose', 4)
384 call Check_tab_count(3, '.+tabclose', 3)
385 call Check_tab_count(3, '.-2tabclose', 2)
386 call Check_tab_count(1, '.+1tabclose!', 1)
387 call assert_equal(1, tabpagenr('$'))
388 call assert_equal('', bufname(''))
389
390 " post count
391 call s:reconstruct_tabpage_for_test(6)
392 call Check_tab_count(3, 'tabclose!', 3)
393 call Check_tab_count(1, 'tabclose 3', 1)
394 call Check_tab_count(4, 'tabclose 4', 3)
395 call Check_tab_count(3, 'tabclose 1', 2)
396 call Check_tab_count(2, 'tabclose', 1)
397 call assert_equal(1, tabpagenr('$'))
398 call assert_equal('', bufname(''))
399
400 call s:reconstruct_tabpage_for_test(6)
401 call Check_tab_count(2, 'tabclose $', 2)
402 call Check_tab_count(4, 'tabclose', 4)
403 call Check_tab_count(3, 'tabclose +', 3)
404 call Check_tab_count(3, 'tabclose -2', 2)
405 call Check_tab_count(1, 'tabclose! +1', 1)
406 call assert_equal(1, tabpagenr('$'))
407 call assert_equal('', bufname(''))
408
409 call s:reconstruct_tabpage_for_test(6)
410 for n in range(2)
411 for c in ['0', '$3', '99', '+99', '-99']
412 if n == 0 " pre count
413 let entire_cmd = c . 'tabclose'
414 let err_code = 'E16:'
415 else
416 let entire_cmd = 'tabclose ' . c
417 let err_code = 'E474:'
418 endif
419 call assert_fails(entire_cmd, err_code)
420 call assert_equal(6, tabpagenr('$'))
421 endfor
422 endfor
423
424 call assert_fails('3tabclose', 'E37:')
425 call assert_fails('tabclose 3', 'E37:')
426 call assert_fails('tabclose -+', 'E474:')
427 call assert_fails('tabclose +2-', 'E474:')
428 call assert_equal(6, tabpagenr('$'))
429
430 1tabonly!
431endfunction
432
433" Test for [count] of tabonly
434function Test_tabpage_with_tabonly()
435
436 " Test for the normal behavior (pre count only)
437 let tc = [ [4, '.', '!'], [2, '.+', ''], [3, '.-2', '!'], [1, '.+1', '!'] ]
438 for c in tc
439 call s:reconstruct_tabpage_for_test(6)
440 let entire_cmd = c[1] . 'tabonly' . c[2]
441 call Check_tab_count(c[0], entire_cmd, 1)
442 call assert_equal(1, tabpagenr('$'))
443 endfor
444
445 " Test for the normal behavior
446 let tc2 = [ [3, '', ''], [1, '3', ''], [4, '4', '!'], [3, '1', '!'],
447 \ [2, '', '!'],
448 \ [2, '$', '!'], [3, '+', '!'], [3, '-2', '!'], [3, '+1', '!']
449 \ ]
450 for n in range(2)
451 for c in tc2
452 call s:reconstruct_tabpage_for_test(6)
453 if n == 0 " pre count
454 let entire_cmd = c[1] . 'tabonly' . c[2]
455 else
456 let entire_cmd = 'tabonly' . c[2] . ' ' . c[1]
457 endif
458 call Check_tab_count(c[0], entire_cmd, 1)
459 call assert_equal(1, tabpagenr('$'))
460 endfor
461 endfor
462
463 " Test for the error behavior
464 for n in range(2)
465 for c in ['0', '$3', '99', '+99', '-99']
466 call s:reconstruct_tabpage_for_test(6)
467 if n == 0 " pre count
468 let entire_cmd = c . 'tabonly'
469 let err_code = 'E16:'
470 else
471 let entire_cmd = 'tabonly ' . c
472 let err_code = 'E474:'
473 endif
474 call assert_fails(entire_cmd, err_code)
475 call assert_equal(6, tabpagenr('$'))
476 endfor
477 endfor
478
479 " Test for the error behavior (post count only)
480 for c in tc
481 call s:reconstruct_tabpage_for_test(6)
482 let entire_cmd = 'tabonly' . c[2] . ' ' . c[1]
483 let err_code = 'E474:'
484 call assert_fails(entire_cmd, err_code)
485 call assert_equal(6, tabpagenr('$'))
486 endfor
487
488 call assert_fails('tabonly -+', 'E474:')
489 call assert_fails('tabonly +2-', 'E474:')
490 call assert_equal(6, tabpagenr('$'))
491
492 1tabonly!
493 new
494 only!
Bram Moolenaar9b7f8ce2016-08-21 19:07:17 +0200495endfunction
496
Bram Moolenaar5a497892016-09-03 16:29:04 +0200497func Test_tabnext_on_buf_unload1()
Bram Moolenaar11fbc282016-09-02 21:48:32 +0200498 " This once caused a crash
499 new
500 tabedit
501 tabfirst
502 au BufUnload <buffer> tabnext
503 q
504
505 while tabpagenr('$') > 1
Bram Moolenaar5a497892016-09-03 16:29:04 +0200506 bwipe!
507 endwhile
508endfunc
509
510func Test_tabnext_on_buf_unload2()
511 " This once caused a crash
512 tabedit
513 autocmd BufUnload <buffer> tabnext
514 file x
515 edit y
516
517 while tabpagenr('$') > 1
518 bwipe!
Bram Moolenaar11fbc282016-09-02 21:48:32 +0200519 endwhile
520endfunc
521
Bram Moolenaar0ea50702017-07-08 14:44:50 +0200522func Test_close_on_quitpre()
523 " This once caused a crash
Bram Moolenaarce11de82017-10-26 22:00:00 +0200524 edit Xtest
Bram Moolenaar0ea50702017-07-08 14:44:50 +0200525 new
526 only
527 set bufhidden=delete
528 au QuitPre <buffer> close
529 tabnew tab1
530 tabnew tab2
531 1tabn
532 q!
533 call assert_equal(1, tabpagenr())
534 call assert_equal(2, tabpagenr('$'))
535 " clean up
536 while tabpagenr('$') > 1
537 bwipe!
538 endwhile
Bram Moolenaarce11de82017-10-26 22:00:00 +0200539 buf Xtest
Bram Moolenaar0ea50702017-07-08 14:44:50 +0200540endfunc
Bram Moolenaar11fbc282016-09-02 21:48:32 +0200541
Bram Moolenaardbe88692018-05-20 14:57:22 +0200542func Test_tabs()
543 enew!
544 tabnew tab1
545 norm ixxx
546 let a=split(execute(':tabs'), "\n")
547 call assert_equal(['Tab page 1',
548 \ ' [No Name]',
549 \ 'Tab page 2',
550 \ '> + tab1'], a)
551
552 1tabonly!
553 bw!
554endfunc
555
Bram Moolenaar0fef0ae2019-05-01 20:30:40 +0200556func Test_tabpage_cmdheight()
557 if !CanRunVimInTerminal()
Bram Moolenaar5d30ff12019-06-06 16:12:12 +0200558 throw 'Skipped: cannot make screendumps'
Bram Moolenaar0fef0ae2019-05-01 20:30:40 +0200559 endif
560 call writefile([
561 \ 'set laststatus=2',
562 \ 'set cmdheight=2',
563 \ 'tabnew',
564 \ 'set cmdheight=3',
565 \ 'tabnext',
566 \ 'redraw!',
567 \ 'echo "hello\nthere"',
568 \ 'tabnext',
569 \ 'redraw',
570 \ ], 'XTest_tabpage_cmdheight')
571 " Check that cursor line is concealed
572 let buf = RunVimInTerminal('-S XTest_tabpage_cmdheight', {'statusoff': 3})
573 call VerifyScreenDump(buf, 'Test_tabpage_cmdheight', {})
574
575 call StopVimInTerminal(buf)
Bram Moolenaar4fa06872019-05-06 22:03:39 +0200576 call delete('XTest_tabpage_cmdheight')
Bram Moolenaar0fef0ae2019-05-01 20:30:40 +0200577endfunc
578
Bram Moolenaar1381d792016-08-18 22:11:42 +0200579" vim: shiftwidth=2 sts=2 expandtab