aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/api/autocmd_spec.lua17
-rw-r--r--test/functional/api/keymap_spec.lua160
-rw-r--r--test/functional/lua/base64_spec.lua1
-rw-r--r--test/functional/ui/messages_spec.lua29
-rw-r--r--test/functional/vimscript/map_functions_spec.lua13
5 files changed, 159 insertions, 61 deletions
diff --git a/test/functional/api/autocmd_spec.lua b/test/functional/api/autocmd_spec.lua
index 31276c7566..e5412a8e99 100644
--- a/test/functional/api/autocmd_spec.lua
+++ b/test/functional/api/autocmd_spec.lua
@@ -610,15 +610,17 @@ describe('autocmd api', function()
it('can retrieve a callback from an autocmd', function()
local content = 'I Am A Callback'
api.nvim_set_var('content', content)
-
- local result = exec_lua([[
+ exec_lua([[
local cb = function() return vim.g.content end
vim.api.nvim_create_autocmd("User", {
pattern = "TestTrigger",
desc = "A test autocommand with a callback",
callback = cb,
})
- local aus = vim.api.nvim_get_autocmds({ event = 'User', pattern = 'TestTrigger'})
+ ]])
+
+ local result = exec_lua([[
+ local aus = vim.api.nvim_get_autocmds({ event = 'User', pattern = 'TestTrigger' })
local first = aus[1]
return {
cb = {
@@ -627,9 +629,14 @@ describe('autocmd api', function()
}
}
]])
+ eq({ cb = { type = 'function', can_retrieve = true } }, result)
- eq('function', result.cb.type)
- eq(true, result.cb.can_retrieve)
+ -- Also test with Vimscript
+ source([[
+ let s:aus = nvim_get_autocmds({'event': 'User', 'pattern': 'TestTrigger'})
+ let g:result = s:aus[0].callback()
+ ]])
+ eq(content, api.nvim_get_var('result'))
end)
it(
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
index 2b889fa012..f0ed04e88e 100644
--- a/test/functional/api/keymap_spec.lua
+++ b/test/functional/api/keymap_spec.lua
@@ -8,6 +8,7 @@ local exec = t.exec
local feed = t.feed
local fn = t.fn
local api = t.api
+local matches = t.matches
local source = t.source
local pcall_err = t.pcall_err
@@ -398,7 +399,9 @@ describe('nvim_get_keymap', function()
0,
exec_lua([[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]])
)
@@ -951,7 +954,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -963,34 +968,38 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it(':map command shows lua mapping correctly', function()
exec_lua [[
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() print('jkl;') end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() print('jkl;') end,
+ })
]]
- assert.truthy(
- string.match(
- exec_lua [[return vim.api.nvim_exec2(':nmap asdf', { output = true }).output]],
- '^\nn asdf <Lua %d+>'
- )
+ matches(
+ '^\nn asdf <Lua %d+>',
+ exec_lua [[return vim.api.nvim_exec2(':nmap asdf', { output = true }).output]]
)
end)
it('mapcheck() returns lua mapping correctly', function()
exec_lua [[
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() print('jkl;') end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() print('jkl;') end,
+ })
]]
- assert.truthy(string.match(fn.mapcheck('asdf', 'n'), '^<Lua %d+>'))
+ matches('^<Lua %d+>', fn.mapcheck('asdf', 'n'))
end)
- it('maparg() returns lua mapping correctly', function()
+ it('maparg() and maplist() return lua mapping correctly', function()
eq(
0,
exec_lua([[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]])
)
- assert.truthy(string.match(fn.maparg('asdf', 'n'), '^<Lua %d+>'))
+ matches('^<Lua %d+>', fn.maparg('asdf', 'n'))
local mapargs = fn.maparg('asdf', 'n', false, true)
mapargs.callback = nil
@@ -1010,11 +1019,20 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
call maparg('asdf', 'n', v:false, v:true).callback()
]])
eq(2, exec_lua([[return GlobalCount]]))
+
+ api.nvim_eval([[
+ maplist()->filter({_, m -> m.lhs == 'asdf'})->foreach({_, m -> m.callback()})
+ ]])
+ eq(3, exec_lua([[return GlobalCount]]))
end)
it('can make lua expr mappings replacing keycodes', function()
exec_lua [[
- vim.api.nvim_set_keymap('n', 'aa', '', {callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end, expr = true, replace_keycodes = true })
+ vim.api.nvim_set_keymap('n', 'aa', '', {
+ callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end,
+ expr = true,
+ replace_keycodes = true,
+ })
]]
feed('aa')
@@ -1024,7 +1042,10 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('can make lua expr mappings without replacing keycodes', function()
exec_lua [[
- vim.api.nvim_set_keymap('i', 'aa', '', {callback = function() return '<space>' end, expr = true })
+ vim.api.nvim_set_keymap('i', 'aa', '', {
+ callback = function() return '<space>' end,
+ expr = true,
+ })
]]
feed('iaa<esc>')
@@ -1034,7 +1055,10 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('lua expr mapping returning nil is equivalent to returning an empty string', function()
exec_lua [[
- vim.api.nvim_set_keymap('i', 'aa', '', {callback = function() return nil end, expr = true })
+ vim.api.nvim_set_keymap('i', 'aa', '', {
+ callback = function() return nil end,
+ expr = true,
+ })
]]
feed('iaa<esc>')
@@ -1047,7 +1071,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
0,
exec_lua [[
VisibleCount = 0
- vim.api.nvim_set_keymap('i', '<F2>', '', {callback = function() VisibleCount = VisibleCount + vim.fn.pumvisible() end})
+ vim.api.nvim_set_keymap('i', '<F2>', '', {
+ callback = function() VisibleCount = VisibleCount + vim.fn.pumvisible() end,
+ })
return VisibleCount
]]
)
@@ -1060,7 +1086,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
0,
exec_lua [[
OpCount = 0
- vim.api.nvim_set_keymap('o', '<F2>', '', {callback = function() OpCount = OpCount + 1 end})
+ vim.api.nvim_set_keymap('o', '<F2>', '', {
+ callback = function() OpCount = OpCount + 1 end,
+ })
return OpCount
]]
)
@@ -1075,7 +1103,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1085,7 +1115,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
eq(1, exec_lua [[return GlobalCount]])
exec_lua [[
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount - 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount - 1 end,
+ })
]]
feed('asdf\n')
@@ -1098,7 +1130,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1107,9 +1141,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
eq(1, exec_lua [[return GlobalCount]])
- exec_lua [[
- vim.api.nvim_del_keymap('n', 'asdf' )
- ]]
+ exec_lua [[vim.api.nvim_del_keymap('n', 'asdf' )]]
feed('asdf\n')
@@ -1122,7 +1154,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', '<C-I>', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', '<C-I>', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1131,9 +1165,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
eq(1, exec_lua [[return GlobalCount]])
- exec_lua [[
- vim.api.nvim_del_keymap('n', '<C-I>')
- ]]
+ exec_lua [[vim.api.nvim_del_keymap('n', '<C-I>')]]
feed('<C-I>\n')
@@ -1150,10 +1182,13 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('can define !-mode abbreviations with lua callbacks', function()
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('!a', 'foo', '', {expr = true, callback = function()
- GlobalCount = GlobalCount + 1
- return tostring(GlobalCount)
- end})
+ vim.api.nvim_set_keymap('!a', 'foo', '', {
+ expr = true,
+ callback = function()
+ GlobalCount = GlobalCount + 1
+ return tostring(GlobalCount)
+ end,
+ })
]]
feed 'iThe foo and the bar and the foo again<esc>'
@@ -1166,10 +1201,13 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('can define insert mode abbreviations with lua callbacks', function()
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('ia', 'foo', '', {expr = true, callback = function()
- GlobalCount = GlobalCount + 1
- return tostring(GlobalCount)
- end})
+ vim.api.nvim_set_keymap('ia', 'foo', '', {
+ expr = true,
+ callback = function()
+ GlobalCount = GlobalCount + 1
+ return tostring(GlobalCount)
+ end,
+ })
]]
feed 'iThe foo and the bar and the foo again<esc>'
@@ -1182,10 +1220,13 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('can define cmdline mode abbreviations with lua callbacks', function()
exec_lua [[
GlobalCount = 0
- vim.api.nvim_set_keymap('ca', 'foo', '', {expr = true, callback = function()
- GlobalCount = GlobalCount + 1
- return tostring(GlobalCount)
- end})
+ vim.api.nvim_set_keymap('ca', 'foo', '', {
+ expr = true,
+ callback = function()
+ GlobalCount = GlobalCount + 1
+ return tostring(GlobalCount)
+ end,
+ })
]]
feed 'iThe foo and the bar and the foo again<esc>'
@@ -1298,7 +1339,9 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1310,7 +1353,11 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
it('can make lua expr mappings replacing keycodes', function()
exec_lua [[
- vim.api.nvim_buf_set_keymap(0, 'n', 'aa', '', {callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end, expr = true, replace_keycodes = true })
+ vim.api.nvim_buf_set_keymap(0, 'n', 'aa', '', {
+ callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end,
+ expr = true,
+ replace_keycodes = true,
+ })
]]
feed('aa')
@@ -1320,7 +1367,10 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
it('can make lua expr mappings without replacing keycodes', function()
exec_lua [[
- vim.api.nvim_buf_set_keymap(0, 'i', 'aa', '', {callback = function() return '<space>' end, expr = true })
+ vim.api.nvim_buf_set_keymap(0, 'i', 'aa', '', {
+ callback = function() return '<space>' end,
+ expr = true,
+ })
]]
feed('iaa<esc>')
@@ -1333,7 +1383,9 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1343,7 +1395,9 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
eq(1, exec_lua [[return GlobalCount]])
exec_lua [[
- vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount - 1 end })
+ vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount - 1 end,
+ })
]]
feed('asdf\n')
@@ -1356,7 +1410,9 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1365,9 +1421,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
eq(1, exec_lua [[return GlobalCount]])
- exec_lua [[
- vim.api.nvim_buf_del_keymap(0, 'n', 'asdf' )
- ]]
+ exec_lua [[vim.api.nvim_buf_del_keymap(0, 'n', 'asdf' )]]
feed('asdf\n')
@@ -1380,7 +1434,9 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
0,
exec_lua [[
GlobalCount = 0
- vim.api.nvim_buf_set_keymap(0, 'n', '<C-I>', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_buf_set_keymap(0, 'n', '<C-I>', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]]
)
@@ -1389,9 +1445,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
eq(1, exec_lua [[return GlobalCount]])
- exec_lua [[
- vim.api.nvim_buf_del_keymap(0, 'n', '<C-I>')
- ]]
+ exec_lua [[vim.api.nvim_buf_del_keymap(0, 'n', '<C-I>')]]
feed('<C-I>\n')
diff --git a/test/functional/lua/base64_spec.lua b/test/functional/lua/base64_spec.lua
index bb986c3220..c7fbe2ad23 100644
--- a/test/functional/lua/base64_spec.lua
+++ b/test/functional/lua/base64_spec.lua
@@ -42,6 +42,7 @@ describe('vim.base64', function()
̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕
Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮
]],
+ 'Hello\0world',
}
for _, v in ipairs(values) do
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua
index 867d487183..e4daf3b546 100644
--- a/test/functional/ui/messages_spec.lua
+++ b/test/functional/ui/messages_spec.lua
@@ -1536,6 +1536,35 @@ vimComment xxx match /\s"[^\-:.%#=*].*$/ms=s+1,lc=1 excludenl contains=@vim
|*4
]])
end)
+
+ it('supports :intro with cmdheight=0 #26505', function()
+ screen:try_resize(80, 24)
+ command('set cmdheight=0')
+ feed(':intro<CR>')
+ screen:expect([[
+ |*5
+ {MATCH:.*}|
+ |
+ Nvim is open source and freely distributable |
+ https://neovim.io/#chat |
+ |
+ type :help nvim{18:<Enter>} if you are new! |
+ type :checkhealth{18:<Enter>} to optimize Nvim |
+ type :q{18:<Enter>} to exit |
+ type :help{18:<Enter>} for help |
+ |
+ {MATCH: +}type :help news{18:<Enter>} to see changes in v{MATCH:%d+%.%d+ +}|
+ |
+ Help poor children in Uganda! |
+ type :help iccf{18:<Enter>} for information |
+ |*2
+ {3: }|
+ |
+ {6:Press ENTER or type command to continue}^ |
+ ]])
+ feed('<CR>')
+ assert_alive()
+ end)
end)
it('calling screenstring() after redrawing between messages without UI #20999', function()
diff --git a/test/functional/vimscript/map_functions_spec.lua b/test/functional/vimscript/map_functions_spec.lua
index 7bf835102c..249b79aa4e 100644
--- a/test/functional/vimscript/map_functions_spec.lua
+++ b/test/functional/vimscript/map_functions_spec.lua
@@ -233,7 +233,9 @@ describe('mapset()', function()
0,
exec_lua([[
GlobalCount = 0
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 1 end,
+ })
return GlobalCount
]])
)
@@ -242,7 +244,9 @@ describe('mapset()', function()
exec_lua([[
_G.saved_asdf_map = vim.fn.maparg('asdf', 'n', false, true)
- vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 10 end })
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 10 end,
+ })
]])
feed('asdf')
eq(11, exec_lua([[return GlobalCount]]))
@@ -253,7 +257,10 @@ describe('mapset()', function()
exec([[
let g:saved_asdf_map = maparg('asdf', 'n', v:false, v:true)
- lua vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 10 end })
+ lua <<
+ vim.api.nvim_set_keymap('n', 'asdf', '', {
+ callback = function() GlobalCount = GlobalCount + 10 end,
+ })
]])
feed('asdf')
eq(22, exec_lua([[return GlobalCount]]))