blob: 1f92adab7363f78e2c5c4e3429385be807a4fd1a [file] [log] [blame]
Bram Moolenaar63a60de2016-06-04 22:08:55 +02001" 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
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020011 abo MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020012 belowright MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020013 bel MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020014 botright MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020015 bo MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020016 browse MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020017 bro MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020018 confirm MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020019 conf MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020020 hide MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020021 hid MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020022 keepalt MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020023 keepa MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020024 keepjumps MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020025 keepj MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020026 keepmarks MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020027 kee MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020028 keeppatterns MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020029 keepp MyCmd
30 leftabove MyCmd " results in :aboveleft
31 lefta MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020032 lockmarks MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020033 loc MyCmd
34 " noautocmd MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020035 noswapfile MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020036 nos MyCmd
37 rightbelow MyCmd " results in :belowright
38 rightb MyCmd
39 " sandbox MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020040 silent MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020041 sil MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020042 tab MyCmd
43 topleft MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020044 to MyCmd
45 " unsilent MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020046 verbose MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020047 verb MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020048 vertical MyCmd
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020049 vert MyCmd
Bram Moolenaar63a60de2016-06-04 22:08:55 +020050
51 aboveleft belowright botright browse confirm hide keepalt keepjumps
52 \ keepmarks keeppatterns lockmarks noswapfile silent tab
53 \ topleft verbose vertical MyCmd
54
Bram Moolenaar3bcfca32016-07-30 19:39:29 +020055 call assert_equal(' aboveleft aboveleft belowright belowright botright ' .
56 \ 'botright browse browse confirm confirm hide hide ' .
57 \ 'keepalt keepalt keepjumps keepjumps keepmarks keepmarks ' .
58 \ 'keeppatterns keeppatterns aboveleft aboveleft lockmarks lockmarks noswapfile ' .
59 \ 'noswapfile belowright belowright silent silent tab topleft topleft verbose verbose ' .
60 \ 'vertical vertical ' .
61 \ 'aboveleft belowright botright browse confirm hide keepalt keepjumps ' .
Bram Moolenaar63a60de2016-06-04 22:08:55 +020062 \ 'keepmarks keeppatterns lockmarks noswapfile silent tab topleft ' .
63 \ 'verbose vertical ', g:mods)
64
65 let g:mods = ''
66 command! -nargs=* MyQCmd let g:mods .= '<q-mods> '
67
68 vertical MyQCmd
69 call assert_equal('"vertical" ', g:mods)
70
71 delcommand MyCmd
72 delcommand MyQCmd
73 unlet g:mods
74endfunction
Bram Moolenaareac784e2016-07-28 22:08:24 +020075
76func Test_Ambiguous()
77 command Doit let g:didit = 'yes'
78 command Dothat let g:didthat = 'also'
79 call assert_fails('Do', 'E464:')
80 Doit
81 call assert_equal('yes', g:didit)
82 Dothat
83 call assert_equal('also', g:didthat)
84 unlet g:didit
85 unlet g:didthat
86
87 delcommand Doit
88 Do
89 call assert_equal('also', g:didthat)
90 delcommand Dothat
91endfunc
92
93func Test_CmdUndefined()
94 call assert_fails('Doit', 'E492:')
95 au CmdUndefined Doit :command Doit let g:didit = 'yes'
96 Doit
97 call assert_equal('yes', g:didit)
98 delcommand Doit
99
100 call assert_fails('Dothat', 'E492:')
101 au CmdUndefined * let g:didnot = 'yes'
102 call assert_fails('Dothat', 'E492:')
103 call assert_equal('yes', g:didnot)
104endfunc