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