xref: /vim-8.2.3635/src/testdir/test_backup.vim (revision b86abadf)
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