ui: use Window type in win_pos consistently with win_float_pos

Also check invalid positional arguments to screen:expect()
This commit is contained in:
Björn Linse 2019-08-17 20:52:08 +02:00
parent e2ccf47b5e
commit 3397b8c51a
3 changed files with 19 additions and 18 deletions

View File

@ -100,7 +100,7 @@ void raw_line(Integer grid, Integer row, Integer startcol,
void event(char *name, Array args, bool *args_consumed)
FUNC_API_NOEXPORT;
void win_pos(Integer grid, Integer win, Integer startrow,
void win_pos(Integer grid, Window win, Integer startrow,
Integer startcol, Integer width, Integer height)
FUNC_API_SINCE(6) FUNC_API_REMOTE_ONLY;
void win_float_pos(Integer grid, Window win, String anchor, Integer anchor_grid,

View File

@ -76,7 +76,7 @@ describe('ext_multigrid', function()
it('positions windows correctly', function()
command('vsplit')
screen:expect([[
screen:expect{grid=[[
## grid 1
[3:--------------------------]{12:│}[2:--------------------------]|
[3:--------------------------]{12:│}[2:--------------------------]|
@ -118,15 +118,15 @@ describe('ext_multigrid', function()
{1:~ }|
{1:~ }|
{1:~ }|
]], nil, nil, function()
]], condition=function()
eq({
[2] = { win = 1000, startrow = 0, startcol = 27, width = 26, height = 12 },
[3] = { win = 1001, startrow = 0, startcol = 0, width = 26, height = 12 }
[2] = { win = {id=1000}, startrow = 0, startcol = 27, width = 26, height = 12 },
[3] = { win = {id=1001}, startrow = 0, startcol = 0, width = 26, height = 12 }
}, screen.win_position)
end)
end}
command('wincmd l')
command('split')
screen:expect([[
screen:expect{grid=[[
## grid 1
[3:--------------------------]{12:│}[4:--------------------------]|
[3:--------------------------]{12:│}[4:--------------------------]|
@ -168,16 +168,16 @@ describe('ext_multigrid', function()
{1:~ }|
{1:~ }|
{1:~ }|
]], nil, nil, function()
]], condition=function()
eq({
[2] = { win = 1000, startrow = 7, startcol = 27, width = 26, height = 5 },
[3] = { win = 1001, startrow = 0, startcol = 0, width = 26, height = 12 },
[4] = { win = 1002, startrow = 0, startcol = 27, width = 26, height = 6 }
[2] = { win = {id=1000}, startrow = 7, startcol = 27, width = 26, height = 5 },
[3] = { win = {id=1001}, startrow = 0, startcol = 0, width = 26, height = 12 },
[4] = { win = {id=1002}, startrow = 0, startcol = 27, width = 26, height = 6 }
}, screen.win_position)
end)
end}
command('wincmd h')
command('q')
screen:expect([[
screen:expect{grid=[[
## grid 1
[4:-----------------------------------------------------]|
[4:-----------------------------------------------------]|
@ -206,12 +206,12 @@ describe('ext_multigrid', function()
{1:~ }|
{1:~ }|
{1:~ }|
]], nil, nil, function()
]], condition=function()
eq({
[2] = { win = 1000, startrow = 7, startcol = 0, width = 53, height = 5 },
[4] = { win = 1002, startrow = 0, startcol = 0, width = 53, height = 6 }
[2] = { win = {id=1000}, startrow = 7, startcol = 0, width = 53, height = 5 },
[4] = { win = {id=1002}, startrow = 0, startcol = 0, width = 53, height = 6 }
}, screen.win_position)
end)
end}
end)
describe('split', function ()

View File

@ -316,9 +316,10 @@ local ext_keys = {
-- cmdline_block: Expected ext_cmdline block (for function definitions)
-- wildmenu_items: Expected items for ext_wildmenu
-- wildmenu_pos: Expected position for ext_wildmenu
function Screen:expect(expected, attr_ids, attr_ignore)
function Screen:expect(expected, attr_ids, attr_ignore, ...)
local grid, condition = nil, nil
local expected_rows = {}
assert(next({...}) == nil, "invalid args to expect()")
if type(expected) == "table" then
assert(not (attr_ids ~= nil or attr_ignore ~= nil))
local is_key = {grid=true, attr_ids=true, attr_ignore=true, condition=true,