changeset 14015:9709d783261f v8.1.0025

patch 8.1.0025: no test for the undofile() function commit https://github.com/vim/vim/commit/e5fa11186fde4a19e505eba403d3af8c61d11304 Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 26 18:46:30 2018 +0200 patch 8.1.0025: no test for the undofile() function Problem: No test for the undofile() function. Solution: Add test. (Dominique Pelle, closes https://github.com/vim/vim/issues/2958)
author Christian Brabandt <cb@256bit.org>
date Sat, 26 May 2018 19:00:05 +0200
parents 9d29a6eff754
children ff0c5ccfa884
files src/testdir/test_undo.vim src/version.c
diffstat 2 files changed, 40 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_undo.vim
+++ b/src/testdir/test_undo.vim
@@ -85,7 +85,7 @@ endfunc
 func FillBuffer()
   for i in range(1,13)
     put=i
-    " Set 'undolevels' to split undo. 
+    " Set 'undolevels' to split undo.
     exe "setg ul=" . &g:ul
   endfor
 endfunc
@@ -193,19 +193,19 @@ func Test_undolist()
   new
   set ul=100
 
-  let a=execute('undolist')
+  let a = execute('undolist')
   call assert_equal("\nNothing to undo", a)
 
   " 1 leaf (2 changes).
   call feedkeys('achange1', 'xt')
   call feedkeys('achange2', 'xt')
-  let a=execute('undolist')
+  let a = execute('undolist')
   call assert_match("^\nnumber changes  when  *saved\n *2  *2 .*$", a)
 
   " 2 leaves.
   call feedkeys('u', '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)
   close!
 endfunc
@@ -339,7 +339,7 @@ endfunc
 " Also test this in an empty buffer.
 func Test_cmd_in_reg_undo()
   enew!
-  let @a="Ox\<Esc>jAy\<Esc>kdd"
+  let @a = "Ox\<Esc>jAy\<Esc>kdd"
   edit +/^$ test_undo.vim
   normal @au
   call assert_equal(0, &modified)
@@ -348,7 +348,7 @@ func Test_cmd_in_reg_undo()
   normal @au
   call assert_equal(0, &modified)
   only!
-  let @a=''
+  let @a = ''
 endfunc
 
 " This used to cause an illegal memory access
@@ -410,3 +410,35 @@ func Test_redo_empty_line()
   exe "norm."
   bwipe!
 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
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    25,
+/**/
     24,
 /**/
     23,