Mercurial > vim
changeset 18902:b24648ebcbc9 v8.2.0012
patch 8.2.0012: some undo functionality is not tested
Commit: https://github.com/vim/vim/commit/559b9c68fe550f3af63d42e0838622aab1ceb1b3
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 15 18:09:19 2019 +0100
patch 8.2.0012: some undo functionality is not tested
Problem: Some undo functionality is not tested.
Solution: Add a few more test cases. (Dominique Pelle, closes https://github.com/vim/vim/issues/5364)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 15 Dec 2019 18:15:03 +0100 |
parents | 27c0cda71bf9 |
children | 1974a221b494 |
files | src/testdir/test_undo.vim src/version.c |
diffstat | 2 files changed, 57 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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"