123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- " Tests for the exists() function
- func Test_exists()
- augroup myagroup
- autocmd! BufEnter *.my echo "myfile edited"
- autocmd! FuncUndefined UndefFun exec "fu UndefFun()\nendfu"
- augroup END
- set rtp+=./sautest
- " valid autocmd group
- call assert_equal(1, exists('#myagroup'))
- " valid autocmd group with garbage
- call assert_equal(0, exists('#myagroup+b'))
- " Valid autocmd group and event
- call assert_equal(1, exists('#myagroup#BufEnter'))
- " Valid autocmd group, event and pattern
- call assert_equal(1, exists('#myagroup#BufEnter#*.my'))
- " Valid autocmd event
- call assert_equal(1, exists('#BufEnter'))
- " Valid autocmd event and pattern
- call assert_equal(1, exists('#BufEnter#*.my'))
- " Non-existing autocmd group or event
- call assert_equal(0, exists('#xyzagroup'))
- " Non-existing autocmd group and valid autocmd event
- call assert_equal(0, exists('#xyzagroup#BufEnter'))
- " Valid autocmd group and event with no matching pattern
- call assert_equal(0, exists('#myagroup#CmdwinEnter'))
- " Valid autocmd group and non-existing autocmd event
- call assert_equal(0, exists('#myagroup#xyzacmd'))
- " Valid autocmd group and event and non-matching pattern
- call assert_equal(0, exists('#myagroup#BufEnter#xyzpat'))
- " Valid autocmd event and non-matching pattern
- call assert_equal(0, exists('#BufEnter#xyzpat'))
- " Empty autocmd group, event and pattern
- call assert_equal(0, exists('###'))
- " Empty autocmd group and event or empty event and pattern
- call assert_equal(0, exists('##'))
- " Valid autocmd event
- call assert_equal(1, exists('##FileReadCmd'))
- " Non-existing autocmd event
- call assert_equal(0, exists('##MySpecialCmd'))
- " Existing and working option (long form)
- call assert_equal(1, exists('&textwidth'))
- " Existing and working option (short form)
- call assert_equal(1, exists('&tw'))
- " Existing and working option with garbage
- call assert_equal(0, exists('&tw-'))
- " Global option
- call assert_equal(1, exists('&g:errorformat'))
- " Local option
- call assert_equal(1, exists('&l:errorformat'))
- " Negative form of existing and working option (long form)
- call assert_equal(0, exists('&nojoinspaces'))
- " Negative form of existing and working option (short form)
- call assert_equal(0, exists('&nojs'))
- " Non-existing option
- call assert_equal(0, exists('&myxyzoption'))
- " Existing and working option (long form)
- call assert_equal(1, exists('+incsearch'))
- " Existing and working option with garbage
- call assert_equal(0, exists('+incsearch!1'))
- " Existing and working option (short form)
- call assert_equal(1, exists('+is'))
- " Existing option that is hidden.
- call assert_equal(0, exists('+autoprint'))
- " Existing environment variable
- let $EDITOR_NAME = 'Vim Editor'
- call assert_equal(1, exists('$EDITOR_NAME'))
- if has('unix')
- " ${name} environment variables are supported only on Unix-like systems
- call assert_equal(1, exists('${VIM}'))
- endif
- " Non-existing environment variable
- call assert_equal(0, exists('$NON_ENV_VAR'))
- " Valid internal function
- call assert_equal(1, exists('*bufnr'))
- " Valid internal function with ()
- call assert_equal(1, exists('*bufnr()'))
- " Non-existing internal function
- call assert_equal(0, exists('*myxyzfunc'))
- " Valid internal function with garbage
- call assert_equal(0, exists('*bufnr&6'))
- " Valid user defined function
- call assert_equal(1, exists('*Test_exists'))
- " Non-existing user defined function
- call assert_equal(0, exists('*MyxyzFunc'))
- " Function that may be created by FuncUndefined event
- call assert_equal(0, exists('*UndefFun'))
- " Function that may be created by script autoloading
- call assert_equal(0, exists('*footest#F'))
- " Valid internal command (full match)
- call assert_equal(2, exists(':edit'))
- " Valid internal command (full match) with garbage
- call assert_equal(0, exists(':edit/a'))
- " Valid internal command (partial match)
- call assert_equal(1, exists(':q'))
- " Valid internal command with a digit
- call assert_equal(2, exists(':2match'))
- " Non-existing internal command
- call assert_equal(0, exists(':invalidcmd'))
- " Internal command with a count
- call assert_equal(0, exists(':3buffer'))
- " User defined command (full match)
- command! MyCmd :echo 'My command'
- call assert_equal(2, exists(':MyCmd'))
- " User defined command (partial match)
- command! MyOtherCmd :echo 'Another command'
- call assert_equal(3, exists(':My'))
- " Command modifier
- call assert_equal(2, exists(':rightbelow'))
- " Non-existing user defined command (full match)
- delcommand MyCmd
- call assert_equal(0, exists(':MyCmd'))
- " Non-existing user defined command (partial match)
- delcommand MyOtherCmd
- call assert_equal(0, exists(':My'))
- " Valid local variable
- let local_var = 1
- call assert_equal(1, exists('local_var'))
- " Valid local variable with garbage
- call assert_equal(0, exists('local_var%n'))
- " Non-existing local variable
- unlet local_var
- call assert_equal(0, exists('local_var'))
- " Non-existing autoload variable that may be autoloaded
- call assert_equal(0, exists('footest#x'))
- " Valid local list
- let local_list = ["blue", "orange"]
- call assert_equal(1, exists('local_list'))
- " Valid local list item
- call assert_equal(1, exists('local_list[1]'))
- " Valid local list item with garbage
- call assert_equal(0, exists('local_list[1]+5'))
- " Invalid local list item
- call assert_equal(0, exists('local_list[2]'))
- " Non-existing local list
- unlet local_list
- call assert_equal(0, exists('local_list'))
- " Valid local dictionary
- let local_dict = {"xcord":100, "ycord":2}
- call assert_equal(1, exists('local_dict'))
- " Non-existing local dictionary
- unlet local_dict
- call assert_equal(0, exists('local_dict'))
- " Existing local curly-brace variable
- let str = "local"
- let curly_{str}_var = 1
- call assert_equal(1, exists('curly_{str}_var'))
- " Non-existing local curly-brace variable
- unlet curly_{str}_var
- call assert_equal(0, exists('curly_{str}_var'))
- " Existing global variable
- let g:global_var = 1
- call assert_equal(1, exists('g:global_var'))
- " Existing global variable with garbage
- call assert_equal(0, exists('g:global_var-n'))
- " Non-existing global variable
- unlet g:global_var
- call assert_equal(0, exists('g:global_var'))
- " Existing global list
- let g:global_list = ["blue", "orange"]
- call assert_equal(1, exists('g:global_list'))
- " Non-existing global list
- unlet g:global_list
- call assert_equal(0, exists('g:global_list'))
- " Existing global dictionary
- let g:global_dict = {"xcord":100, "ycord":2}
- call assert_equal(1, exists('g:global_dict'))
- " Non-existing global dictionary
- unlet g:global_dict
- call assert_equal(0, exists('g:global_dict'))
- " Existing global curly-brace variable
- let str = "global"
- let g:curly_{str}_var = 1
- call assert_equal(1, exists('g:curly_{str}_var'))
- " Non-existing global curly-brace variable
- unlet g:curly_{str}_var
- call assert_equal(0, exists('g:curly_{str}_var'))
- " Existing window variable
- let w:window_var = 1
- call assert_equal(1, exists('w:window_var'))
- " Non-existing window variable
- unlet w:window_var
- call assert_equal(0, exists('w:window_var'))
- " Existing window list
- let w:window_list = ["blue", "orange"]
- call assert_equal(1, exists('w:window_list'))
- " Non-existing window list
- unlet w:window_list
- call assert_equal(0, exists('w:window_list'))
- " Existing window dictionary
- let w:window_dict = {"xcord":100, "ycord":2}
- call assert_equal(1, exists('w:window_dict'))
- " Non-existing window dictionary
- unlet w:window_dict
- call assert_equal(0, exists('w:window_dict'))
- " Existing window curly-brace variable
- let str = "window"
- let w:curly_{str}_var = 1
- call assert_equal(1, exists('w:curly_{str}_var'))
- " Non-existing window curly-brace variable
- unlet w:curly_{str}_var
- call assert_equal(0, exists('w:curly_{str}_var'))
- " Existing tab variable
- let t:tab_var = 1
- call assert_equal(1, exists('t:tab_var'))
- " Non-existing tab variable
- unlet t:tab_var
- call assert_equal(0, exists('t:tab_var'))
- " Existing tab list
- let t:tab_list = ["blue", "orange"]
- call assert_equal(1, exists('t:tab_list'))
- " Non-existing tab list
- unlet t:tab_list
- call assert_equal(0, exists('t:tab_list'))
- " Existing tab dictionary
- let t:tab_dict = {"xcord":100, "ycord":2}
- call assert_equal(1, exists('t:tab_dict'))
- " Non-existing tab dictionary
- unlet t:tab_dict
- call assert_equal(0, exists('t:tab_dict'))
- " Existing tab curly-brace variable
- let str = "tab"
- let t:curly_{str}_var = 1
- call assert_equal(1, exists('t:curly_{str}_var'))
- " Non-existing tab curly-brace variable
- unlet t:curly_{str}_var
- call assert_equal(0, exists('t:curly_{str}_var'))
- " Existing buffer variable
- let b:buffer_var = 1
- call assert_equal(1, exists('b:buffer_var'))
- " Non-existing buffer variable
- unlet b:buffer_var
- call assert_equal(0, exists('b:buffer_var'))
- " Existing buffer list
- let b:buffer_list = ["blue", "orange"]
- call assert_equal(1, exists('b:buffer_list'))
- " Non-existing buffer list
- unlet b:buffer_list
- call assert_equal(0, exists('b:buffer_list'))
- " Existing buffer dictionary
- let b:buffer_dict = {"xcord":100, "ycord":2}
- call assert_equal(1, exists('b:buffer_dict'))
- " Non-existing buffer dictionary
- unlet b:buffer_dict
- call assert_equal(0, exists('b:buffer_dict'))
- " Existing buffer curly-brace variable
- let str = "buffer"
- let b:curly_{str}_var = 1
- call assert_equal(1, exists('b:curly_{str}_var'))
- " Non-existing buffer curly-brace variable
- unlet b:curly_{str}_var
- call assert_equal(0, exists('b:curly_{str}_var'))
- " Existing Vim internal variable
- call assert_equal(1, exists('v:version'))
- " Non-existing Vim internal variable
- call assert_equal(0, exists('v:non_exists_var'))
- " Existing script-local variable
- let s:script_var = 1
- call assert_equal(1, exists('s:script_var'))
- " Non-existing script-local variable
- unlet s:script_var
- call assert_equal(0, exists('s:script_var'))
- " Existing script-local list
- let s:script_list = ["blue", "orange"]
- call assert_equal(1, exists('s:script_list'))
- " Non-existing script-local list
- unlet s:script_list
- call assert_equal(0, exists('s:script_list'))
- " Existing script-local dictionary
- let s:script_dict = {"xcord":100, "ycord":2}
- call assert_equal(1, exists('s:script_dict'))
- " Non-existing script-local dictionary
- unlet s:script_dict
- call assert_equal(0, exists('s:script_dict'))
- " Existing script curly-brace variable
- let str = "script"
- let s:curly_{str}_var = 1
- call assert_equal(1, exists('s:curly_{str}_var'))
- " Non-existing script-local curly-brace variable
- unlet s:curly_{str}_var
- call assert_equal(0, exists('s:curly_{str}_var'))
- " Existing script-local function
- function! s:my_script_func()
- endfunction
- echo '*s:my_script_func: 1'
- call assert_equal(1, exists('*s:my_script_func'))
- " Non-existing script-local function
- delfunction s:my_script_func
- call assert_equal(0, exists('*s:my_script_func'))
- unlet str
- call assert_equal(1, g:footest#x)
- call assert_equal(0, footest#F())
- call assert_equal(0, UndefFun())
- endfunc
- " exists() test for Function arguments
- func FuncArg_Tests(func_arg, ...)
- call assert_equal(1, exists('a:func_arg'))
- call assert_equal(0, exists('a:non_exists_arg'))
- call assert_equal(1, exists('a:1'))
- call assert_equal(0, exists('a:2'))
- endfunc
- func Test_exists_funcarg()
- call FuncArg_Tests("arg1", "arg2")
- endfunc
- " vim: shiftwidth=2 sts=2 expandtab
|