0
0
mirror of https://github.com/vim/vim.git synced 2025-07-25 10:54:51 -04:00

patch 8.1.0025: no test for the undofile() function

Problem:    No test for the undofile() function.
Solution:   Add test. (Dominique Pelle, closes #2958)
This commit is contained in:
Bram Moolenaar 2018-05-26 18:46:30 +02:00
parent 6b69e5c646
commit e5fa11186f
2 changed files with 40 additions and 6 deletions

View File

@ -85,7 +85,7 @@ endfunc
func FillBuffer() func FillBuffer()
for i in range(1,13) for i in range(1,13)
put=i put=i
" Set 'undolevels' to split undo. " Set 'undolevels' to split undo.
exe "setg ul=" . &g:ul exe "setg ul=" . &g:ul
endfor endfor
endfunc endfunc
@ -193,19 +193,19 @@ func Test_undolist()
new new
set ul=100 set ul=100
let a=execute('undolist') let a = execute('undolist')
call assert_equal("\nNothing to undo", a) call assert_equal("\nNothing to undo", a)
" 1 leaf (2 changes). " 1 leaf (2 changes).
call feedkeys('achange1', 'xt') call feedkeys('achange1', 'xt')
call feedkeys('achange2', 'xt') call feedkeys('achange2', 'xt')
let a=execute('undolist') let a = execute('undolist')
call assert_match("^\nnumber changes when *saved\n *2 *2 .*$", a) call assert_match("^\nnumber changes when *saved\n *2 *2 .*$", a)
" 2 leaves. " 2 leaves.
call feedkeys('u', 'xt') call feedkeys('u', 'xt')
call feedkeys('achange3\<Esc>', 'xt') call feedkeys('achange3\<Esc>', 'xt')
let a=execute('undolist') let a = execute('undolist')
call assert_match("^\nnumber changes when *saved\n *2 *2 *.*\n *3 *2 .*$", a) call assert_match("^\nnumber changes when *saved\n *2 *2 *.*\n *3 *2 .*$", a)
close! close!
endfunc endfunc
@ -339,7 +339,7 @@ endfunc
" Also test this in an empty buffer. " Also test this in an empty buffer.
func Test_cmd_in_reg_undo() func Test_cmd_in_reg_undo()
enew! enew!
let @a="Ox\<Esc>jAy\<Esc>kdd" let @a = "Ox\<Esc>jAy\<Esc>kdd"
edit +/^$ test_undo.vim edit +/^$ test_undo.vim
normal @au normal @au
call assert_equal(0, &modified) call assert_equal(0, &modified)
@ -348,7 +348,7 @@ func Test_cmd_in_reg_undo()
normal @au normal @au
call assert_equal(0, &modified) call assert_equal(0, &modified)
only! only!
let @a='' let @a = ''
endfunc endfunc
" This used to cause an illegal memory access " This used to cause an illegal memory access
@ -410,3 +410,35 @@ func Test_redo_empty_line()
exe "norm." exe "norm."
bwipe! bwipe!
endfunc endfunc
funct Test_undofile()
" Test undofile() without setting 'undodir'.
if has('persistent_undo')
call assert_equal(fnamemodify('.Xundofoo.un~', ':p'), undofile('Xundofoo'))
else
call assert_equal('', undofile('Xundofoo'))
endif
call assert_equal('', undofile(''))
" Test undofile() with 'undodir' set to to an existing directory.
call mkdir('Xundodir')
set undodir=Xundodir
let cwd = getcwd()
if has('win32')
" Replace windows drive such as C:... into C%...
let cwd = substitute(cwd, '^\([A-Z]\):', '\1%', 'g')
endif
let cwd = substitute(cwd . '/Xundofoo', '/', '%', 'g')
if has('persistent_undo')
call assert_equal('Xundodir/' . cwd, undofile('Xundofoo'))
else
call assert_equal('', undofile('Xundofoo'))
endif
call assert_equal('', undofile(''))
call delete('Xundodir', 'd')
" Test undofile() with 'undodir' set to a non-existing directory.
call assert_equal('', undofile('Xundofoo'))
set undodir&
endfunc

View File

@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
25,
/**/ /**/
24, 24,
/**/ /**/