xref: /vim-8.2.3635/src/testdir/test_exists.vim (revision 6d91bcb4)
14a6fcf80SBram Moolenaar" Tests for the exists() function
2*6d91bcb4SBram Moolenaar
34a6fcf80SBram Moolenaarfunc Test_exists()
44a6fcf80SBram Moolenaar  augroup myagroup
54a6fcf80SBram Moolenaar      autocmd! BufEnter       *.my     echo "myfile edited"
64a6fcf80SBram Moolenaar      autocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"
74a6fcf80SBram Moolenaar  augroup END
84a6fcf80SBram Moolenaar  set rtp+=./sautest
94a6fcf80SBram Moolenaar
104a6fcf80SBram Moolenaar  " valid autocmd group
114a6fcf80SBram Moolenaar  call assert_equal(1, exists('#myagroup'))
124a6fcf80SBram Moolenaar  " valid autocmd group with garbage
134a6fcf80SBram Moolenaar  call assert_equal(0, exists('#myagroup+b'))
144a6fcf80SBram Moolenaar  " Valid autocmd group and event
154a6fcf80SBram Moolenaar  call assert_equal(1, exists('#myagroup#BufEnter'))
164a6fcf80SBram Moolenaar  " Valid autocmd group, event and pattern
174a6fcf80SBram Moolenaar  call assert_equal(1, exists('#myagroup#BufEnter#*.my'))
184a6fcf80SBram Moolenaar  " Valid autocmd event
194a6fcf80SBram Moolenaar  call assert_equal(1, exists('#BufEnter'))
204a6fcf80SBram Moolenaar  " Valid autocmd event and pattern
214a6fcf80SBram Moolenaar  call assert_equal(1, exists('#BufEnter#*.my'))
224a6fcf80SBram Moolenaar  " Non-existing autocmd group or event
234a6fcf80SBram Moolenaar  call assert_equal(0, exists('#xyzagroup'))
244a6fcf80SBram Moolenaar  " Non-existing autocmd group and valid autocmd event
254a6fcf80SBram Moolenaar  call assert_equal(0, exists('#xyzagroup#BufEnter'))
264a6fcf80SBram Moolenaar  " Valid autocmd group and event with no matching pattern
274a6fcf80SBram Moolenaar  call assert_equal(0, exists('#myagroup#CmdwinEnter'))
284a6fcf80SBram Moolenaar  " Valid autocmd group and non-existing autocmd event
294a6fcf80SBram Moolenaar  call assert_equal(0, exists('#myagroup#xyzacmd'))
304a6fcf80SBram Moolenaar  " Valid autocmd group and event and non-matching pattern
314a6fcf80SBram Moolenaar  call assert_equal(0, exists('#myagroup#BufEnter#xyzpat'))
324a6fcf80SBram Moolenaar  " Valid autocmd event and non-matching pattern
334a6fcf80SBram Moolenaar  call assert_equal(0, exists('#BufEnter#xyzpat'))
344a6fcf80SBram Moolenaar  " Empty autocmd group, event and pattern
354a6fcf80SBram Moolenaar  call assert_equal(0, exists('###'))
364a6fcf80SBram Moolenaar  " Empty autocmd group and event or empty event and pattern
374a6fcf80SBram Moolenaar  call assert_equal(0, exists('##'))
384a6fcf80SBram Moolenaar  " Valid autocmd event
394a6fcf80SBram Moolenaar  call assert_equal(1, exists('##FileReadCmd'))
404a6fcf80SBram Moolenaar  " Non-existing autocmd event
414a6fcf80SBram Moolenaar  call assert_equal(0, exists('##MySpecialCmd'))
424a6fcf80SBram Moolenaar
434a6fcf80SBram Moolenaar  " Existing and working option (long form)
444a6fcf80SBram Moolenaar  call assert_equal(1, exists('&textwidth'))
454a6fcf80SBram Moolenaar  " Existing and working option (short form)
464a6fcf80SBram Moolenaar  call assert_equal(1, exists('&tw'))
474a6fcf80SBram Moolenaar  " Existing and working option with garbage
484a6fcf80SBram Moolenaar  call assert_equal(0, exists('&tw-'))
494a6fcf80SBram Moolenaar  " Global option
504a6fcf80SBram Moolenaar  call assert_equal(1, exists('&g:errorformat'))
514a6fcf80SBram Moolenaar  " Local option
524a6fcf80SBram Moolenaar  call assert_equal(1, exists('&l:errorformat'))
534a6fcf80SBram Moolenaar  " Negative form of existing and working option (long form)
544a6fcf80SBram Moolenaar  call assert_equal(0, exists('&nojoinspaces'))
554a6fcf80SBram Moolenaar  " Negative form of existing and working option (short form)
564a6fcf80SBram Moolenaar  call assert_equal(0, exists('&nojs'))
574a6fcf80SBram Moolenaar  " Non-existing option
584a6fcf80SBram Moolenaar  call assert_equal(0, exists('&myxyzoption'))
594a6fcf80SBram Moolenaar
604a6fcf80SBram Moolenaar  " Existing and working option (long form)
614a6fcf80SBram Moolenaar  call assert_equal(1, exists('+incsearch'))
624a6fcf80SBram Moolenaar  " Existing and working option with garbage
634a6fcf80SBram Moolenaar  call assert_equal(0, exists('+incsearch!1'))
644a6fcf80SBram Moolenaar  " Existing and working option (short form)
654a6fcf80SBram Moolenaar  call assert_equal(1, exists('+is'))
664a6fcf80SBram Moolenaar  " Existing option that is hidden.
674a6fcf80SBram Moolenaar  call assert_equal(0, exists('+autoprint'))
684a6fcf80SBram Moolenaar
694a6fcf80SBram Moolenaar  " Existing environment variable
704a6fcf80SBram Moolenaar  let $EDITOR_NAME = 'Vim Editor'
714a6fcf80SBram Moolenaar  call assert_equal(1, exists('$EDITOR_NAME'))
720e05de46SBram Moolenaar  if has('unix')
730e05de46SBram Moolenaar    " ${name} environment variables are supported only on Unix-like systems
740e05de46SBram Moolenaar    call assert_equal(1, exists('${VIM}'))
750e05de46SBram Moolenaar  endif
764a6fcf80SBram Moolenaar  " Non-existing environment variable
774a6fcf80SBram Moolenaar  call assert_equal(0, exists('$NON_ENV_VAR'))
784a6fcf80SBram Moolenaar
794a6fcf80SBram Moolenaar  " Valid internal function
804a6fcf80SBram Moolenaar  call assert_equal(1, exists('*bufnr'))
814a6fcf80SBram Moolenaar  " Valid internal function with ()
824a6fcf80SBram Moolenaar  call assert_equal(1, exists('*bufnr()'))
834a6fcf80SBram Moolenaar  " Non-existing internal function
844a6fcf80SBram Moolenaar  call assert_equal(0, exists('*myxyzfunc'))
854a6fcf80SBram Moolenaar  " Valid internal function with garbage
864a6fcf80SBram Moolenaar  call assert_equal(0, exists('*bufnr&6'))
874a6fcf80SBram Moolenaar  " Valid user defined function
884a6fcf80SBram Moolenaar  call assert_equal(1, exists('*Test_exists'))
894a6fcf80SBram Moolenaar  " Non-existing user defined function
904a6fcf80SBram Moolenaar  call assert_equal(0, exists('*MyxyzFunc'))
914a6fcf80SBram Moolenaar  " Function that may be created by FuncUndefined event
924a6fcf80SBram Moolenaar  call assert_equal(0, exists('*UndefFun'))
934a6fcf80SBram Moolenaar  " Function that may be created by script autoloading
944a6fcf80SBram Moolenaar  call assert_equal(0, exists('*footest#F'))
954a6fcf80SBram Moolenaar
9615c47602SBram Moolenaar  call assert_equal(has('float'), exists('*acos'))
9715c47602SBram Moolenaar  call assert_equal(1, exists('?acos'))
9815c47602SBram Moolenaar  call assert_equal(has('win32'), exists('*debugbreak'))
9915c47602SBram Moolenaar  call assert_equal(1, exists('?debugbreak'))
10015c47602SBram Moolenaar
1014a6fcf80SBram Moolenaar  " Valid internal command (full match)
1024a6fcf80SBram Moolenaar  call assert_equal(2, exists(':edit'))
1034a6fcf80SBram Moolenaar  " Valid internal command (full match) with garbage
1044a6fcf80SBram Moolenaar  call assert_equal(0, exists(':edit/a'))
1054a6fcf80SBram Moolenaar  " Valid internal command (partial match)
1064a6fcf80SBram Moolenaar  call assert_equal(1, exists(':q'))
107f0cee197SBram Moolenaar  " Valid internal command with a digit
108f0cee197SBram Moolenaar  call assert_equal(2, exists(':2match'))
1094a6fcf80SBram Moolenaar  " Non-existing internal command
1104a6fcf80SBram Moolenaar  call assert_equal(0, exists(':invalidcmd'))
111f0cee197SBram Moolenaar  " Internal command with a count
112f0cee197SBram Moolenaar  call assert_equal(0, exists(':3buffer'))
1134a6fcf80SBram Moolenaar
1144a6fcf80SBram Moolenaar  " User defined command (full match)
1154a6fcf80SBram Moolenaar  command! MyCmd :echo 'My command'
1164a6fcf80SBram Moolenaar  call assert_equal(2, exists(':MyCmd'))
1174a6fcf80SBram Moolenaar  " User defined command (partial match)
1184a6fcf80SBram Moolenaar  command! MyOtherCmd :echo 'Another command'
1194a6fcf80SBram Moolenaar  call assert_equal(3, exists(':My'))
1204a6fcf80SBram Moolenaar
1214a6fcf80SBram Moolenaar  " Command modifier
1224a6fcf80SBram Moolenaar  call assert_equal(2, exists(':rightbelow'))
1234a6fcf80SBram Moolenaar
1244a6fcf80SBram Moolenaar  " Non-existing user defined command (full match)
1254a6fcf80SBram Moolenaar  delcommand MyCmd
1264a6fcf80SBram Moolenaar  call assert_equal(0, exists(':MyCmd'))
1274a6fcf80SBram Moolenaar
1284a6fcf80SBram Moolenaar  " Non-existing user defined command (partial match)
1294a6fcf80SBram Moolenaar  delcommand MyOtherCmd
1304a6fcf80SBram Moolenaar  call assert_equal(0, exists(':My'))
1314a6fcf80SBram Moolenaar
1324a6fcf80SBram Moolenaar  " Valid local variable
1334a6fcf80SBram Moolenaar  let local_var = 1
1344a6fcf80SBram Moolenaar  call assert_equal(1, exists('local_var'))
1354a6fcf80SBram Moolenaar  " Valid local variable with garbage
1364a6fcf80SBram Moolenaar  call assert_equal(0, exists('local_var%n'))
1374a6fcf80SBram Moolenaar  " Non-existing local variable
1384a6fcf80SBram Moolenaar  unlet local_var
1394a6fcf80SBram Moolenaar  call assert_equal(0, exists('local_var'))
1404a6fcf80SBram Moolenaar
1414a6fcf80SBram Moolenaar  " Non-existing autoload variable that may be autoloaded
1424a6fcf80SBram Moolenaar  call assert_equal(0, exists('footest#x'))
1434a6fcf80SBram Moolenaar
1444a6fcf80SBram Moolenaar  " Valid local list
1454a6fcf80SBram Moolenaar  let local_list = ["blue", "orange"]
1464a6fcf80SBram Moolenaar  call assert_equal(1, exists('local_list'))
1474a6fcf80SBram Moolenaar  " Valid local list item
1484a6fcf80SBram Moolenaar  call assert_equal(1, exists('local_list[1]'))
1494a6fcf80SBram Moolenaar  " Valid local list item with garbage
1504a6fcf80SBram Moolenaar  call assert_equal(0, exists('local_list[1]+5'))
1514a6fcf80SBram Moolenaar  " Invalid local list item
1524a6fcf80SBram Moolenaar  call assert_equal(0, exists('local_list[2]'))
1534a6fcf80SBram Moolenaar  " Non-existing local list
1544a6fcf80SBram Moolenaar  unlet local_list
1554a6fcf80SBram Moolenaar  call assert_equal(0, exists('local_list'))
1564a6fcf80SBram Moolenaar  " Valid local dictionary
1574a6fcf80SBram Moolenaar  let local_dict = {"xcord":100, "ycord":2}
1584a6fcf80SBram Moolenaar  call assert_equal(1, exists('local_dict'))
1594a6fcf80SBram Moolenaar  " Non-existing local dictionary
1604a6fcf80SBram Moolenaar  unlet local_dict
1614a6fcf80SBram Moolenaar  call assert_equal(0, exists('local_dict'))
1624a6fcf80SBram Moolenaar  " Existing local curly-brace variable
1634a6fcf80SBram Moolenaar  let str = "local"
1644a6fcf80SBram Moolenaar  let curly_{str}_var = 1
1654a6fcf80SBram Moolenaar  call assert_equal(1, exists('curly_{str}_var'))
1664a6fcf80SBram Moolenaar  " Non-existing local curly-brace variable
1674a6fcf80SBram Moolenaar  unlet curly_{str}_var
1684a6fcf80SBram Moolenaar  call assert_equal(0, exists('curly_{str}_var'))
1694a6fcf80SBram Moolenaar
1704a6fcf80SBram Moolenaar  " Existing global variable
1714a6fcf80SBram Moolenaar  let g:global_var = 1
1724a6fcf80SBram Moolenaar  call assert_equal(1, exists('g:global_var'))
1734a6fcf80SBram Moolenaar  " Existing global variable with garbage
1744a6fcf80SBram Moolenaar  call assert_equal(0, exists('g:global_var-n'))
1754a6fcf80SBram Moolenaar  " Non-existing global variable
1764a6fcf80SBram Moolenaar  unlet g:global_var
1774a6fcf80SBram Moolenaar  call assert_equal(0, exists('g:global_var'))
1784a6fcf80SBram Moolenaar  " Existing global list
1794a6fcf80SBram Moolenaar  let g:global_list = ["blue", "orange"]
1804a6fcf80SBram Moolenaar  call assert_equal(1, exists('g:global_list'))
1814a6fcf80SBram Moolenaar  " Non-existing global list
1824a6fcf80SBram Moolenaar  unlet g:global_list
1834a6fcf80SBram Moolenaar  call assert_equal(0, exists('g:global_list'))
1844a6fcf80SBram Moolenaar  " Existing global dictionary
1854a6fcf80SBram Moolenaar  let g:global_dict = {"xcord":100, "ycord":2}
1864a6fcf80SBram Moolenaar  call assert_equal(1, exists('g:global_dict'))
1874a6fcf80SBram Moolenaar  " Non-existing global dictionary
1884a6fcf80SBram Moolenaar  unlet g:global_dict
1894a6fcf80SBram Moolenaar  call assert_equal(0, exists('g:global_dict'))
1904a6fcf80SBram Moolenaar  " Existing global curly-brace variable
1914a6fcf80SBram Moolenaar  let str = "global"
1924a6fcf80SBram Moolenaar  let g:curly_{str}_var = 1
1934a6fcf80SBram Moolenaar  call assert_equal(1, exists('g:curly_{str}_var'))
1944a6fcf80SBram Moolenaar  " Non-existing global curly-brace variable
1954a6fcf80SBram Moolenaar  unlet g:curly_{str}_var
1964a6fcf80SBram Moolenaar  call assert_equal(0, exists('g:curly_{str}_var'))
1974a6fcf80SBram Moolenaar
1984a6fcf80SBram Moolenaar  " Existing window variable
1994a6fcf80SBram Moolenaar  let w:window_var = 1
2004a6fcf80SBram Moolenaar  call assert_equal(1, exists('w:window_var'))
2014a6fcf80SBram Moolenaar  " Non-existing window variable
2024a6fcf80SBram Moolenaar  unlet w:window_var
2034a6fcf80SBram Moolenaar  call assert_equal(0, exists('w:window_var'))
2044a6fcf80SBram Moolenaar  " Existing window list
2054a6fcf80SBram Moolenaar  let w:window_list = ["blue", "orange"]
2064a6fcf80SBram Moolenaar  call assert_equal(1, exists('w:window_list'))
2074a6fcf80SBram Moolenaar  " Non-existing window list
2084a6fcf80SBram Moolenaar  unlet w:window_list
2094a6fcf80SBram Moolenaar  call assert_equal(0, exists('w:window_list'))
2104a6fcf80SBram Moolenaar  " Existing window dictionary
2114a6fcf80SBram Moolenaar  let w:window_dict = {"xcord":100, "ycord":2}
2124a6fcf80SBram Moolenaar  call assert_equal(1, exists('w:window_dict'))
2134a6fcf80SBram Moolenaar  " Non-existing window dictionary
2144a6fcf80SBram Moolenaar  unlet w:window_dict
2154a6fcf80SBram Moolenaar  call assert_equal(0, exists('w:window_dict'))
2164a6fcf80SBram Moolenaar  " Existing window curly-brace variable
2174a6fcf80SBram Moolenaar  let str = "window"
2184a6fcf80SBram Moolenaar  let w:curly_{str}_var = 1
2194a6fcf80SBram Moolenaar  call assert_equal(1, exists('w:curly_{str}_var'))
2204a6fcf80SBram Moolenaar  " Non-existing window curly-brace variable
2214a6fcf80SBram Moolenaar  unlet w:curly_{str}_var
2224a6fcf80SBram Moolenaar  call assert_equal(0, exists('w:curly_{str}_var'))
2234a6fcf80SBram Moolenaar
2244a6fcf80SBram Moolenaar  " Existing tab variable
2254a6fcf80SBram Moolenaar  let t:tab_var = 1
2264a6fcf80SBram Moolenaar  call assert_equal(1, exists('t:tab_var'))
2274a6fcf80SBram Moolenaar  " Non-existing tab variable
2284a6fcf80SBram Moolenaar  unlet t:tab_var
2294a6fcf80SBram Moolenaar  call assert_equal(0, exists('t:tab_var'))
2304a6fcf80SBram Moolenaar  " Existing tab list
2314a6fcf80SBram Moolenaar  let t:tab_list = ["blue", "orange"]
2324a6fcf80SBram Moolenaar  call assert_equal(1, exists('t:tab_list'))
2334a6fcf80SBram Moolenaar  " Non-existing tab list
2344a6fcf80SBram Moolenaar  unlet t:tab_list
2354a6fcf80SBram Moolenaar  call assert_equal(0, exists('t:tab_list'))
2364a6fcf80SBram Moolenaar  " Existing tab dictionary
2374a6fcf80SBram Moolenaar  let t:tab_dict = {"xcord":100, "ycord":2}
2384a6fcf80SBram Moolenaar  call assert_equal(1, exists('t:tab_dict'))
2394a6fcf80SBram Moolenaar  " Non-existing tab dictionary
2404a6fcf80SBram Moolenaar  unlet t:tab_dict
2414a6fcf80SBram Moolenaar  call assert_equal(0, exists('t:tab_dict'))
2424a6fcf80SBram Moolenaar  " Existing tab curly-brace variable
2434a6fcf80SBram Moolenaar  let str = "tab"
2444a6fcf80SBram Moolenaar  let t:curly_{str}_var = 1
2454a6fcf80SBram Moolenaar  call assert_equal(1, exists('t:curly_{str}_var'))
2464a6fcf80SBram Moolenaar  " Non-existing tab curly-brace variable
2474a6fcf80SBram Moolenaar  unlet t:curly_{str}_var
2484a6fcf80SBram Moolenaar  call assert_equal(0, exists('t:curly_{str}_var'))
2494a6fcf80SBram Moolenaar
2504a6fcf80SBram Moolenaar  " Existing buffer variable
2514a6fcf80SBram Moolenaar  let b:buffer_var = 1
2524a6fcf80SBram Moolenaar  call assert_equal(1, exists('b:buffer_var'))
2534a6fcf80SBram Moolenaar  " Non-existing buffer variable
2544a6fcf80SBram Moolenaar  unlet b:buffer_var
2554a6fcf80SBram Moolenaar  call assert_equal(0, exists('b:buffer_var'))
2564a6fcf80SBram Moolenaar  " Existing buffer list
2574a6fcf80SBram Moolenaar  let b:buffer_list = ["blue", "orange"]
2584a6fcf80SBram Moolenaar  call assert_equal(1, exists('b:buffer_list'))
2594a6fcf80SBram Moolenaar  " Non-existing buffer list
2604a6fcf80SBram Moolenaar  unlet b:buffer_list
2614a6fcf80SBram Moolenaar  call assert_equal(0, exists('b:buffer_list'))
2624a6fcf80SBram Moolenaar  " Existing buffer dictionary
2634a6fcf80SBram Moolenaar  let b:buffer_dict = {"xcord":100, "ycord":2}
2644a6fcf80SBram Moolenaar  call assert_equal(1, exists('b:buffer_dict'))
2654a6fcf80SBram Moolenaar  " Non-existing buffer dictionary
2664a6fcf80SBram Moolenaar  unlet b:buffer_dict
2674a6fcf80SBram Moolenaar  call assert_equal(0, exists('b:buffer_dict'))
2684a6fcf80SBram Moolenaar  " Existing buffer curly-brace variable
2694a6fcf80SBram Moolenaar  let str = "buffer"
2704a6fcf80SBram Moolenaar  let b:curly_{str}_var = 1
2714a6fcf80SBram Moolenaar  call assert_equal(1, exists('b:curly_{str}_var'))
2724a6fcf80SBram Moolenaar  " Non-existing buffer curly-brace variable
2734a6fcf80SBram Moolenaar  unlet b:curly_{str}_var
2744a6fcf80SBram Moolenaar  call assert_equal(0, exists('b:curly_{str}_var'))
2754a6fcf80SBram Moolenaar
2764a6fcf80SBram Moolenaar  " Existing Vim internal variable
2774a6fcf80SBram Moolenaar  call assert_equal(1, exists('v:version'))
2784a6fcf80SBram Moolenaar  " Non-existing Vim internal variable
2794a6fcf80SBram Moolenaar  call assert_equal(0, exists('v:non_exists_var'))
2804a6fcf80SBram Moolenaar
2814a6fcf80SBram Moolenaar  " Existing script-local variable
2824a6fcf80SBram Moolenaar  let s:script_var = 1
2834a6fcf80SBram Moolenaar  call assert_equal(1, exists('s:script_var'))
2844a6fcf80SBram Moolenaar  " Non-existing script-local variable
2854a6fcf80SBram Moolenaar  unlet s:script_var
2864a6fcf80SBram Moolenaar  call assert_equal(0, exists('s:script_var'))
2874a6fcf80SBram Moolenaar  " Existing script-local list
2884a6fcf80SBram Moolenaar  let s:script_list = ["blue", "orange"]
2894a6fcf80SBram Moolenaar  call assert_equal(1, exists('s:script_list'))
2904a6fcf80SBram Moolenaar  " Non-existing script-local list
2914a6fcf80SBram Moolenaar  unlet s:script_list
2924a6fcf80SBram Moolenaar  call assert_equal(0, exists('s:script_list'))
2934a6fcf80SBram Moolenaar  " Existing script-local dictionary
2944a6fcf80SBram Moolenaar  let s:script_dict = {"xcord":100, "ycord":2}
2954a6fcf80SBram Moolenaar  call assert_equal(1, exists('s:script_dict'))
2964a6fcf80SBram Moolenaar  " Non-existing script-local dictionary
2974a6fcf80SBram Moolenaar  unlet s:script_dict
2984a6fcf80SBram Moolenaar  call assert_equal(0, exists('s:script_dict'))
2994a6fcf80SBram Moolenaar  " Existing script curly-brace variable
3004a6fcf80SBram Moolenaar  let str = "script"
3014a6fcf80SBram Moolenaar  let s:curly_{str}_var = 1
3024a6fcf80SBram Moolenaar  call assert_equal(1, exists('s:curly_{str}_var'))
3034a6fcf80SBram Moolenaar  " Non-existing script-local curly-brace variable
3044a6fcf80SBram Moolenaar  unlet s:curly_{str}_var
3054a6fcf80SBram Moolenaar  call assert_equal(0, exists('s:curly_{str}_var'))
3064a6fcf80SBram Moolenaar
3074a6fcf80SBram Moolenaar  " Existing script-local function
3084a6fcf80SBram Moolenaar  function! s:my_script_func()
3094a6fcf80SBram Moolenaar  endfunction
3104a6fcf80SBram Moolenaar
3114a6fcf80SBram Moolenaar  echo '*s:my_script_func: 1'
3124a6fcf80SBram Moolenaar  call assert_equal(1, exists('*s:my_script_func'))
3134a6fcf80SBram Moolenaar
3144a6fcf80SBram Moolenaar  " Non-existing script-local function
3154a6fcf80SBram Moolenaar  delfunction s:my_script_func
3164a6fcf80SBram Moolenaar
3174a6fcf80SBram Moolenaar  call assert_equal(0, exists('*s:my_script_func'))
3184a6fcf80SBram Moolenaar  unlet str
3194a6fcf80SBram Moolenaar
3204a6fcf80SBram Moolenaar  call assert_equal(1, g:footest#x)
3214a6fcf80SBram Moolenaar  call assert_equal(0, footest#F())
3224a6fcf80SBram Moolenaar  call assert_equal(0, UndefFun())
3234a6fcf80SBram Moolenaarendfunc
3244a6fcf80SBram Moolenaar
3254a6fcf80SBram Moolenaar" exists() test for Function arguments
3264a6fcf80SBram Moolenaarfunc FuncArg_Tests(func_arg, ...)
3274a6fcf80SBram Moolenaar  call assert_equal(1, exists('a:func_arg'))
3284a6fcf80SBram Moolenaar  call assert_equal(0, exists('a:non_exists_arg'))
3294a6fcf80SBram Moolenaar  call assert_equal(1, exists('a:1'))
3304a6fcf80SBram Moolenaar  call assert_equal(0, exists('a:2'))
3314a6fcf80SBram Moolenaarendfunc
3324a6fcf80SBram Moolenaar
3334a6fcf80SBram Moolenaarfunc Test_exists_funcarg()
3344a6fcf80SBram Moolenaar  call FuncArg_Tests("arg1", "arg2")
3354a6fcf80SBram Moolenaarendfunc
3360e05de46SBram Moolenaar
3370e05de46SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
338