aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-09-22 11:15:35 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-09-22 12:40:26 +0800
commit800cda21641dab2411c23a95d85ecef2c731d550 (patch)
tree222e2b8982f6ee620d84387c7309d75b05c31bee /src
parent88099c11223398b2e7eb96eaa9385d24046db994 (diff)
downloadrneovim-800cda21641dab2411c23a95d85ecef2c731d550.tar.gz
rneovim-800cda21641dab2411c23a95d85ecef2c731d550.tar.bz2
rneovim-800cda21641dab2411c23a95d85ecef2c731d550.zip
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) https://github.com/vim/vim/commit/042414fa0053388f9a35cad61886405507554068
Diffstat (limited to 'src')
-rw-r--r--src/nvim/testdir/test_options.vim44
-rw-r--r--src/nvim/testdir/test_set.vim19
2 files changed, 63 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim
index f49d2cdf33..952975df32 100644
--- a/src/nvim/testdir/test_options.vim
+++ b/src/nvim/testdir/test_options.vim
@@ -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')
diff --git a/src/nvim/testdir/test_set.vim b/src/nvim/testdir/test_set.vim
index 2b1e9eeee0..7215772a00 100644
--- a/src/nvim/testdir/test_set.vim
+++ b/src/nvim/testdir/test_set.vim
@@ -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