mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
vim-patch:8.2.2994: various code is not fully tested
Problem: Various code is not fully tested.
Solution: Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#8378)
2d6d718dde
Nvim does not support encoding=latin1 or compatible mode.
The two paste tests are applicable.
This commit is contained in:
parent
dd2b7586f3
commit
88099c1122
@ -665,7 +665,7 @@ func Sandbox_tests()
|
||||
" some options cannot be changed in a sandbox
|
||||
call assert_fails('set exrc', 'E48:')
|
||||
call assert_fails('set cdpath', 'E48:')
|
||||
if has('xim')
|
||||
if has('xim') && has('gui_gtk')
|
||||
call assert_fails('set imstyle', 'E48:')
|
||||
endif
|
||||
endfunc
|
||||
|
@ -975,6 +975,21 @@ func Test_abbreviate_multi_byte()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" Test for abbreviations with 'latin1' encoding
|
||||
func Test_abbreviate_latin1_encoding()
|
||||
" set encoding=latin1
|
||||
call assert_fails('abbr ab#$c ABC', 'E474:')
|
||||
new
|
||||
iabbr <buffer> #i #include
|
||||
iabbr <buffer> ## #enddef
|
||||
exe "normal i#i\<C-]>"
|
||||
call assert_equal('#include', getline(1))
|
||||
exe "normal 0Di##\<C-]>"
|
||||
call assert_equal('#enddef', getline(1))
|
||||
%bw!
|
||||
set encoding=utf-8
|
||||
endfunc
|
||||
+
|
||||
" Test for <Plug> always being mapped, even when used with "noremap".
|
||||
func Test_plug_remap()
|
||||
let g:foo = 0
|
||||
|
@ -1,5 +1,7 @@
|
||||
" Tests for parsing the modeline.
|
||||
|
||||
source check.vim
|
||||
|
||||
func Test_modeline_invalid()
|
||||
" This was reading allocated memory in the past.
|
||||
call writefile(['vi:0', 'nothing'], 'Xmodeline')
|
||||
@ -337,6 +339,32 @@ func Test_modeline_setoption_verbose()
|
||||
call delete('Xmodeline')
|
||||
endfunc
|
||||
|
||||
" Test for the 'modeline' default value in compatible and non-compatible modes
|
||||
" for root and non-root accounts
|
||||
func Test_modeline_default()
|
||||
" set compatible
|
||||
" call assert_false(&modeline)
|
||||
set nocompatible
|
||||
call assert_equal(IsRoot() ? 0 : 1, &modeline)
|
||||
" set compatible&vi
|
||||
" call assert_false(&modeline)
|
||||
set compatible&vim
|
||||
call assert_equal(IsRoot() ? 0 : 1, &modeline)
|
||||
set compatible& modeline&
|
||||
endfunc
|
||||
|
||||
" Some options cannot be set from the modeline when 'diff' option is set
|
||||
func Test_modeline_diff_buffer()
|
||||
call writefile(['vim: diff foldmethod=marker wrap'], 'Xfile')
|
||||
set foldmethod& nowrap
|
||||
new Xfile
|
||||
call assert_equal('manual', &foldmethod)
|
||||
call assert_false(&wrap)
|
||||
set wrap&
|
||||
call delete('Xfile')
|
||||
bw
|
||||
endfunc
|
||||
|
||||
func Test_modeline_disable()
|
||||
set modeline
|
||||
call writefile(['vim: sw=2', 'vim: nomodeline', 'vim: sw=3'], 'Xmodeline_disable')
|
||||
|
@ -1114,6 +1114,23 @@ func Test_cmdheight()
|
||||
set cmdheight&
|
||||
endfunc
|
||||
|
||||
" To specify a control character as a option value, '^' can be used
|
||||
func Test_opt_control_char()
|
||||
set wildchar=^v
|
||||
call assert_equal("\<C-V>", nr2char(&wildchar))
|
||||
set wildcharm=^r
|
||||
call assert_equal("\<C-R>", nr2char(&wildcharm))
|
||||
" Bug: This doesn't work for the 'cedit' and 'termwinkey' options
|
||||
set wildchar& wildcharm&
|
||||
endfunc
|
||||
|
||||
" Test for the 'errorbells' option
|
||||
func Test_opt_errorbells()
|
||||
set errorbells
|
||||
call assert_beeps('s/a1b2/x1y2/')
|
||||
set noerrorbells
|
||||
endfunc
|
||||
|
||||
" Test for the 'cdhome' option
|
||||
func Test_opt_cdhome()
|
||||
if has('unix') || has('vms')
|
||||
|
76
src/nvim/testdir/test_paste.vim
Normal file
76
src/nvim/testdir/test_paste.vim
Normal file
@ -0,0 +1,76 @@
|
||||
|
||||
" Test for 'pastetoggle'
|
||||
func Test_pastetoggle()
|
||||
new
|
||||
set pastetoggle=<F4>
|
||||
set nopaste
|
||||
call feedkeys("iHello\<F4>", 'xt')
|
||||
call assert_true(&paste)
|
||||
call feedkeys("i\<F4>", 'xt')
|
||||
call assert_false(&paste)
|
||||
call assert_equal('Hello', getline(1))
|
||||
" command-line completion for 'pastetoggle' value
|
||||
call feedkeys(":set pastetoggle=\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||
call assert_equal('"set pastetoggle=<F4>', @:)
|
||||
set pastetoggle&
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" Test for restoring option values when 'paste' is disabled
|
||||
func Test_paste_opt_restore()
|
||||
set autoindent expandtab ruler showmatch
|
||||
if has('rightleft')
|
||||
set revins hkmap
|
||||
endif
|
||||
set smarttab softtabstop=3 textwidth=27 wrapmargin=12
|
||||
if has('vartabs')
|
||||
set varsofttabstop=10,20
|
||||
endif
|
||||
|
||||
" enabling 'paste' should reset the above options
|
||||
set paste
|
||||
call assert_false(&autoindent)
|
||||
call assert_false(&expandtab)
|
||||
if has('rightleft')
|
||||
call assert_false(&revins)
|
||||
call assert_false(&hkmap)
|
||||
endif
|
||||
call assert_false(&ruler)
|
||||
call assert_false(&showmatch)
|
||||
call assert_false(&smarttab)
|
||||
call assert_equal(0, &softtabstop)
|
||||
call assert_equal(0, &textwidth)
|
||||
call assert_equal(0, &wrapmargin)
|
||||
if has('vartabs')
|
||||
call assert_equal('', &varsofttabstop)
|
||||
endif
|
||||
|
||||
" disabling 'paste' should restore the option values
|
||||
set nopaste
|
||||
call assert_true(&autoindent)
|
||||
call assert_true(&expandtab)
|
||||
if has('rightleft')
|
||||
call assert_true(&revins)
|
||||
call assert_true(&hkmap)
|
||||
endif
|
||||
call assert_true(&ruler)
|
||||
call assert_true(&showmatch)
|
||||
call assert_true(&smarttab)
|
||||
call assert_equal(3, &softtabstop)
|
||||
call assert_equal(27, &textwidth)
|
||||
call assert_equal(12, &wrapmargin)
|
||||
if has('vartabs')
|
||||
call assert_equal('10,20', &varsofttabstop)
|
||||
endif
|
||||
|
||||
set autoindent& expandtab& ruler& showmatch&
|
||||
if has('rightleft')
|
||||
set revins& hkmap&
|
||||
endif
|
||||
set smarttab& softtabstop& textwidth& wrapmargin&
|
||||
if has('vartabs')
|
||||
set varsofttabstop&
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
Loading…
Reference in New Issue
Block a user