vim-patch:8.2.3155: some option related code not covered by tests

Problem:    Some option related code not covered by tests.
Solution:   Add a few test cases. (Dominique Pellé, closes vim/vim#8552)
042414fa00
This commit is contained in:
zeertzjq 2022-09-22 11:15:35 +08:00
parent 88099c1122
commit 800cda2164
2 changed files with 63 additions and 0 deletions

View File

@ -947,6 +947,28 @@ func Test_opt_local_to_global()
set autoread&
endfunc
func Test_set_in_sandbox()
" Some boolean options cannot be set in sandbox, some can.
call assert_fails('sandbox set modelineexpr', 'E48:')
sandbox set number
call assert_true(&number)
set number&
" Some boolean options cannot be set in sandbox, some can.
if has('python') || has('python3')
call assert_fails('sandbox set pyxversion=3', 'E48:')
endif
sandbox set tabstop=4
call assert_equal(4, &tabstop)
set tabstop&
" Some string options cannot be set in sandbox, some can.
call assert_fails('sandbox set backupdir=/tmp', 'E48:')
sandbox set filetype=perl
call assert_equal('perl', &filetype)
set filetype&
endfunc
" Test for incrementing, decrementing and multiplying a number option value
func Test_opt_num_op()
set shiftwidth=4
@ -1131,6 +1153,28 @@ func Test_opt_errorbells()
set noerrorbells
endfunc
func Test_opt_scrolljump()
help
resize 10
" Test with positive 'scrolljump'.
set scrolljump=2
norm! Lj
call assert_equal({'lnum':11, 'leftcol':0, 'col':0, 'topfill':0,
\ 'topline':3, 'coladd':0, 'skipcol':0, 'curswant':0},
\ winsaveview())
" Test with negative 'scrolljump' (percentage of window height).
set scrolljump=-40
norm! ggLj
call assert_equal({'lnum':11, 'leftcol':0, 'col':0, 'topfill':0,
\ 'topline':5, 'coladd':0, 'skipcol':0, 'curswant':0},
\ winsaveview())
set scrolljump&
bw
endfunc
" Test for the 'cdhome' option
func Test_opt_cdhome()
if has('unix') || has('vms')

View File

@ -26,4 +26,23 @@ function Test_set_add()
let &wig = wig_save
endfunction
" :set, :setlocal, :setglobal without arguments show values of options.
func Test_set_no_arg()
set textwidth=79
let a = execute('set')
call assert_match("^\n--- Options ---\n.*textwidth=79\\>", a)
set textwidth&
setlocal textwidth=78
let a = execute('setlocal')
call assert_match("^\n--- Local option values ---\n.*textwidth=78\\>", a)
setlocal textwidth&
setglobal textwidth=77
let a = execute('setglobal')
call assert_match("^\n--- Global option values ---\n.*textwidth=77\\>", a)
setglobal textwidth&
endfunc
" vim: shiftwidth=2 sts=2 expandtab