xref: /vim-8.2.3635/src/testdir/test_menu.vim (revision 5d684456)
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  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
24  " First delete any English menus.
25  source $VIMRUNTIME/delmenu.vim
26  set langmenu=de_de
27  source $VIMRUNTIME/menu.vim
28  call assert_match('browse confirm w', execute(':menu Datei.Speichern'))
29
30  source $VIMRUNTIME/delmenu.vim
31endfunc
32
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
56  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')
69  tlunmenu Test.FooBar
70  call assert_fails('emenu t Test.FooBar', 'E335: Menu not defined for Terminal mode')
71
72  aunmenu Test.FooBar
73  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
81