neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

test_backup.vim (2371B)


      1 " Tests for the backup function
      2 
      3 source check.vim
      4 
      5 func Test_backup()
      6  set backup backupdir=. backupskip=
      7  new
      8  call setline(1, ['line1', 'line2'])
      9  :f Xbackup.txt
     10  :w! Xbackup.txt
     11  " backup file is only created after
     12  " writing a second time (before overwriting)
     13  :w! Xbackup.txt
     14  let l = readfile('Xbackup.txt~')
     15  call assert_equal(['line1', 'line2'], l)
     16  bw!
     17  set backup&vim backupdir&vim backupskip&vim
     18  call delete('Xbackup.txt')
     19  call delete('Xbackup.txt~')
     20 endfunc
     21 
     22 func Test_backup_backupskip()
     23  set backup backupdir=. backupskip=*.txt
     24  new
     25  call setline(1, ['line1', 'line2'])
     26  :f Xbackup.txt
     27  :w! Xbackup.txt
     28  " backup file is only created after
     29  " writing a second time (before overwriting)
     30  :w! Xbackup.txt
     31  call assert_false(filereadable('Xbackup.txt~'))
     32  bw!
     33  set backup&vim backupdir&vim backupskip&vim
     34  call delete('Xbackup.txt')
     35  call delete('Xbackup.txt~')
     36 endfunc
     37 
     38 func Test_backup2()
     39  set backup backupdir=.// backupskip=
     40  new
     41  call setline(1, ['line1', 'line2', 'line3'])
     42  :f Xbackup.txt
     43  :w! Xbackup.txt
     44  " backup file is only created after
     45  " writing a second time (before overwriting)
     46  :w! Xbackup.txt
     47  sp *Xbackup.txt~
     48  call assert_equal(['line1', 'line2', 'line3'], getline(1,'$'))
     49  let f = expand('%')
     50  call assert_match('%testdir%Xbackup.txt\~', f)
     51  bw!
     52  bw!
     53  call delete('Xbackup.txt')
     54  call delete(f)
     55  set backup&vim backupdir&vim backupskip&vim
     56 endfunc
     57 
     58 func Test_backup2_backupcopy()
     59  set backup backupdir=.// backupcopy=yes backupskip=
     60  new
     61  call setline(1, ['line1', 'line2', 'line3'])
     62  :f Xbackup.txt
     63  :w! Xbackup.txt
     64  " backup file is only created after
     65  " writing a second time (before overwriting)
     66  :w! Xbackup.txt
     67  sp *Xbackup.txt~
     68  call assert_equal(['line1', 'line2', 'line3'], getline(1,'$'))
     69  let f = expand('%')
     70  call assert_match('%testdir%Xbackup.txt\~', f)
     71  bw!
     72  bw!
     73  call delete('Xbackup.txt')
     74  call delete(f)
     75  set backup&vim backupdir&vim backupcopy&vim backupskip&vim
     76 endfunc
     77 
     78 " Test for using a non-existing directory as a backup directory
     79 func Test_non_existing_backupdir()
     80  throw 'Skipped: Nvim auto-creates backup directory'
     81  set backupdir=./non_existing_dir backupskip=
     82  call writefile(['line1'], 'Xbackupdir', 'D')
     83  new Xbackupdir
     84  call assert_fails('write', 'E510:')
     85 
     86  set backupdir&vim backupskip&vim
     87 endfunc
     88 
     89 " vim: shiftwidth=2 sts=2 expandtab