blob: efbb982b041f7590d025d33ccacd0d0178ec0998 [file] [log] [blame]
Bram Moolenaar2d6c8002016-01-03 23:31:24 +01001" Test that the system menu can be loaded.
2
Bram Moolenaarb46fecd2019-06-15 17:58:09 +02003source check.vim
4CheckFeature menu
Bram Moolenaar11dd8c12017-03-04 20:41:34 +01005
Bram Moolenaar2d6c8002016-01-03 23:31:24 +01006func Test_load_menu()
7 try
8 source $VIMRUNTIME/menu.vim
9 catch
Bram Moolenaar37175402017-03-18 20:18:45 +010010 call assert_report('error while loading menus: ' . v:exception)
Bram Moolenaar2d6c8002016-01-03 23:31:24 +010011 endtry
Bram Moolenaara1c8ecf2017-03-04 21:41:05 +010012 call assert_match('browse confirm w', execute(':menu File.Save'))
Bram Moolenaar11dd8c12017-03-04 20:41:34 +010013 source $VIMRUNTIME/delmenu.vim
14endfunc
15
16func Test_translate_menu()
17 if !has('multi_lang')
18 return
19 endif
20 if !filereadable($VIMRUNTIME . '/lang/menu_de_de.latin1.vim')
21 throw 'Skipped: translated menu not found'
22 endif
23
Bram Moolenaara1c8ecf2017-03-04 21:41:05 +010024 " First delete any English menus.
25 source $VIMRUNTIME/delmenu.vim
Bram Moolenaar11dd8c12017-03-04 20:41:34 +010026 set langmenu=de_de
27 source $VIMRUNTIME/menu.vim
Bram Moolenaar5558d192017-03-04 21:02:22 +010028 call assert_match('browse confirm w', execute(':menu Datei.Speichern'))
Bram Moolenaar11dd8c12017-03-04 20:41:34 +010029
30 source $VIMRUNTIME/delmenu.vim
Bram Moolenaar2d6c8002016-01-03 23:31:24 +010031endfunc
Bram Moolenaar4c5d8152018-10-19 22:36:53 +020032
33func Test_menu_commands()
34 nmenu 2 Test.FooBar :let g:did_menu = 'normal'<CR>
35 vmenu 2 Test.FooBar :let g:did_menu = 'visual'<CR>
36 smenu 2 Test.FooBar :let g:did_menu = 'select'<CR>
37 omenu 2 Test.FooBar :let g:did_menu = 'op-pending'<CR>
38 tlmenu 2 Test.FooBar :let g:did_menu = 'terminal'<CR>
39 imenu 2 Test.FooBar :let g:did_menu = 'insert'<CR>
40 cmenu 2 Test.FooBar :let g:did_menu = 'cmdline'<CR>
41 emenu n Test.FooBar
42 call assert_equal('normal', g:did_menu)
43 emenu v Test.FooBar
44 call assert_equal('visual', g:did_menu)
45 emenu s Test.FooBar
46 call assert_equal('select', g:did_menu)
47 emenu o Test.FooBar
48 call assert_equal('op-pending', g:did_menu)
49 emenu t Test.FooBar
50 call assert_equal('terminal', g:did_menu)
51 emenu i Test.FooBar
52 call assert_equal('insert', g:did_menu)
53 emenu c Test.FooBar
54 call assert_equal('cmdline', g:did_menu)
55
Bram Moolenaarce793532019-05-05 14:19:20 +020056 nunmenu Test.FooBar
57 call assert_fails('emenu n Test.FooBar', 'E335: Menu not defined for Normal mode')
58 vunmenu Test.FooBar
59 call assert_fails('emenu v Test.FooBar', 'E335: Menu not defined for Visual mode')
60 vmenu 2 Test.FooBar :let g:did_menu = 'visual'<CR>
61 sunmenu Test.FooBar
62 call assert_fails('emenu s Test.FooBar', 'E335: Menu not defined for Select mode')
63 ounmenu Test.FooBar
64 call assert_fails('emenu o Test.FooBar', 'E335: Menu not defined for Op-pending mode')
65 iunmenu Test.FooBar
66 call assert_fails('emenu i Test.FooBar', 'E335: Menu not defined for Insert mode')
67 cunmenu Test.FooBar
68 call assert_fails('emenu c Test.FooBar', 'E335: Menu not defined for Cmdline mode')
Bram Moolenaar4c5d8152018-10-19 22:36:53 +020069 tlunmenu Test.FooBar
Bram Moolenaarce793532019-05-05 14:19:20 +020070 call assert_fails('emenu t Test.FooBar', 'E335: Menu not defined for Terminal mode')
71
72 aunmenu Test.FooBar
Bram Moolenaar4c5d8152018-10-19 22:36:53 +020073 call assert_fails('emenu n Test.FooBar', 'E334:')
74
75 nmenu 2 Test.FooBar.Child :let g:did_menu = 'foobar'<CR>
76 call assert_fails('emenu n Test.FooBar', 'E333:')
77 nunmenu Test.FooBar.Child
78
79 unlet g:did_menu
80endfun