1" Test that the system menu can be loaded. 2 3if !has('menu') 4 finish 5endif 6 7func Test_load_menu() 8 try 9 source $VIMRUNTIME/menu.vim 10 catch 11 call assert_report('error while loading menus: ' . v:exception) 12 endtry 13 call assert_match('browse confirm w', execute(':menu File.Save')) 14 source $VIMRUNTIME/delmenu.vim 15endfunc 16 17func Test_translate_menu() 18 if !has('multi_lang') 19 return 20 endif 21 if !filereadable($VIMRUNTIME . '/lang/menu_de_de.latin1.vim') 22 throw 'Skipped: translated menu not found' 23 endif 24 25 " First delete any English menus. 26 source $VIMRUNTIME/delmenu.vim 27 set langmenu=de_de 28 source $VIMRUNTIME/menu.vim 29 call assert_match('browse confirm w', execute(':menu Datei.Speichern')) 30 31 source $VIMRUNTIME/delmenu.vim 32endfunc 33 34func Test_menu_commands() 35 nmenu 2 Test.FooBar :let g:did_menu = 'normal'<CR> 36 vmenu 2 Test.FooBar :let g:did_menu = 'visual'<CR> 37 smenu 2 Test.FooBar :let g:did_menu = 'select'<CR> 38 omenu 2 Test.FooBar :let g:did_menu = 'op-pending'<CR> 39 tlmenu 2 Test.FooBar :let g:did_menu = 'terminal'<CR> 40 imenu 2 Test.FooBar :let g:did_menu = 'insert'<CR> 41 cmenu 2 Test.FooBar :let g:did_menu = 'cmdline'<CR> 42 emenu n Test.FooBar 43 call assert_equal('normal', g:did_menu) 44 emenu v Test.FooBar 45 call assert_equal('visual', g:did_menu) 46 emenu s Test.FooBar 47 call assert_equal('select', g:did_menu) 48 emenu o Test.FooBar 49 call assert_equal('op-pending', g:did_menu) 50 emenu t Test.FooBar 51 call assert_equal('terminal', g:did_menu) 52 emenu i Test.FooBar 53 call assert_equal('insert', g:did_menu) 54 emenu c Test.FooBar 55 call assert_equal('cmdline', g:did_menu) 56 57 nunmenu Test.FooBar 58 call assert_fails('emenu n Test.FooBar', 'E335: Menu not defined for Normal mode') 59 vunmenu Test.FooBar 60 call assert_fails('emenu v Test.FooBar', 'E335: Menu not defined for Visual mode') 61 vmenu 2 Test.FooBar :let g:did_menu = 'visual'<CR> 62 sunmenu Test.FooBar 63 call assert_fails('emenu s Test.FooBar', 'E335: Menu not defined for Select mode') 64 ounmenu Test.FooBar 65 call assert_fails('emenu o Test.FooBar', 'E335: Menu not defined for Op-pending mode') 66 iunmenu Test.FooBar 67 call assert_fails('emenu i Test.FooBar', 'E335: Menu not defined for Insert mode') 68 cunmenu Test.FooBar 69 call assert_fails('emenu c Test.FooBar', 'E335: Menu not defined for Cmdline mode') 70 tlunmenu Test.FooBar 71 call assert_fails('emenu t Test.FooBar', 'E335: Menu not defined for Terminal mode') 72 73 aunmenu Test.FooBar 74 call assert_fails('emenu n Test.FooBar', 'E334:') 75 76 nmenu 2 Test.FooBar.Child :let g:did_menu = 'foobar'<CR> 77 call assert_fails('emenu n Test.FooBar', 'E333:') 78 nunmenu Test.FooBar.Child 79 80 unlet g:did_menu 81endfun 82