mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
patch 8.2.1077: no enough test coverage for highlighting
Problem: No enough test coverage for highlighting. Solution: Add more tests. (Yegappan Lakshmanan, closes #6351)
This commit is contained in:
@@ -5018,7 +5018,7 @@ ctermul={color-nr} *highlight-ctermul*
|
|||||||
console. Example, for reverse video: >
|
console. Example, for reverse video: >
|
||||||
:highlight Visual ctermfg=bg ctermbg=fg
|
:highlight Visual ctermfg=bg ctermbg=fg
|
||||||
< Note that the colors are used that are valid at the moment this
|
< Note that the colors are used that are valid at the moment this
|
||||||
command are given. If the Normal group colors are changed later, the
|
command is given. If the Normal group colors are changed later, the
|
||||||
"fg" and "bg" colors will not be adjusted.
|
"fg" and "bg" colors will not be adjusted.
|
||||||
|
|
||||||
|
|
||||||
|
@@ -191,6 +191,10 @@ func Test_highlight_completion()
|
|||||||
call assert_equal('"hi default', getreg(':'))
|
call assert_equal('"hi default', getreg(':'))
|
||||||
call feedkeys(":hi c\<S-Tab>\<Home>\"\<CR>", 'xt')
|
call feedkeys(":hi c\<S-Tab>\<Home>\"\<CR>", 'xt')
|
||||||
call assert_equal('"hi clear', getreg(':'))
|
call assert_equal('"hi clear', getreg(':'))
|
||||||
|
call feedkeys(":hi clear Aardig Aard\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||||
|
call assert_equal('"hi clear Aardig Aardig', getreg(':'))
|
||||||
|
call feedkeys(":hi Aardig \<Tab>\<C-B>\"\<CR>", 'xt')
|
||||||
|
call assert_equal("\"hi Aardig \t", getreg(':'))
|
||||||
|
|
||||||
" A cleared group does not show up in completions.
|
" A cleared group does not show up in completions.
|
||||||
hi Anders ctermfg=green
|
hi Anders ctermfg=green
|
||||||
@@ -201,6 +205,14 @@ func Test_highlight_completion()
|
|||||||
call assert_equal([], getcompletion('A', 'highlight'))
|
call assert_equal([], getcompletion('A', 'highlight'))
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for command-line expansion of "hi Ni " (easter egg)
|
||||||
|
func Test_highlight_easter_egg()
|
||||||
|
call test_override('ui_delay', 1)
|
||||||
|
call feedkeys(":hi Ni \<Tab>\<C-B>\"\<CR>", 'xt')
|
||||||
|
call assert_equal("\"hi Ni \<Tab>", @:)
|
||||||
|
call test_override('ALL', 0)
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_getcompletion()
|
func Test_getcompletion()
|
||||||
if !has('cmdline_compl')
|
if !has('cmdline_compl')
|
||||||
return
|
return
|
||||||
|
@@ -701,8 +701,9 @@ endfunc
|
|||||||
func Test_highlight_cmd_errors()
|
func Test_highlight_cmd_errors()
|
||||||
if has('gui_running')
|
if has('gui_running')
|
||||||
" This test doesn't fail in the MS-Windows console version.
|
" This test doesn't fail in the MS-Windows console version.
|
||||||
call assert_fails('hi Xcomment ctermfg=fg', 'E419:')
|
call assert_fails('hi Xcomment ctermbg=fg', 'E419:')
|
||||||
call assert_fails('hi Xcomment ctermfg=bg', 'E420:')
|
call assert_fails('hi Xcomment ctermfg=bg', 'E420:')
|
||||||
|
call assert_fails('hi Xcomment ctermfg=ul', 'E453:')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Try using a very long terminal code. Define a dummy terminal code for this
|
" Try using a very long terminal code. Define a dummy terminal code for this
|
||||||
@@ -713,4 +714,51 @@ func Test_highlight_cmd_errors()
|
|||||||
let &t_fo = ""
|
let &t_fo = ""
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for 'highlight' option
|
||||||
|
func Test_highlight_opt()
|
||||||
|
let save_hl = &highlight
|
||||||
|
call assert_fails('set highlight=j:b', 'E474:')
|
||||||
|
set highlight=f\ r
|
||||||
|
call assert_equal('f r', &highlight)
|
||||||
|
set highlight=fb
|
||||||
|
call assert_equal('fb', &highlight)
|
||||||
|
set highlight=fi
|
||||||
|
call assert_equal('fi', &highlight)
|
||||||
|
set highlight=f-
|
||||||
|
call assert_equal('f-', &highlight)
|
||||||
|
set highlight=fr
|
||||||
|
call assert_equal('fr', &highlight)
|
||||||
|
set highlight=fs
|
||||||
|
call assert_equal('fs', &highlight)
|
||||||
|
set highlight=fu
|
||||||
|
call assert_equal('fu', &highlight)
|
||||||
|
set highlight=fc
|
||||||
|
call assert_equal('fc', &highlight)
|
||||||
|
set highlight=ft
|
||||||
|
call assert_equal('ft', &highlight)
|
||||||
|
call assert_fails('set highlight=fr:Search', 'E474:')
|
||||||
|
set highlight=f:$#
|
||||||
|
call assert_match('W18:', v:statusmsg)
|
||||||
|
let &highlight = save_hl
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for User group highlighting used in the statusline
|
||||||
|
func Test_highlight_User()
|
||||||
|
CheckNotGui
|
||||||
|
hi User1 ctermfg=12
|
||||||
|
redraw!
|
||||||
|
call assert_equal('12', synIDattr(synIDtrans(hlID('User1')), 'fg'))
|
||||||
|
hi clear
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for using RGB color values in a highlight group
|
||||||
|
func Test_highlight_RGB_color()
|
||||||
|
CheckGui
|
||||||
|
hi MySearch guifg=#110000 guibg=#001100 guisp=#000011
|
||||||
|
call assert_equal('#110000', synIDattr(synIDtrans(hlID('MySearch')), 'fg#'))
|
||||||
|
call assert_equal('#001100', synIDattr(synIDtrans(hlID('MySearch')), 'bg#'))
|
||||||
|
call assert_equal('#000011', synIDattr(synIDtrans(hlID('MySearch')), 'sp#'))
|
||||||
|
hi clear
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -98,6 +98,7 @@ function Test_match()
|
|||||||
call assert_fails('call setmatches(0)', 'E714:')
|
call assert_fails('call setmatches(0)', 'E714:')
|
||||||
call assert_fails('call setmatches([0])', 'E474:')
|
call assert_fails('call setmatches([0])', 'E474:')
|
||||||
call assert_fails("call setmatches([{'wrong key': 'wrong value'}])", 'E474:')
|
call assert_fails("call setmatches([{'wrong key': 'wrong value'}])", 'E474:')
|
||||||
|
call assert_equal(-1, setmatches([{'group' : 'Search', 'priority' : 10, 'id' : 5, 'pos1' : {}}]))
|
||||||
|
|
||||||
call setline(1, 'abcdefghijklmnopq')
|
call setline(1, 'abcdefghijklmnopq')
|
||||||
call matchaddpos("MyGroup1", [[1, 5], [1, 8, 3]], 10, 3)
|
call matchaddpos("MyGroup1", [[1, 5], [1, 8, 3]], 10, 3)
|
||||||
@@ -164,6 +165,8 @@ func Test_matchadd_error()
|
|||||||
call assert_fails("call matchadd('Error', 'XXX', 1, 3)", 'E798:')
|
call assert_fails("call matchadd('Error', 'XXX', 1, 3)", 'E798:')
|
||||||
call assert_fails("call matchadd('Error', 'XXX', 1, 0)", 'E799:')
|
call assert_fails("call matchadd('Error', 'XXX', 1, 0)", 'E799:')
|
||||||
call assert_fails("call matchadd('Error', 'XXX', [], 0)", 'E745:')
|
call assert_fails("call matchadd('Error', 'XXX', [], 0)", 'E745:')
|
||||||
|
call assert_equal(-1, matchadd('', 'pat'))
|
||||||
|
call assert_equal(-1, matchadd('Search', ''))
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_matchaddpos()
|
func Test_matchaddpos()
|
||||||
@@ -202,6 +205,14 @@ func Test_matchaddpos()
|
|||||||
call assert_equal(screenattr(2,2), screenattr(1,10))
|
call assert_equal(screenattr(2,2), screenattr(1,10))
|
||||||
call assert_notequal(screenattr(2,2), screenattr(1,11))
|
call assert_notequal(screenattr(2,2), screenattr(1,11))
|
||||||
|
|
||||||
|
" matchaddpos() with line number as 0
|
||||||
|
call clearmatches()
|
||||||
|
let id = matchaddpos('Search', [[0], [3], [0]])
|
||||||
|
call assert_equal([{'group' : 'Search', 'priority' : 10, 'id' : id, 'pos1' : [3]}], getmatches())
|
||||||
|
call clearmatches()
|
||||||
|
let id = matchaddpos('Search', [0, 3, 0])
|
||||||
|
call assert_equal([{'group' : 'Search', 'priority' : 10, 'id' : id, 'pos1' : [3]}], getmatches())
|
||||||
|
|
||||||
nohl
|
nohl
|
||||||
call clearmatches()
|
call clearmatches()
|
||||||
syntax off
|
syntax off
|
||||||
@@ -233,6 +244,7 @@ func Test_matchaddpos_otherwin()
|
|||||||
|
|
||||||
eval winid->clearmatches()
|
eval winid->clearmatches()
|
||||||
call assert_equal([], getmatches(winid))
|
call assert_equal([], getmatches(winid))
|
||||||
|
call assert_fails('echo getmatches(-1)', 'E957:')
|
||||||
|
|
||||||
call setmatches(savematches, winid)
|
call setmatches(savematches, winid)
|
||||||
call assert_equal(expect, savematches)
|
call assert_equal(expect, savematches)
|
||||||
@@ -281,6 +293,10 @@ func Test_matchaddpos_error()
|
|||||||
call assert_fails("call matchaddpos('Error', [{}])", 'E290:')
|
call assert_fails("call matchaddpos('Error', [{}])", 'E290:')
|
||||||
call assert_equal(-1, matchaddpos('Error', test_null_list()))
|
call assert_equal(-1, matchaddpos('Error', test_null_list()))
|
||||||
call assert_fails("call matchaddpos('Error', [1], [], 1)", 'E745:')
|
call assert_fails("call matchaddpos('Error', [1], [], 1)", 'E745:')
|
||||||
|
call assert_equal(-1, matchaddpos('Search', [[]]))
|
||||||
|
call assert_fails("call matchaddpos('Search', [[{}]])", 'E728:')
|
||||||
|
call assert_fails("call matchaddpos('Search', [[2, {}]])", 'E728:')
|
||||||
|
call assert_fails("call matchaddpos('Search', [[3, 4, {}]])", 'E728:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func OtherWindowCommon()
|
func OtherWindowCommon()
|
||||||
@@ -333,4 +349,24 @@ func Test_matchadd_other_window()
|
|||||||
call delete('XscriptMatchCommon')
|
call delete('XscriptMatchCommon')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for deleting matches outside of the screen redraw top/bottom lines
|
||||||
|
" This should cause a redraw of those lines.
|
||||||
|
func Test_matchdelete_redraw()
|
||||||
|
new
|
||||||
|
call setline(1, range(1, 500))
|
||||||
|
call cursor(250, 1)
|
||||||
|
let m1 = matchaddpos('Search', [[250]])
|
||||||
|
let m2 = matchaddpos('Search', [[10], [450]])
|
||||||
|
redraw!
|
||||||
|
let m3 = matchaddpos('Search', [[240], [260]])
|
||||||
|
call matchdelete(m2)
|
||||||
|
let m = getmatches()
|
||||||
|
call assert_equal(2, len(m))
|
||||||
|
call assert_equal([250], m[0].pos1)
|
||||||
|
redraw!
|
||||||
|
call matchdelete(m1)
|
||||||
|
call assert_equal(1, len(getmatches()))
|
||||||
|
bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1077,
|
||||||
/**/
|
/**/
|
||||||
1076,
|
1076,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user