aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/tabpage_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/api/tabpage_spec.lua')
-rw-r--r--test/functional/api/tabpage_spec.lua150
1 files changed, 104 insertions, 46 deletions
diff --git a/test/functional/api/tabpage_spec.lua b/test/functional/api/tabpage_spec.lua
index 20b3163d95..36955c4ace 100644
--- a/test/functional/api/tabpage_spec.lua
+++ b/test/functional/api/tabpage_spec.lua
@@ -1,11 +1,9 @@
local helpers = require('test.functional.helpers')(after_each)
-local clear, nvim, tabpage, curtab, eq, ok =
- helpers.clear, helpers.nvim, helpers.tabpage, helpers.curtab, helpers.eq,
- helpers.ok
-local curtabmeths = helpers.curtabmeths
-local funcs = helpers.funcs
+local clear, eq, ok = helpers.clear, helpers.eq, helpers.ok
+local api = helpers.api
+local fn = helpers.fn
local request = helpers.request
-local NIL = helpers.NIL
+local NIL = vim.NIL
local pcall_err = helpers.pcall_err
local command = helpers.command
@@ -14,48 +12,108 @@ describe('api/tabpage', function()
describe('list_wins and get_win', function()
it('works', function()
- nvim('command', 'tabnew')
- nvim('command', 'vsplit')
- local tab1, tab2 = unpack(nvim('list_tabpages'))
- local win1, win2, win3 = unpack(nvim('list_wins'))
- eq({win1}, tabpage('list_wins', tab1))
- eq({win2, win3}, tabpage('list_wins', tab2))
- eq(win2, tabpage('get_win', tab2))
- nvim('set_current_win', win3)
- eq(win3, tabpage('get_win', tab2))
+ command('tabnew')
+ command('vsplit')
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ local win1, win2, win3 = unpack(api.nvim_list_wins())
+ eq({ win1 }, api.nvim_tabpage_list_wins(tab1))
+ eq(win1, api.nvim_tabpage_get_win(tab1))
+ eq({ win2, win3 }, api.nvim_tabpage_list_wins(tab2))
+ eq(win2, api.nvim_tabpage_get_win(tab2))
+ api.nvim_set_current_win(win3)
+ eq(win3, api.nvim_tabpage_get_win(tab2))
+ command('tabprev')
+ eq(win1, api.nvim_tabpage_get_win(tab1))
+ eq(win3, api.nvim_tabpage_get_win(tab2))
end)
it('validates args', function()
- eq('Invalid tabpage id: 23', pcall_err(tabpage, 'list_wins', 23))
+ eq('Invalid tabpage id: 23', pcall_err(api.nvim_tabpage_list_wins, 23))
+ end)
+ end)
+
+ describe('set_win', function()
+ it('works', function()
+ command('tabnew')
+ command('vsplit')
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ local win1, win2, win3 = unpack(api.nvim_list_wins())
+ eq({ win1 }, api.nvim_tabpage_list_wins(tab1))
+ eq({ win2, win3 }, api.nvim_tabpage_list_wins(tab2))
+ eq(win2, api.nvim_tabpage_get_win(tab2))
+ api.nvim_tabpage_set_win(tab2, win3)
+ eq(win3, api.nvim_tabpage_get_win(tab2))
+ end)
+
+ it('works in non-current tabpages', function()
+ command('tabnew')
+ command('vsplit')
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ local win1, win2, win3 = unpack(api.nvim_list_wins())
+ eq({ win1 }, api.nvim_tabpage_list_wins(tab1))
+ eq({ win2, win3 }, api.nvim_tabpage_list_wins(tab2))
+ eq(win2, api.nvim_tabpage_get_win(tab2))
+ eq(win2, api.nvim_get_current_win())
+
+ command('tabprev')
+
+ eq(tab1, api.nvim_get_current_tabpage())
+
+ eq(win2, api.nvim_tabpage_get_win(tab2))
+ api.nvim_tabpage_set_win(tab2, win3)
+ eq(win3, api.nvim_tabpage_get_win(tab2))
+
+ command('tabnext')
+ eq(win3, api.nvim_get_current_win())
+ end)
+
+ it('throws an error when the window does not belong to the tabpage', function()
+ command('tabnew')
+ command('vsplit')
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ local win1, win2, win3 = unpack(api.nvim_list_wins())
+ eq({ win1 }, api.nvim_tabpage_list_wins(tab1))
+ eq({ win2, win3 }, api.nvim_tabpage_list_wins(tab2))
+ eq(win2, api.nvim_get_current_win())
+
+ eq(
+ string.format('Window does not belong to tabpage %d', tab2),
+ pcall_err(api.nvim_tabpage_set_win, tab2, win1)
+ )
+
+ eq(
+ string.format('Window does not belong to tabpage %d', tab1),
+ pcall_err(api.nvim_tabpage_set_win, tab1, win3)
+ )
end)
end)
describe('{get,set,del}_var', function()
it('works', function()
- curtab('set_var', 'lua', {1, 2, {['3'] = 1}})
- eq({1, 2, {['3'] = 1}}, curtab('get_var', 'lua'))
- eq({1, 2, {['3'] = 1}}, nvim('eval', 't:lua'))
- eq(1, funcs.exists('t:lua'))
- curtabmeths.del_var('lua')
- eq(0, funcs.exists('t:lua'))
- eq('Key not found: lua', pcall_err(curtabmeths.del_var, 'lua'))
- curtabmeths.set_var('lua', 1)
+ api.nvim_tabpage_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_tabpage_get_var(0, 'lua'))
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_eval('t:lua'))
+ eq(1, fn.exists('t:lua'))
+ api.nvim_tabpage_del_var(0, 'lua')
+ eq(0, fn.exists('t:lua'))
+ eq('Key not found: lua', pcall_err(api.nvim_tabpage_del_var, 0, 'lua'))
+ api.nvim_tabpage_set_var(0, 'lua', 1)
command('lockvar t:lua')
- eq('Key is locked: lua', pcall_err(curtabmeths.del_var, 'lua'))
- eq('Key is locked: lua', pcall_err(curtabmeths.set_var, 'lua', 1))
+ eq('Key is locked: lua', pcall_err(api.nvim_tabpage_del_var, 0, 'lua'))
+ eq('Key is locked: lua', pcall_err(api.nvim_tabpage_set_var, 0, 'lua', 1))
end)
it('tabpage_set_var returns the old value', function()
- local val1 = {1, 2, {['3'] = 1}}
- local val2 = {4, 7}
+ local val1 = { 1, 2, { ['3'] = 1 } }
+ local val2 = { 4, 7 }
eq(NIL, request('tabpage_set_var', 0, 'lua', val1))
eq(val1, request('tabpage_set_var', 0, 'lua', val2))
end)
it('tabpage_del_var returns the old value', function()
- local val1 = {1, 2, {['3'] = 1}}
- local val2 = {4, 7}
- eq(NIL, request('tabpage_set_var', 0, 'lua', val1))
+ local val1 = { 1, 2, { ['3'] = 1 } }
+ local val2 = { 4, 7 }
+ eq(NIL, request('tabpage_set_var', 0, 'lua', val1))
eq(val1, request('tabpage_set_var', 0, 'lua', val2))
eq(val2, request('tabpage_del_var', 0, 'lua'))
end)
@@ -63,28 +121,28 @@ describe('api/tabpage', function()
describe('get_number', function()
it('works', function()
- local tabs = nvim('list_tabpages')
- eq(1, tabpage('get_number', tabs[1]))
+ local tabs = api.nvim_list_tabpages()
+ eq(1, api.nvim_tabpage_get_number(tabs[1]))
- nvim('command', 'tabnew')
- local tab1, tab2 = unpack(nvim('list_tabpages'))
- eq(1, tabpage('get_number', tab1))
- eq(2, tabpage('get_number', tab2))
+ command('tabnew')
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ eq(1, api.nvim_tabpage_get_number(tab1))
+ eq(2, api.nvim_tabpage_get_number(tab2))
- nvim('command', '-tabmove')
- eq(2, tabpage('get_number', tab1))
- eq(1, tabpage('get_number', tab2))
+ command('-tabmove')
+ eq(2, api.nvim_tabpage_get_number(tab1))
+ eq(1, api.nvim_tabpage_get_number(tab2))
end)
end)
describe('is_valid', function()
it('works', function()
- nvim('command', 'tabnew')
- local tab = nvim('list_tabpages')[2]
- nvim('set_current_tabpage', tab)
- ok(tabpage('is_valid', tab))
- nvim('command', 'tabclose')
- ok(not tabpage('is_valid', tab))
+ command('tabnew')
+ local tab = api.nvim_list_tabpages()[2]
+ api.nvim_set_current_tabpage(tab)
+ ok(api.nvim_tabpage_is_valid(tab))
+ command('tabclose')
+ ok(not api.nvim_tabpage_is_valid(tab))
end)
end)
end)