1
0
forked from aniani/vim

patch 8.1.0832: confirm() is not tested

Problem:    confirm() is not tested.
Solution:   Add a test. (Dominique Pelle, closes #3868)
This commit is contained in:
Bram Moolenaar
2019-01-27 15:00:36 +01:00
parent 0eb220c030
commit 2e05009218
2 changed files with 57 additions and 0 deletions

View File

@@ -1153,3 +1153,58 @@ func Test_func_exists_on_reload()
call delete('Xfuncexists')
delfunc ExistingFunction
endfunc
" Test confirm({msg} [, {choices} [, {default} [, {type}]]])
func Test_confirm()
if !has('unix') || has('gui_running')
return
endif
call feedkeys('o', 'L')
let a = confirm('Press O to proceed')
call assert_equal(1, a)
call feedkeys('y', 'L')
let a = confirm('Are you sure?', "&Yes\n&No")
call assert_equal(1, a)
call feedkeys('n', 'L')
let a = confirm('Are you sure?', "&Yes\n&No")
call assert_equal(2, a)
" confirm() should return 0 when pressing CTRL-C.
call feedkeys("\<C-c>", 'L')
let a = confirm('Are you sure?', "&Yes\n&No")
call assert_equal(0, a)
" <Esc> requires another character to avoid it being seen as the start of an
" escape sequence. Zero should be harmless.
call feedkeys("\<Esc>0", 'L')
let a = confirm('Are you sure?', "&Yes\n&No")
call assert_equal(0, a)
" Default choice is returned when pressing <CR>.
call feedkeys("\<CR>", 'L')
let a = confirm('Are you sure?', "&Yes\n&No")
call assert_equal(1, a)
call feedkeys("\<CR>", 'L')
let a = confirm('Are you sure?', "&Yes\n&No", 2)
call assert_equal(2, a)
call feedkeys("\<CR>", 'L')
let a = confirm('Are you sure?', "&Yes\n&No", 0)
call assert_equal(0, a)
" Test with the {type} 4th argument
for type in ['Error', 'Question', 'Info', 'Warning', 'Generic']
call feedkeys('y', 'L')
let a = confirm('Are you sure?', "&Yes\n&No\n", 1, type)
call assert_equal(1, a)
endfor
call assert_fails('call confirm([])', 'E730:')
call assert_fails('call confirm("Are you sure?", [])', 'E730:')
call assert_fails('call confirm("Are you sure?", "&Yes\n&No\n", [])', 'E745:')
call assert_fails('call confirm("Are you sure?", "&Yes\n&No\n", 0, [])', 'E730:')
endfunc

View File

@@ -783,6 +783,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
832,
/**/
831,
/**/