diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-05-18 19:46:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-05-18 19:46:48 +0200 |
commit | b5383b174b2436b556f76f14badb1c1f55d6d8f6 (patch) | |
tree | 9ac5d993e3a2febe97c8c77e19e1928a47bcf739 /src/testdir | |
parent | 843700875e50c03c94245bef1b2de147b9b3b585 (diff) | |
download | vim-git-b5383b174b2436b556f76f14badb1c1f55d6d8f6.tar.gz |
patch 8.2.0791: a second popup window with terminal causes troublev8.2.0791
Problem: A second popup window with terminal causes trouble.
Solution: Disallow opening a second terminal-popup window. (closes #6101,
closes #6103) Avoid defaulting to an invalid line number.
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_popupwin.vim | 13 | ||||
-rw-r--r-- | src/testdir/test_terminal.vim | 7 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index feaa5e4c0..8c917bc8e 100644 --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -2426,10 +2426,10 @@ func Test_popupwin_terminal_buffer() let g:test_is_flaky = 1 let origwin = win_getid() - let ptybuf = term_start(&shell, #{hidden: 1}) - let winid = popup_create(ptybuf, #{minwidth: 40, minheight: 10}) + let termbuf = term_start(&shell, #{hidden: 1}) + let winid = popup_create(termbuf, #{minwidth: 40, minheight: 10}) " Wait for shell to start - call WaitForAssert({-> assert_equal("run", job_status(term_getjob(ptybuf)))}) + call WaitForAssert({-> assert_equal("run", job_status(term_getjob(termbuf)))}) sleep 100m " Check this doesn't crash call assert_equal(winnr(), winnr('j')) @@ -2440,11 +2440,16 @@ func Test_popupwin_terminal_buffer() " Cannot quit while job is running call assert_fails('call feedkeys("\<C-W>:quit\<CR>", "xt")', 'E948:') - " Cannot enter Terminal-Normal mode. + " Cannot enter Terminal-Normal mode. (TODO: but it works...) call feedkeys("xxx\<C-W>N", 'xt') call assert_fails('call feedkeys("gf", "xt")', 'E863:') call feedkeys("a\<C-U>", 'xt') + " Cannot open a second one. + let termbuf2 = term_start(&shell, #{hidden: 1}) + call assert_fails('call popup_create(termbuf2, #{})', 'E861:') + call term_sendkeys(termbuf2, "exit\<CR>") + " Exiting shell closes popup window call feedkeys("exit\<CR>", 'xt') " Wait for shell to exit diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim index ab1961aa3..7f85f6cf1 100644 --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -2587,9 +2587,8 @@ func Test_double_popup_terminal() let buf1 = term_start(&shell, #{hidden: 1}) let win1 = popup_create(buf1, {}) let buf2 = term_start(&shell, #{hidden: 1}) - let win2 = popup_create(buf2, {}) + call assert_fails('call popup_create(buf2, {})', 'E861:') call popup_close(win1) - call popup_close(win2) exe buf1 .. 'bwipe!' exe buf2 .. 'bwipe!' endfunc @@ -2619,10 +2618,8 @@ func Test_term_nasty_callback() CheckExecutable sh set hidden - let g:buf0 = term_start('sh', #{hidden: 1}) + let g:buf0 = term_start('sh', #{hidden: 1, term_finish: 'close'}) call popup_create(g:buf0, {}) - let g:buf1 = term_start('sh', #{hidden: 1, term_finish: 'close'}) - call popup_create(g:buf1, {}) call assert_fails("call term_start(['sh', '-c'], #{curwin: 1})", 'E863:') call popup_clear(1) |