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