1
0
forked from aniani/vim

patch 8.2.2100: insufficient testing for function range and dict

Problem:    Insufficient testing for function range and dict.
Solution:   Add a few tests. (Dominique Pellé, closes #7428)
This commit is contained in:
Bram Moolenaar
2020-12-06 15:03:19 +01:00
parent 918a424917
commit 67322bf74a
5 changed files with 41 additions and 2 deletions

View File

@@ -445,4 +445,36 @@ func Test_func_arg_error()
delfunc Xfunc
endfunc
func Test_func_dict()
let mydict = {'a': 'b'}
function mydict.somefunc() dict
return len(self)
endfunc
call assert_equal("{'a': 'b', 'somefunc': function('2')}", string(mydict))
call assert_equal(2, mydict.somefunc())
call assert_match("^\n function \\d\\\+() dict"
\ .. "\n1 return len(self)"
\ .. "\n endfunction$", execute('func mydict.somefunc'))
endfunc
func Test_func_range()
new
call setline(1, range(1, 8))
func FuncRange() range
echo a:firstline
echo a:lastline
endfunc
3
call assert_equal("\n3\n3", execute('call FuncRange()'))
call assert_equal("\n4\n6", execute('4,6 call FuncRange()'))
call assert_equal("\n function FuncRange() range"
\ .. "\n1 echo a:firstline"
\ .. "\n2 echo a:lastline"
\ .. "\n endfunction",
\ execute('function FuncRange'))
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab