aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/options_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/options_spec.lua')
-rw-r--r--test/functional/ui/options_spec.lua141
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)