diff options
Diffstat (limited to 'test/functional/ui/options_spec.lua')
-rw-r--r-- | test/functional/ui/options_spec.lua | 141 |
1 files changed, 75 insertions, 66 deletions
diff --git a/test/functional/ui/options_spec.lua b/test/functional/ui/options_spec.lua index 2c649709c6..98af82a7c5 100644 --- a/test/functional/ui/options_spec.lua +++ b/test/functional/ui/options_spec.lua @@ -9,45 +9,48 @@ local eval = helpers.eval describe('UI receives option updates', function() local screen - local function reset(opts, ...) + local function reset(screen_opts, clear_opts) local defaults = { - ambiwidth='single', - arabicshape=true, - emoji=true, - guifont='', - guifontwide='', - linespace=0, - pumblend=0, - mousefocus=false, - mousehide=true, - mousemoveevent=false, - showtabline=1, - termguicolors=false, - termsync=true, - ttimeout=true, - ttimeoutlen=50, - verbose=0, - ext_cmdline=false, - ext_popupmenu=false, - ext_tabline=false, - ext_wildmenu=false, - ext_linegrid=false, - ext_hlstate=false, - ext_multigrid=false, - ext_messages=false, - ext_termcolors=false, + ambiwidth = 'single', + arabicshape = true, + emoji = true, + guifont = '', + guifontwide = '', + linespace = 0, + pumblend = 0, + mousefocus = false, + mousehide = true, + mousemoveevent = false, + showtabline = 1, + termguicolors = false, + termsync = true, + ttimeout = true, + ttimeoutlen = 50, + verbose = 0, + ext_cmdline = false, + ext_popupmenu = false, + ext_tabline = false, + ext_wildmenu = false, + ext_linegrid = false, + ext_hlstate = false, + ext_multigrid = false, + ext_messages = false, + ext_termcolors = false, } - clear(...) - screen = Screen.new(20,5) - screen:attach(opts) + clear_opts = shallowcopy(clear_opts or {}) + clear_opts.args_rm = clear_opts.args_rm or {} + table.insert(clear_opts.args_rm or {}, '--cmd') + clear(clear_opts) + screen = Screen.new(20, 5) + screen:attach(screen_opts) -- NB: UI test suite can be run in both "linegrid" and legacy grid mode. -- In both cases check that the received value is the one requested. defaults.ext_linegrid = screen._options.ext_linegrid or false return defaults end - it("for defaults", function() + it('for defaults', function() local expected = reset() screen:expect(function() eq(expected, screen.options) @@ -55,9 +58,9 @@ describe('UI receives option updates', function() end) it('on attach #11372', function() - clear{args_rm={'--headless'}} + clear { args_rm = { '--headless' } } local evs = {} - screen = Screen.new(20,5) + screen = Screen.new(20, 5) -- Override mouse_on/mouse_off handlers. function screen:_handle_mouse_on() table.insert(evs, 'mouse_on') @@ -67,109 +70,109 @@ describe('UI receives option updates', function() end screen:attach() screen:expect(function() - eq({'mouse_on'}, evs) + eq({ 'mouse_on' }, evs) end) - command("set mouse=") + command('set mouse=') screen:expect(function() - eq({'mouse_on', 'mouse_off'}, evs) + eq({ 'mouse_on', 'mouse_off' }, evs) end) - command("set mouse&") + command('set mouse&') screen:expect(function() - eq({'mouse_on', 'mouse_off', 'mouse_on'}, evs) + eq({ 'mouse_on', 'mouse_off', 'mouse_on' }, evs) end) screen:detach() - eq({'mouse_on', 'mouse_off', 'mouse_on'}, evs) + eq({ 'mouse_on', 'mouse_off', 'mouse_on' }, evs) screen:attach() screen:expect(function() - eq({'mouse_on', 'mouse_off', 'mouse_on', 'mouse_on'}, evs) + eq({ 'mouse_on', 'mouse_off', 'mouse_on', 'mouse_on' }, evs) end) end) - it("when setting options", function() + it('when setting options', function() local expected = reset() local defaults = shallowcopy(expected) - command("set termguicolors") + command('set termguicolors') expected.termguicolors = true screen:expect(function() eq(expected, screen.options) end) - command("set pumblend=50") + command('set pumblend=50') expected.pumblend = 50 screen:expect(function() - eq(expected, screen.options) + eq(expected, screen.options) end) -- check handling of out-of-bounds value - command("set pumblend=-1") + command('set pumblend=-1') expected.pumblend = 0 screen:expect(function() - eq(expected, screen.options) + eq(expected, screen.options) end) - command("set guifont=Comic\\ Sans") - expected.guifont = "Comic Sans" + command('set guifont=Comic\\ Sans') + expected.guifont = 'Comic Sans' screen:expect(function() eq(expected, screen.options) end) - command("set showtabline=0") + command('set showtabline=0') expected.showtabline = 0 screen:expect(function() eq(expected, screen.options) end) - command("set linespace=13") + command('set linespace=13') expected.linespace = 13 screen:expect(function() eq(expected, screen.options) end) - command("set linespace=-11") + command('set linespace=-11') expected.linespace = -11 screen:expect(function() eq(expected, screen.options) end) - command("set mousefocus") + command('set mousefocus') expected.mousefocus = true screen:expect(function() eq(expected, screen.options) end) - command("set nomousehide") + command('set nomousehide') expected.mousehide = false screen:expect(function() eq(expected, screen.options) end) - command("set mousemoveevent") + command('set mousemoveevent') expected.mousemoveevent = true screen:expect(function() eq(expected, screen.options) end) - command("set nottimeout") + command('set nottimeout') expected.ttimeout = false screen:expect(function() eq(expected, screen.options) end) - command("set ttimeoutlen=100") + command('set ttimeoutlen=100') expected.ttimeoutlen = 100 screen:expect(function() eq(expected, screen.options) end) - command("set all&") + command('set all&') screen:expect(function() eq(defaults, screen.options) end) end) it('with UI extensions', function() - local expected = reset({ext_cmdline=true, ext_wildmenu=true}) + local expected = reset({ ext_cmdline = true, ext_wildmenu = true }) expected.ext_cmdline = true expected.ext_wildmenu = true @@ -191,37 +194,43 @@ describe('UI receives option updates', function() end) local function startup_test(headless) - local expected = reset(nil, {args_rm=(headless and {} or {'--headless'}), - args={'--cmd', 'set guifont=Comic\\ Sans\\ 12'}}) - expected.guifont = "Comic Sans 12" + local expected = reset(nil, { + args_rm = (headless and {} or { '--headless' }), + args = { '--cmd', 'set guifont=Comic\\ Sans\\ 12' }, + }) + expected.guifont = 'Comic Sans 12' screen:expect(function() eq(expected, screen.options) end) end - it('from startup options with --headless', function() startup_test(true) end) - it('from startup options with --embed', function() startup_test(false) end) + it('from startup options with --headless', function() + startup_test(true) + end) + it('from startup options with --embed', function() + startup_test(false) + end) end) describe('UI can set terminal option', function() local screen before_each(function() -- by default we implicitly "--cmd 'set bg=light'" which ruins everything - clear{args_rm={'--cmd'}} - screen = Screen.new(20,5) + clear { args_rm = { '--cmd' } } + screen = Screen.new(20, 5) end) it('term_name', function() eq('nvim', eval '&term') - screen:attach {term_name='xterm'} + screen:attach { term_name = 'xterm' } eq('xterm', eval '&term') end) it('term_colors', function() eq('256', eval '&t_Co') - screen:attach {term_colors=8} + screen:attach { term_colors = 8 } eq('8', eval '&t_Co') end) end) |