diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-12-15 18:09:19 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-12-15 18:09:19 +0100 |
commit | 559b9c68fe550f3af63d42e0838622aab1ceb1b3 (patch) | |
tree | 12927de3a826edf31d5c2d2e7303755f333b8ca0 /src/testdir | |
parent | 5e5a98d7de41457fabad4eb5af3d54cc93f05d0a (diff) | |
download | vim-git-559b9c68fe550f3af63d42e0838622aab1ceb1b3.tar.gz |
patch 8.2.0012: some undo functionality is not testedv8.2.0012
Problem: Some undo functionality is not tested.
Solution: Add a few more test cases. (Dominique Pelle, closes #5364)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_undo.vim | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/src/testdir/test_undo.vim b/src/testdir/test_undo.vim index a76073e17..e858d7274 100644 --- a/src/testdir/test_undo.vim +++ b/src/testdir/test_undo.vim @@ -249,6 +249,26 @@ func Test_undojoin_redo() bwipe! endfunc +" undojoin not allowed after undo +func Test_undojoin_after_undo() + new + call feedkeys("ixx\<Esc>u", 'xt') + call assert_fails(':undojoin', 'E790:') + bwipe! +endfunc + +" undojoin is a noop when no change yet, or when 'undolevels' is negative +func Test_undojoin_noop() + new + call feedkeys(":undojoin\<CR>", 'xt') + call assert_equal([''], getline(1, '$')) + setlocal undolevels=-1 + call feedkeys("ixx\<Esc>u", 'xt') + call feedkeys(":undojoin\<CR>", 'xt') + call assert_equal(['xx'], getline(1, '$')) + bwipe! +endfunc + func Test_undo_write() call delete('Xtest') split Xtest @@ -335,7 +355,14 @@ func Test_undofile_earlier() call delete('Xundofile') endfunc -" Check that reading a truncted undo file doesn't hang. +func Test_wundo_errors() + new + call setline(1, 'hello') + call assert_fails('wundo! Xdoesnotexist/Xundofile', 'E828:') + bwipe! +endfunc + +" Check that reading a truncated undo file doesn't hang. func Test_undofile_truncated() new call setline(1, 'hello') @@ -353,6 +380,15 @@ func Test_undofile_truncated() call delete('Xundofile') endfunc +func Test_rundo_errors() + call assert_fails('rundo XfileDoesNotExist', 'E822:') + + call writefile(['abc'], 'Xundofile') + call assert_fails('rundo Xundofile', 'E823:') + + call delete('Xundofile') +endfunc + " Test for undo working properly when executing commands from a register. " Also test this in an empty buffer. func Test_cmd_in_reg_undo() @@ -422,6 +458,24 @@ func Test_undo_0() bwipe! endfunc +" undo or redo are noop if there is nothing to undo or redo +func Test_undo_redo_noop() + new + call assert_fails('undo 2', 'E830:') + + message clear + undo + let messages = split(execute('message'), "\n") + call assert_equal('Already at oldest change', messages[-1]) + + message clear + redo + let messages = split(execute('message'), "\n") + call assert_equal('Already at newest change', messages[-1]) + + bwipe! +endfunc + func Test_redo_empty_line() new exe "norm\x16r\x160" |