Mercurial > vim
diff src/testdir/test_terminal.vim @ 12031:9897241c08b5 v8.0.0896
patch 8.0.0896: cannot close a terminal window when the job ends
commit https://github.com/vim/vim/commit/dd693ce28b158ff573129ee30fe5b886544a03c2
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 10 23:15:19 2017 +0200
patch 8.0.0896: cannot close a terminal window when the job ends
Problem: Cannot automaticlaly close a terminal window when the job ends.
Solution: Add the ++close argument to :term. Add the term_finish option to
term_start(). (Yasuhiro Matsumoto, closes #1950) Also add
++open.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 10 Aug 2017 23:30:05 +0200 |
parents | c0ee48f48a2b |
children | 2796a2c9fc17 |
line wrap: on
line diff
--- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -264,3 +264,43 @@ func Test_terminal_size() bwipe! call assert_equal([6, 20], size) endfunc + +func Test_finish_close() + call assert_equal(1, winnr('$')) + + " TODO: use something that takes much less than a whole second + if has('win32') + let cmd = $windir . '\system32\timeout.exe 1' + else + let cmd = 'sleep 1' + endif + exe 'terminal ++close ' . cmd + let buf = bufnr('') + call assert_equal(2, winnr('$')) + + wincmd p + sleep 1200 msec + call assert_equal(1, winnr('$')) + + call term_start(cmd, {'term_finish': 'close'}) + call assert_equal(2, winnr('$')) + let buf = bufnr('') + wincmd p + sleep 1200 msec + call assert_equal(1, winnr('$')) + + exe 'terminal ++open ' . cmd + let buf = bufnr('') + close + sleep 1200 msec + call assert_equal(2, winnr('$')) + bwipe + + call term_start(cmd, {'term_finish': 'open'}) + let buf = bufnr('') + close + sleep 1200 msec + call assert_equal(2, winnr('$')) + + bwipe +endfunc