Skip to content

Commit

Permalink
patch 8.2.2979: not all options code is covered by tests
Browse files Browse the repository at this point in the history
Problem:    Not all options code is covered by tests.
Solution:   Add more tests for options. (Yegappan Lakshmanan, closes #8369)
  • Loading branch information
yegappan authored and brammool committed Jun 12, 2021
1 parent 744aecf commit 5958549
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 1 deletion.
24 changes: 24 additions & 0 deletions src/testdir/test_edit.vim
Expand Up @@ -1871,4 +1871,28 @@ func Test_read_invalid()
set encoding=utf-8
endfunc

" Test for the 'revins' option
func Test_edit_revins()
CheckFeature rightleft
new
set revins
exe "normal! ione\ttwo three"
call assert_equal("eerht owt\teno", getline(1))
call setline(1, "one\ttwo three")
normal! gg$bi a
call assert_equal("one\ttwo a three", getline(1))
exe "normal! $bi\<BS>\<BS>"
call assert_equal("one\ttwo a ree", getline(1))
exe "normal! 0wi\<C-W>"
call assert_equal("one\t a ree", getline(1))
exe "normal! 0wi\<C-U>"
call assert_equal("one\t ", getline(1))
" newline in insert mode starts at the end of the line
call setline(1, 'one two three')
exe "normal! wi\nfour"
call assert_equal(['one two three', 'ruof'], getline(1, '$'))
set revins&
bw!
endfunc

" vim: shiftwidth=2 sts=2 expandtab
6 changes: 6 additions & 0 deletions src/testdir/test_excmd.vim
Expand Up @@ -593,6 +593,12 @@ func Sandbox_tests()
if has('unix')
call assert_fails('cd `pwd`', 'E48:')
endif
" some options cannot be changed in a sandbox
call assert_fails('set exrc', 'E48:')
call assert_fails('set cdpath', 'E48:')
if has('xim')
call assert_fails('set imstyle', 'E48:')
endif
endfunc

func Test_sandbox()
Expand Down
10 changes: 10 additions & 0 deletions src/testdir/test_help.vim
Expand Up @@ -123,5 +123,15 @@ func Test_helptag_cmd_readonly()
call delete('Xdir', 'rf')
endfunc

" Test for setting the 'helpheight' option in the help window
func Test_help_window_height()
let &cmdheight = &lines - 24
set helpheight=10
help
set helpheight=14
call assert_equal(14, winheight(0))
set helpheight& cmdheight=1
close
endfunc

" vim: shiftwidth=2 sts=2 expandtab
13 changes: 13 additions & 0 deletions src/testdir/test_mksession.vim
Expand Up @@ -1019,6 +1019,19 @@ func Test_mkvimrc()
endfor

call s:ClearMappings()

" the 'pastetoggle', 'wildchar' and 'wildcharm' option values should be
" stored as key names in the vimrc file
set pastetoggle=<F5>
set wildchar=<F6>
set wildcharm=<F7>
call assert_fails('mkvimrc Xtestvimrc')
mkvimrc! Xtestvimrc
call assert_notequal(-1, index(readfile('Xtestvimrc'), 'set pastetoggle=<F5>'))
call assert_notequal(-1, index(readfile('Xtestvimrc'), 'set wildchar=<F6>'))
call assert_notequal(-1, index(readfile('Xtestvimrc'), 'set wildcharm=<F7>'))
set pastetoggle& wildchar& wildcharm&

call delete('Xtestvimrc')
endfunc

Expand Down
31 changes: 31 additions & 0 deletions src/testdir/test_options.vim
Expand Up @@ -434,6 +434,7 @@ func Test_set_errors()
set nomodifiable
call assert_fails('set fileencoding=latin1', 'E21:')
set modifiable&
call assert_fails('set t_#-&', 'E522:')
endfunc

func CheckWasSet(name)
Expand Down Expand Up @@ -946,6 +947,18 @@ func Test_opt_local_to_global()
call assert_equal('gnewprg', &l:equalprg)
call assert_equal('gnewprg', &equalprg)
set equalprg&

" Test for setting the global/local value of a boolean option
setglobal autoread
setlocal noautoread
call assert_false(&autoread)
set autoread<
call assert_true(&autoread)
setglobal noautoread
setlocal autoread
setlocal autoread<
call assert_false(&autoread)
set autoread&
endfunc

" Test for incrementing, decrementing and multiplying a number option value
Expand Down Expand Up @@ -1121,4 +1134,22 @@ func Test_VIM_POSIX()
call setenv('VIM_POSIX', saved_VIM_POSIX)
endfunc

" Test for setting an option to a Vi or Vim default
func Test_opt_default()
set formatoptions&vi
call assert_equal('vt', &formatoptions)
set formatoptions&vim
call assert_equal('tcq', &formatoptions)
endfunc

" Test for the 'cmdheight' option
func Test_cmdheight()
%bw!
let ht = &lines
set cmdheight=9999
call assert_equal(1, winheight(0))
call assert_equal(ht - 1, &cmdheight)
set cmdheight&
endfunc

" vim: shiftwidth=2 sts=2 expandtab
13 changes: 13 additions & 0 deletions src/testdir/test_vartabs.vim
Expand Up @@ -419,4 +419,17 @@ func Test_varsofttabstop()
close!
endfunc

" Setting 'shiftwidth' to a negative value, should set it to either the value
" of 'tabstop' (if 'vartabstop' is not set) or to the first value in
" 'vartabstop'
func Test_shiftwidth_vartabstop()
setlocal tabstop=7 vartabstop=
call assert_fails('set shiftwidth=-1', 'E487:')
call assert_equal(7, &shiftwidth)
setlocal tabstop=7 vartabstop=5,7,10
call assert_fails('set shiftwidth=-1', 'E487:')
call assert_equal(5, &shiftwidth)
setlocal shiftwidth& vartabstop& tabstop&
endfunc

" vim: shiftwidth=2 sts=2 expandtab
10 changes: 9 additions & 1 deletion src/testdir/test_window_cmd.vim
Expand Up @@ -397,7 +397,15 @@ func Test_window_width()
call assert_inrange(ww1, ww1 + 1, ww2)
call assert_inrange(ww3, ww3 + 1, ww2)

bw Xa Xb Xc
" when the current window width is less than the new 'winwidth', the current
" window width should be increased.
enew | only
split
10vnew
set winwidth=15
call assert_equal(15, winwidth(0))

%bw!
endfunc

func Test_equalalways_on_close()
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -750,6 +750,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2979,
/**/
2978,
/**/
Expand Down

0 comments on commit 5958549

Please sign in to comment.