blob: 3c24a69bff0bc0a2b6630bd8ae6e2c7498639112 [file] [log] [blame]
Bram Moolenaarb782ba42018-08-07 21:39:28 +02001" Tests for the backup function
2
3func Test_backup()
Bram Moolenaarefe03732018-08-09 22:26:38 +02004 set backup backupdir=. backupskip=
Bram Moolenaarb782ba42018-08-07 21:39:28 +02005 new
6 call setline(1, ['line1', 'line2'])
7 :f Xbackup.txt
8 :w! Xbackup.txt
9 " backup file is only created after
10 " writing a second time (before overwriting)
11 :w! Xbackup.txt
12 let l = readfile('Xbackup.txt~')
13 call assert_equal(['line1', 'line2'], l)
14 bw!
Bram Moolenaarefe03732018-08-09 22:26:38 +020015 set backup&vim backupdir&vim backupskip&vim
Bram Moolenaarb782ba42018-08-07 21:39:28 +020016 call delete('Xbackup.txt')
17 call delete('Xbackup.txt~')
18endfunc
19
Bram Moolenaarb86abad2020-08-01 16:08:19 +020020func Test_backup_backupskip()
21 set backup backupdir=. backupskip=*.txt
22 new
23 call setline(1, ['line1', 'line2'])
24 :f Xbackup.txt
25 :w! Xbackup.txt
26 " backup file is only created after
27 " writing a second time (before overwriting)
28 :w! Xbackup.txt
29 call assert_false(filereadable('Xbackup.txt~'))
30 bw!
31 set backup&vim backupdir&vim backupskip&vim
32 call delete('Xbackup.txt')
33 call delete('Xbackup.txt~')
34endfunc
35
Bram Moolenaarb782ba42018-08-07 21:39:28 +020036func Test_backup2()
Bram Moolenaarefe03732018-08-09 22:26:38 +020037 set backup backupdir=.// backupskip=
Bram Moolenaarb782ba42018-08-07 21:39:28 +020038 new
39 call setline(1, ['line1', 'line2', 'line3'])
40 :f Xbackup.txt
41 :w! Xbackup.txt
42 " backup file is only created after
43 " writing a second time (before overwriting)
44 :w! Xbackup.txt
45 sp *Xbackup.txt~
46 call assert_equal(['line1', 'line2', 'line3'], getline(1,'$'))
Bram Moolenaarb86abad2020-08-01 16:08:19 +020047 let f = expand('%')
Bram Moolenaarf8f88f82018-08-08 11:02:32 +020048 call assert_match('%testdir%Xbackup.txt\~', f)
Bram Moolenaarb782ba42018-08-07 21:39:28 +020049 bw!
50 bw!
51 call delete('Xbackup.txt')
52 call delete(f)
Bram Moolenaarefe03732018-08-09 22:26:38 +020053 set backup&vim backupdir&vim backupskip&vim
Bram Moolenaarb782ba42018-08-07 21:39:28 +020054endfunc
55
56func Test_backup2_backupcopy()
Bram Moolenaarefe03732018-08-09 22:26:38 +020057 set backup backupdir=.// backupcopy=yes backupskip=
Bram Moolenaarb782ba42018-08-07 21:39:28 +020058 new
59 call setline(1, ['line1', 'line2', 'line3'])
60 :f Xbackup.txt
61 :w! Xbackup.txt
62 " backup file is only created after
63 " writing a second time (before overwriting)
64 :w! Xbackup.txt
65 sp *Xbackup.txt~
66 call assert_equal(['line1', 'line2', 'line3'], getline(1,'$'))
Bram Moolenaarb86abad2020-08-01 16:08:19 +020067 let f = expand('%')
Bram Moolenaarf8f88f82018-08-08 11:02:32 +020068 call assert_match('%testdir%Xbackup.txt\~', f)
Bram Moolenaarb782ba42018-08-07 21:39:28 +020069 bw!
70 bw!
71 call delete('Xbackup.txt')
72 call delete(f)
Bram Moolenaarefe03732018-08-09 22:26:38 +020073 set backup&vim backupdir&vim backupcopy&vim backupskip&vim
Bram Moolenaarb782ba42018-08-07 21:39:28 +020074endfunc
Bram Moolenaar1de5f7c2020-06-11 19:22:43 +020075
76" Test for using a non-existing directory as a backup directory
77func Test_non_existing_backupdir()
Bram Moolenaarb86abad2020-08-01 16:08:19 +020078 set backupdir=./non_existing_dir backupskip=
Bram Moolenaar34112652022-09-05 21:40:44 +010079 call writefile(['line1'], 'Xbackupdir', 'D')
Bram Moolenaare7cda972022-08-29 11:02:59 +010080 new Xbackupdir
Bram Moolenaar1de5f7c2020-06-11 19:22:43 +020081 call assert_fails('write', 'E510:')
Bram Moolenaar34112652022-09-05 21:40:44 +010082
Bram Moolenaarb86abad2020-08-01 16:08:19 +020083 set backupdir&vim backupskip&vim
Bram Moolenaar1de5f7c2020-06-11 19:22:43 +020084endfunc
85
86" vim: shiftwidth=2 sts=2 expandtab