Mercurial > vim
annotate src/testdir/test_menu.vim @ 18957:305a7a8d9d4b v8.2.0039
patch 8.2.0039: memory access error when "z=" has no suggestions
Commit: https://github.com/vim/vim/commit/569fea2c312126dd5a542c4b1aa51095136a2c0d
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Dec 25 13:55:24 2019 +0100
patch 8.2.0039: memory access error when "z=" has no suggestions
Problem: Memory access error when "z=" has no suggestions.
Solution: Check for negative index.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 25 Dec 2019 14:00:04 +0100 |
parents | ec92ccff5c8b |
children | 5bef1043abff |
rev | line source |
---|---|
7488
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Test that the system menu can be loaded. |
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
17089
8e9e9124c7a2
patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents:
17049
diff
changeset
|
3 source check.vim |
8e9e9124c7a2
patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents:
17049
diff
changeset
|
4 CheckFeature menu |
11044
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
5 |
7488
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 func Test_load_menu() |
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 try |
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 source $VIMRUNTIME/menu.vim |
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 catch |
11183
1c4ebbae41d2
patch 8.0.0478: tests use assert_true(0) and assert_false(1) to report errors
Christian Brabandt <cb@256bit.org>
parents:
11048
diff
changeset
|
10 call assert_report('error while loading menus: ' . v:exception) |
7488
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 endtry |
11048
860d023f0fc8
patch 8.0.0413: menu test fails on MS-Windows using gvim
Christian Brabandt <cb@256bit.org>
parents:
11046
diff
changeset
|
12 call assert_match('browse confirm w', execute(':menu File.Save')) |
18860
ec92ccff5c8b
patch 8.1.2416: loading menus sets v:errmsg
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
13 |
ec92ccff5c8b
patch 8.1.2416: loading menus sets v:errmsg
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
14 let v:errmsg = '' |
ec92ccff5c8b
patch 8.1.2416: loading menus sets v:errmsg
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
15 doautocmd LoadBufferMenu VimEnter |
ec92ccff5c8b
patch 8.1.2416: loading menus sets v:errmsg
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
16 call assert_equal('', v:errmsg) |
ec92ccff5c8b
patch 8.1.2416: loading menus sets v:errmsg
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
17 |
11044
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
18 source $VIMRUNTIME/delmenu.vim |
18860
ec92ccff5c8b
patch 8.1.2416: loading menus sets v:errmsg
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
19 call assert_equal('', v:errmsg) |
7488
6f14d7da2d8a
commit https://github.com/vim/vim/commit/2d6c8002729821acc54a4de41d5c5f3d50594973
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 endfunc |
11044
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
21 |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
22 func Test_translate_menu() |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
23 if !has('multi_lang') |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
24 return |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
25 endif |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
26 if !filereadable($VIMRUNTIME . '/lang/menu_de_de.latin1.vim') |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
27 throw 'Skipped: translated menu not found' |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
28 endif |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
29 |
11048
860d023f0fc8
patch 8.0.0413: menu test fails on MS-Windows using gvim
Christian Brabandt <cb@256bit.org>
parents:
11046
diff
changeset
|
30 " First delete any English menus. |
860d023f0fc8
patch 8.0.0413: menu test fails on MS-Windows using gvim
Christian Brabandt <cb@256bit.org>
parents:
11046
diff
changeset
|
31 source $VIMRUNTIME/delmenu.vim |
11044
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
32 set langmenu=de_de |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
33 source $VIMRUNTIME/menu.vim |
11046
d48f4eeb91ec
patch 8.0.0412: menu test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11044
diff
changeset
|
34 call assert_match('browse confirm w', execute(':menu Datei.Speichern')) |
11044
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
35 |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
36 source $VIMRUNTIME/delmenu.vim |
eb3a2ff3309a
patch 8.0.0411: menu translations don't match when case is changed.
Christian Brabandt <cb@256bit.org>
parents:
7488
diff
changeset
|
37 endfunc |
14952
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
38 |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
39 func Test_menu_commands() |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
40 nmenu 2 Test.FooBar :let g:did_menu = 'normal'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
41 vmenu 2 Test.FooBar :let g:did_menu = 'visual'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
42 smenu 2 Test.FooBar :let g:did_menu = 'select'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
43 omenu 2 Test.FooBar :let g:did_menu = 'op-pending'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
44 tlmenu 2 Test.FooBar :let g:did_menu = 'terminal'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
45 imenu 2 Test.FooBar :let g:did_menu = 'insert'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
46 cmenu 2 Test.FooBar :let g:did_menu = 'cmdline'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
47 emenu n Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
48 call assert_equal('normal', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
49 emenu v Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
50 call assert_equal('visual', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
51 emenu s Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
52 call assert_equal('select', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
53 emenu o Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
54 call assert_equal('op-pending', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
55 emenu t Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
56 call assert_equal('terminal', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
57 emenu i Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
58 call assert_equal('insert', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
59 emenu c Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
60 call assert_equal('cmdline', g:did_menu) |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
61 |
16541
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
62 nunmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
63 call assert_fails('emenu n Test.FooBar', 'E335: Menu not defined for Normal mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
64 vunmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
65 call assert_fails('emenu v Test.FooBar', 'E335: Menu not defined for Visual mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
66 vmenu 2 Test.FooBar :let g:did_menu = 'visual'<CR> |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
67 sunmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
68 call assert_fails('emenu s Test.FooBar', 'E335: Menu not defined for Select mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
69 ounmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
70 call assert_fails('emenu o Test.FooBar', 'E335: Menu not defined for Op-pending mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
71 iunmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
72 call assert_fails('emenu i Test.FooBar', 'E335: Menu not defined for Insert mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
73 cunmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
74 call assert_fails('emenu c Test.FooBar', 'E335: Menu not defined for Cmdline mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
75 tlunmenu Test.FooBar |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
76 call assert_fails('emenu t Test.FooBar', 'E335: Menu not defined for Terminal mode') |
822d00007b34
patch 8.1.1274: after :unmenu can still execute the menu with :emenu
Bram Moolenaar <Bram@vim.org>
parents:
14952
diff
changeset
|
77 |
14952
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
78 aunmenu Test.FooBar |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
79 call assert_fails('emenu n Test.FooBar', 'E334:') |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
80 |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
81 nmenu 2 Test.FooBar.Child :let g:did_menu = 'foobar'<CR> |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
82 call assert_fails('emenu n Test.FooBar', 'E333:') |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
83 nunmenu Test.FooBar.Child |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
84 |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
85 unlet g:did_menu |
405309f9dd13
patch 8.1.0487: no menus specifically for the terminal window
Bram Moolenaar <Bram@vim.org>
parents:
11183
diff
changeset
|
86 endfun |