1b782ba47SBram Moolenaar" Tests for the backup function 2b782ba47SBram Moolenaar 31de5f7c8SBram Moolenaarsource check.vim 41de5f7c8SBram Moolenaar 5b782ba47SBram Moolenaarfunc Test_backup() 6efe03738SBram Moolenaar set backup backupdir=. backupskip= 7b782ba47SBram Moolenaar new 8b782ba47SBram Moolenaar call setline(1, ['line1', 'line2']) 9b782ba47SBram Moolenaar :f Xbackup.txt 10b782ba47SBram Moolenaar :w! Xbackup.txt 11b782ba47SBram Moolenaar " backup file is only created after 12b782ba47SBram Moolenaar " writing a second time (before overwriting) 13b782ba47SBram Moolenaar :w! Xbackup.txt 14b782ba47SBram Moolenaar let l = readfile('Xbackup.txt~') 15b782ba47SBram Moolenaar call assert_equal(['line1', 'line2'], l) 16b782ba47SBram Moolenaar bw! 17efe03738SBram Moolenaar set backup&vim backupdir&vim backupskip&vim 18b782ba47SBram Moolenaar call delete('Xbackup.txt') 19b782ba47SBram Moolenaar call delete('Xbackup.txt~') 20b782ba47SBram Moolenaarendfunc 21b782ba47SBram Moolenaar 22*b86abadfSBram Moolenaarfunc Test_backup_backupskip() 23*b86abadfSBram Moolenaar set backup backupdir=. backupskip=*.txt 24*b86abadfSBram Moolenaar new 25*b86abadfSBram Moolenaar call setline(1, ['line1', 'line2']) 26*b86abadfSBram Moolenaar :f Xbackup.txt 27*b86abadfSBram Moolenaar :w! Xbackup.txt 28*b86abadfSBram Moolenaar " backup file is only created after 29*b86abadfSBram Moolenaar " writing a second time (before overwriting) 30*b86abadfSBram Moolenaar :w! Xbackup.txt 31*b86abadfSBram Moolenaar call assert_false(filereadable('Xbackup.txt~')) 32*b86abadfSBram Moolenaar bw! 33*b86abadfSBram Moolenaar set backup&vim backupdir&vim backupskip&vim 34*b86abadfSBram Moolenaar call delete('Xbackup.txt') 35*b86abadfSBram Moolenaar call delete('Xbackup.txt~') 36*b86abadfSBram Moolenaarendfunc 37*b86abadfSBram Moolenaar 38b782ba47SBram Moolenaarfunc Test_backup2() 39efe03738SBram Moolenaar set backup backupdir=.// backupskip= 40b782ba47SBram Moolenaar new 41b782ba47SBram Moolenaar call setline(1, ['line1', 'line2', 'line3']) 42b782ba47SBram Moolenaar :f Xbackup.txt 43b782ba47SBram Moolenaar :w! Xbackup.txt 44b782ba47SBram Moolenaar " backup file is only created after 45b782ba47SBram Moolenaar " writing a second time (before overwriting) 46b782ba47SBram Moolenaar :w! Xbackup.txt 47b782ba47SBram Moolenaar sp *Xbackup.txt~ 48b782ba47SBram Moolenaar call assert_equal(['line1', 'line2', 'line3'], getline(1,'$')) 49b782ba47SBram Moolenaar let f = expand('%') 50f8f88f89SBram Moolenaar call assert_match('%testdir%Xbackup.txt\~', f) 51b782ba47SBram Moolenaar bw! 52b782ba47SBram Moolenaar bw! 53b782ba47SBram Moolenaar call delete('Xbackup.txt') 54b782ba47SBram Moolenaar call delete(f) 55efe03738SBram Moolenaar set backup&vim backupdir&vim backupskip&vim 56b782ba47SBram Moolenaarendfunc 57b782ba47SBram Moolenaar 58b782ba47SBram Moolenaarfunc Test_backup2_backupcopy() 59efe03738SBram Moolenaar set backup backupdir=.// backupcopy=yes backupskip= 60b782ba47SBram Moolenaar new 61b782ba47SBram Moolenaar call setline(1, ['line1', 'line2', 'line3']) 62b782ba47SBram Moolenaar :f Xbackup.txt 63b782ba47SBram Moolenaar :w! Xbackup.txt 64b782ba47SBram Moolenaar " backup file is only created after 65b782ba47SBram Moolenaar " writing a second time (before overwriting) 66b782ba47SBram Moolenaar :w! Xbackup.txt 67b782ba47SBram Moolenaar sp *Xbackup.txt~ 68b782ba47SBram Moolenaar call assert_equal(['line1', 'line2', 'line3'], getline(1,'$')) 69b782ba47SBram Moolenaar let f = expand('%') 70f8f88f89SBram Moolenaar call assert_match('%testdir%Xbackup.txt\~', f) 71b782ba47SBram Moolenaar bw! 72b782ba47SBram Moolenaar bw! 73b782ba47SBram Moolenaar call delete('Xbackup.txt') 74b782ba47SBram Moolenaar call delete(f) 75efe03738SBram Moolenaar set backup&vim backupdir&vim backupcopy&vim backupskip&vim 76b782ba47SBram Moolenaarendfunc 771de5f7c8SBram Moolenaar 781de5f7c8SBram Moolenaar" Test for using a non-existing directory as a backup directory 791de5f7c8SBram Moolenaarfunc Test_non_existing_backupdir() 80*b86abadfSBram Moolenaar set backupdir=./non_existing_dir backupskip= 811de5f7c8SBram Moolenaar call writefile(['line1'], 'Xfile') 821de5f7c8SBram Moolenaar new Xfile 831de5f7c8SBram Moolenaar call assert_fails('write', 'E510:') 84*b86abadfSBram Moolenaar set backupdir&vim backupskip&vim 851de5f7c8SBram Moolenaar call delete('Xfile') 861de5f7c8SBram Moolenaarendfunc 871de5f7c8SBram Moolenaar 881de5f7c8SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 89