1" Tests for user defined commands
2
3" Test for <mods> in user defined commands
4function Test_cmdmods()
5  let g:mods = ''
6
7  command! -nargs=* MyCmd let g:mods .= '<mods> '
8
9  MyCmd
10  aboveleft MyCmd
11  belowright MyCmd
12  botright MyCmd
13  browse MyCmd
14  confirm MyCmd
15  hide MyCmd
16  keepalt MyCmd
17  keepjumps MyCmd
18  keepmarks MyCmd
19  keeppatterns MyCmd
20  lockmarks MyCmd
21  noswapfile MyCmd
22  silent MyCmd
23  tab MyCmd
24  topleft MyCmd
25  verbose MyCmd
26  vertical MyCmd
27
28  aboveleft belowright botright browse confirm hide keepalt keepjumps
29	      \ keepmarks keeppatterns lockmarks noswapfile silent tab
30	      \ topleft verbose vertical MyCmd
31
32  call assert_equal(' aboveleft belowright botright browse confirm ' .
33      \ 'hide keepalt keepjumps keepmarks keeppatterns lockmarks ' .
34      \ 'noswapfile silent tab topleft verbose vertical aboveleft ' .
35      \ 'belowright botright browse confirm hide keepalt keepjumps ' .
36      \ 'keepmarks keeppatterns lockmarks noswapfile silent tab topleft ' .
37      \ 'verbose vertical ', g:mods)
38
39  let g:mods = ''
40  command! -nargs=* MyQCmd let g:mods .= '<q-mods> '
41
42  vertical MyQCmd
43  call assert_equal('"vertical" ', g:mods)
44
45  delcommand MyCmd
46  delcommand MyQCmd
47  unlet g:mods
48endfunction
49
50func Test_Ambiguous()
51  command Doit let g:didit = 'yes'
52  command Dothat let g:didthat = 'also'
53  call assert_fails('Do', 'E464:')
54  Doit
55  call assert_equal('yes', g:didit)
56  Dothat
57  call assert_equal('also', g:didthat)
58  unlet g:didit
59  unlet g:didthat
60
61  delcommand Doit
62  Do
63  call assert_equal('also', g:didthat)
64  delcommand Dothat
65endfunc
66
67func Test_CmdUndefined()
68  call assert_fails('Doit', 'E492:')
69  au CmdUndefined Doit :command Doit let g:didit = 'yes'
70  Doit
71  call assert_equal('yes', g:didit)
72  delcommand Doit
73
74  call assert_fails('Dothat', 'E492:')
75  au CmdUndefined * let g:didnot = 'yes'
76  call assert_fails('Dothat', 'E492:')
77  call assert_equal('yes', g:didnot)
78endfunc
79