neovim/test/functional/terminal/window_split_tab_spec.lua
Justin M. Keyes e6beb60da5
:terminal : fix crash on resize (#7547)
closes #7538
Fix wrong window references from #7440

Remove some eager resizing. Still mostly doesn't address #4997.
2017-11-13 02:06:32 +01:00

91 lines
3.5 KiB
Lua

local helpers = require('test.functional.helpers')(after_each)
local thelpers = require('test.functional.terminal.helpers')
local clear = helpers.clear
local feed, nvim = helpers.feed, helpers.nvim
local feed_command = helpers.feed_command
local command = helpers.command
local eq = helpers.eq
local eval = helpers.eval
describe('terminal', function()
local screen
before_each(function()
clear()
-- set the statusline to a constant value because of variables like pid
-- and current directory and to improve visibility of splits
nvim('set_option', 'statusline', '==========')
nvim('command', 'highlight StatusLine cterm=NONE')
nvim('command', 'highlight StatusLineNC cterm=NONE')
nvim('command', 'highlight VertSplit cterm=NONE')
screen = thelpers.screen_setup(3)
end)
after_each(function()
screen:detach()
end)
it('next to a closing window', function()
command('split')
command('terminal')
command('vsplit foo')
eq(3, eval("winnr('$')"))
feed('ZQ') -- Close split, should not crash. #7538
eq(2, eval("1+1")) -- Still alive?
end)
it('does not change size on WinEnter', function()
if helpers.pending_win32(pending) then return end
feed('<c-\\><c-n>')
feed_command('2split')
screen:expect([[
tty ready |
^rows: 5, cols: 50 |
========== |
tty ready |
rows: 5, cols: 50 |
{2: } |
|
|
========== |
:2split |
]])
feed_command('wincmd p')
screen:expect([[
tty ready |
rows: 5, cols: 50 |
========== |
tty ready |
^rows: 5, cols: 50 |
{2: } |
|
|
========== |
:wincmd p |
]])
end)
it('forwards resize request to the program', function()
feed([[<C-\><C-N>:]]) -- Go to cmdline-mode, so cursor is at bottom.
screen:try_resize(screen._width - 3, screen._height - 2)
screen:expect([[
tty ready |
rows: 7, cols: 47 |
{2: } |
|
|
|
|
:^ |
]])
screen:try_resize(screen._width - 6, screen._height - 3)
screen:expect([[
tty ready |
rows: 7, cols: 47 |
rows: 4, cols: 41 |
{2: } |
:^ |
]])
end)
end)