0
0
mirror of https://github.com/vim/vim.git synced 2025-09-07 22:03:36 -04:00

patch 8.0.0414: balloon eval is not tested

Problem:    Balloon eval is not tested.
Solution:   Add a few balloon tests. (Kazunobu Kuriyama)
This commit is contained in:
Bram Moolenaar 2017-03-05 13:27:25 +01:00
parent a1c8ecfda9
commit d5841f28d4
2 changed files with 133 additions and 0 deletions

View File

@ -22,6 +22,14 @@ func Test_1_set_secure()
call assert_equal(1, has('gui_running'))
endfunc
" As for non-GUI, a balloon_show() test was already added with patch 8.0.0401
func Test_balloon_show()
if has('balloon_eval')
" This won't do anything but must not crash either.
call balloon_show('hi!')
endif
endfunc
func Test_getfontname_with_arg()
let skipped = ''
@ -117,6 +125,129 @@ func Test_quoteplus()
endif
endfunc
func Test_set_balloondelay()
if !exists('+balloondelay')
return
endif
let balloondelay_saved = &balloondelay
" Check if the default value is identical to that described in the manual.
set balloondelay&
call assert_equal(600, &balloondelay)
" Edge cases
" XXX This fact should be hidden so that people won't be tempted to write
" plugin/TimeMachine.vim. TODO Add reasonable range checks to the source
" code.
set balloondelay=-1
call assert_equal(-1, &balloondelay)
" Though it's possible to interpret the zero delay to be 'as soon as
" possible' or even 'indefinite', its actual meaning depends on the GUI
" toolkit in use after all.
set balloondelay=0
call assert_equal(0, &balloondelay)
set balloondelay=1
call assert_equal(1, &balloondelay)
" Since p_bdelay is of type long currently, the upper bound can be
" impractically huge and machine-dependent. Practically, it's sufficient
" to check if balloondelay works with 0xffffffff (32 bits) for now.
set balloondelay=4294967295
call assert_equal(4294967295, &balloondelay)
let &balloondelay = balloondelay_saved
endfunc
func Test_set_ballooneval()
if !exists('+ballooneval')
return
endif
let ballooneval_saved = &ballooneval
set ballooneval&
call assert_equal(0, &ballooneval)
set ballooneval
call assert_notequal(0, &ballooneval)
set noballooneval
call assert_equal(0, &ballooneval)
let &ballooneval = ballooneval_saved
endfunc
func Test_set_balloonexpr()
if !exists('+balloonexpr')
return
endif
let balloonexpr_saved = &balloonexpr
" Default value
set balloonexpr&
call assert_equal('', &balloonexpr)
" User-defined function
new
func MyBalloonExpr()
return 'Cursor is at line ' . v:beval_lnum .
\', column ' . v:beval_col .
\ ' of file ' . bufname(v:beval_bufnr) .
\ ' on word "' . v:beval_text . '"' .
\ ' in window ' . v:beval_winid . ' (#' . v:beval_winnr . ')'
endfunc
setl balloonexpr=MyBalloonExpr()
setl ballooneval
call assert_equal('MyBalloonExpr()', &balloonexpr)
" TODO Read non-empty text, place the pointer at a character of a word,
" and check if the content of the balloon is the smae as what is expected.
" Also, check if textlock works as expected.
setl balloonexpr&
call assert_equal('', &balloonexpr)
delfunc MyBalloonExpr
bwipe!
" Multiline support
if has('balloon_multiline')
" Multiline balloon using NL
new
func MyBalloonFuncForMultilineUsingNL()
return "Multiline\nSuppported\nBalloon\nusing NL"
endfunc
setl balloonexpr=MyBalloonFuncForMultilineUsingNL()
setl ballooneval
call assert_equal('MyBalloonFuncForMultilineUsingNL()', &balloonexpr)
" TODO Read non-empty text, place the pointer at a character of a word,
" and check if the content of the balloon is the smae as what is
" expected. Also, check if textlock works as expected.
setl balloonexpr&
delfunc MyBalloonFuncForMultilineUsingNL
bwipe!
" Multiline balloon using List
new
func MyBalloonFuncForMultilineUsingList()
return [ 'Multiline', 'Suppported', 'Balloon', 'using List' ]
endfunc
setl balloonexpr=MyBalloonFuncForMultilineUsingList()
setl ballooneval
call assert_equal('MyBalloonFuncForMultilineUsingList()', &balloonexpr)
" TODO Read non-empty text, place the pointer at a character of a word,
" and check if the content of the balloon is the smae as what is
" expected. Also, check if textlock works as expected.
setl balloonexpr&
delfunc MyBalloonFuncForMultilineUsingList
bwipe!
endif
let &balloonexpr = balloonexpr_saved
endfunc
func Test_set_guifont()
let skipped = ''

View File

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