From 1f6138702c5413bd870fb14e2237c5b42f061cd2 Mon Sep 17 00:00:00 2001 From: KillTheMule Date: Mon, 2 Oct 2017 14:55:25 +0200 Subject: [PATCH] More tests --- test/functional/ex_cmds/menu_spec.lua | 318 +++++++++++++++++++------- 1 file changed, 234 insertions(+), 84 deletions(-) diff --git a/test/functional/ex_cmds/menu_spec.lua b/test/functional/ex_cmds/menu_spec.lua index 5238752af4..2bc73d811b 100644 --- a/test/functional/ex_cmds/menu_spec.lua +++ b/test/functional/ex_cmds/menu_spec.lua @@ -379,6 +379,13 @@ describe('menu_get', function() } eq(expected, m) end) +end) + +describe('menu_get', function() + + before_each(function() + clear() + end) it('prettyprints special chars', function() clear() @@ -387,94 +394,237 @@ describe('menu_get', function() command('vnoremenu &Test.Test3 yA0xyz') command('inoremenu &Test.Test4 *') command('inoremenu &Test.Test5 +') - local m = funcs.menu_get("","a"); + command('nnoremenu &Test.Test6 ') + command('nnoremenu &Test.Test7 ') + command('nnoremenu &Test.Test8 ') + command('nnoremenu &Test.Test9 ""') + + local m = funcs.menu_get(""); local expected = { - { - shortcut = "T", - hidden = 0, - submenus = { - { - priority = 500, - mappings = { - n = { - sid = 1, - noremap = 1, - enabled = 1, - rhs = "inormal", - silent = 0 - } - }, - name = "Test", - hidden = 0 + { + shortcut = "T", + hidden = 0, + submenus = { + { + priority = 500, + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "inormal", + silent = 0 + } }, - { - priority = 500, - mappings = { - i = { - sid = 1, - noremap = 1, - enabled = 1, - rhs = "", - silent = 0 - } - }, - name = "Test2", - hidden = 0 - }, - { - priority = 500, - mappings = { - s = { - sid = 1, - noremap = 1, - enabled = 1, - rhs = "yA0xyz", - silent = 0 - }, - v = { - sid = 1, - noremap = 1, - enabled = 1, - rhs = "yA0xyz", - silent = 0 - } - }, - name = "Test3", - hidden = 0 - }, - { - priority = 500, - mappings = { - i = { - sid = 1, - noremap = 1, - enabled = 1, - rhs = "*", - silent = 0 - } - }, - name = "Test4", - hidden = 0 - }, - { - priority = 500, - mappings = { - i = { - sid = 1, - noremap = 1, - enabled = 1, - rhs = "+", - silent = 0 - } - }, - name = "Test5", - hidden = 0 - } + name = "Test", + hidden = 0 }, - priority = 500, - name = "Test" - } + { + priority = 500, + mappings = { + i = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "", + silent = 0 + } + }, + name = "Test2", + hidden = 0 + }, + { + priority = 500, + mappings = { + s = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "yA0xyz", + silent = 0 + }, + v = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "yA0xyz", + silent = 0 + } + }, + name = "Test3", + hidden = 0 + }, + { + priority = 500, + mappings = { + i = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "*", + silent = 0 + } + }, + name = "Test4", + hidden = 0 + }, + { + priority = 500, + mappings = { + i = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "+", + silent = 0 + } + }, + name = "Test5", + hidden = 0 + }, + { + priority = 500, + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "", + silent = 0 + } + }, + name = "Test6", + hidden = 0 + }, + { + priority = 500, + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "", + silent = 0 + } + }, + name = "Test7", + hidden = 0 + }, + { + priority = 500, + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "", + silent = 0 + } + }, + name = "Test8", + hidden = 0 + }, + { + priority = 500, + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "\"\"", + silent = 0 + } + }, + name = "Test9", + hidden = 0 + } + }, + priority = 500, + name = "Test" } + } + + eq(m, expected) + end) + + it('works with right-aligned text and spaces', function() + clear() + command('nnoremenu &TestY.TestX\\ x inormal') + command('nnoremenu &Test\\ 1.Test\\ 2 Wargl') + command('nnoremenu &Test4.Test3 i space') + + local m = funcs.menu_get(""); + local expected = { + { + shortcut = "T", + hidden = 0, + actext = "Y", + submenus = { + { + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "inormal", + silent = 0 + } + }, + hidden = 0, + actext = "X x", + priority = 500, + name = "Test" + } + }, + priority = 500, + name = "Test" + }, + { + shortcut = "T", + hidden = 0, + submenus = { + { + priority = 500, + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "Wargl", + silent = 0 + } + }, + name = "Test 2", + hidden = 0 + } + }, + priority = 500, + name = "Test 1" + }, + { + shortcut = "T", + hidden = 0, + submenus = { + { + mappings = { + n = { + sid = 1, + noremap = 1, + enabled = 1, + rhs = "i space", + silent = 0 + } + }, + hidden = 0, + actext = "3", + priority = 500, + name = "Test" + } + }, + priority = 500, + name = "Test4" + } + } eq(m, expected) end)