blob: 383d23984cf2bde107902b3e4802df795b322c8e [file] [log] [blame]
Bram Moolenaare12bab32019-01-08 22:02:56 +01001
2source shared.vim
3
4func TablineWithCaughtError()
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +02005 let s:func_in_tabline_called = 1
6 try
7 call eval('unknown expression')
8 catch
9 endtry
10 return ''
Bram Moolenaare12bab32019-01-08 22:02:56 +010011endfunc
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +020012
Bram Moolenaare12bab32019-01-08 22:02:56 +010013func TablineWithError()
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +020014 let s:func_in_tabline_called = 1
15 call eval('unknown expression')
16 return ''
Bram Moolenaare12bab32019-01-08 22:02:56 +010017endfunc
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +020018
Bram Moolenaare12bab32019-01-08 22:02:56 +010019func Test_caught_error_in_tabline()
Bram Moolenaar73cd8fb2016-04-11 22:49:03 +020020 if has('gui')
21 set guioptions-=e
22 endif
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +020023 let showtabline_save = &showtabline
24 set showtabline=2
25 let s:func_in_tabline_called = 0
26 let tabline = '%{TablineWithCaughtError()}'
27 let &tabline = tabline
28 redraw!
29 call assert_true(s:func_in_tabline_called)
30 call assert_equal(tabline, &tabline)
31 set tabline=
32 let &showtabline = showtabline_save
Bram Moolenaare12bab32019-01-08 22:02:56 +010033endfunc
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +020034
Bram Moolenaare12bab32019-01-08 22:02:56 +010035func Test_tabline_will_be_disabled_with_error()
Bram Moolenaar73cd8fb2016-04-11 22:49:03 +020036 if has('gui')
37 set guioptions-=e
38 endif
Bram Moolenaarf73d3bc2016-04-11 21:55:15 +020039 let showtabline_save = &showtabline
40 set showtabline=2
41 let s:func_in_tabline_called = 0
42 let tabline = '%{TablineWithError()}'
43 try
44 let &tabline = tabline
45 redraw!
46 catch
47 endtry
48 call assert_true(s:func_in_tabline_called)
49 call assert_equal('', &tabline)
50 set tabline=
51 let &showtabline = showtabline_save
Bram Moolenaare12bab32019-01-08 22:02:56 +010052endfunc
53
54func Test_redrawtabline()
55 if has('gui')
56 set guioptions-=e
57 endif
58 let showtabline_save = &showtabline
59 set showtabline=2
60 set tabline=%{bufnr('$')}
61 edit Xtabline1
62 edit Xtabline2
63 redraw
64 call assert_match(bufnr('$') . '', Screenline(1))
65 au BufAdd * redrawtabline
66 badd Xtabline3
67 call assert_match(bufnr('$') . '', Screenline(1))
68
69 set tabline=
70 let &showtabline = showtabline_save
71 au! Bufadd
72endfunc