# HG changeset patch # User Bram Moolenaar # Date 1616438704 -3600 # Node ID ec71c859e94c46aa7f251b3ab4b8e0dccc081deb # Parent b78600b6b609b3e802f426bd770a081976eaa102 patch 8.2.2643: various code not covered by tests Commit: https://github.com/vim/vim/commit/1f448d906b3c516e5864dc5bae3ddbf3664ee649 Author: Bram Moolenaar Date: Mon Mar 22 19:37:06 2021 +0100 patch 8.2.2643: various code not covered by tests Problem: Various code not covered by tests. Solution: Add a few more test. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/7995) diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim --- a/src/testdir/test_edit.vim +++ b/src/testdir/test_edit.vim @@ -411,6 +411,33 @@ func Test_edit_13() bwipe! endfunc +" Test for autoindent removing indent when insert mode is stopped. Some parts +" of the code is exercised only when interactive mode is used. So use Vim in a +" terminal. +func Test_autoindent_remove_indent() + CheckRunVimInTerminal + let buf = RunVimInTerminal('-N Xfile', {'rows': 6, 'cols' : 20}) + call TermWait(buf) + call term_sendkeys(buf, ":set autoindent\n") + " leaving insert mode in a new line with indent added by autoindent, should + " remove the indent. + call term_sendkeys(buf, "i\foo\\") + " Need to delay for sometime, otherwise the code in getchar.c will not be + " exercised. + call TermWait(buf, 50) + " when a line is wrapped and the cursor is at the start of the second line, + " leaving insert mode, should move the cursor back to the first line. + call term_sendkeys(buf, "o" .. repeat('x', 20) .. "\") + " Need to delay for sometime, otherwise the code in getchar.c will not be + " exercised. + call TermWait(buf, 50) + call term_sendkeys(buf, ":w\n") + call TermWait(buf) + call StopVimInTerminal(buf) + call assert_equal(["\tfoo", '', repeat('x', 20)], readfile('Xfile')) + call delete('Xfile') +endfunc + func Test_edit_CR() " Test for in insert mode " basically only in quickfix mode ist tested, the rest diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -1431,7 +1431,7 @@ func Test_input_func() call assert_equal('item1 item2 item3', c) " Test for using special characters as default input - call feedkeys(":let c = input('name? ', \"x\y\")\\", 'xt') + call feedkeys(":let c = input('name? ', \"x\\y\")\\", 'xt') call assert_equal('y', c) " Test for using as default input diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim --- a/src/testdir/test_mapping.vim +++ b/src/testdir/test_mapping.vim @@ -1389,4 +1389,14 @@ func Test_map_cmdkey_redo() ounmap i- endfunc +" Test for using