1" Tests for the backup function 2 3source check.vim 4 5func 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~') 20endfunc 21 22func 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~') 36endfunc 37 38func 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 56endfunc 57 58func 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 76endfunc 77 78" Test for using a non-existing directory as a backup directory 79func Test_non_existing_backupdir() 80 set backupdir=./non_existing_dir backupskip= 81 call writefile(['line1'], 'Xfile') 82 new Xfile 83 call assert_fails('write', 'E510:') 84 set backupdir&vim backupskip&vim 85 call delete('Xfile') 86endfunc 87 88" vim: shiftwidth=2 sts=2 expandtab 89