test_backup.vim 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. " Tests for the backup function
  2. source check.vim
  3. func Test_backup()
  4. set backup backupdir=. backupskip=
  5. 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!
  15. set backup&vim backupdir&vim backupskip&vim
  16. call delete('Xbackup.txt')
  17. call delete('Xbackup.txt~')
  18. endfunc
  19. func Test_backup_backupskip()
  20. set backup backupdir=. backupskip=*.txt
  21. new
  22. call setline(1, ['line1', 'line2'])
  23. :f Xbackup.txt
  24. :w! Xbackup.txt
  25. " backup file is only created after
  26. " writing a second time (before overwriting)
  27. :w! Xbackup.txt
  28. call assert_false(filereadable('Xbackup.txt~'))
  29. bw!
  30. set backup&vim backupdir&vim backupskip&vim
  31. call delete('Xbackup.txt')
  32. call delete('Xbackup.txt~')
  33. endfunc
  34. func Test_backup2()
  35. set backup backupdir=.// backupskip=
  36. new
  37. call setline(1, ['line1', 'line2', 'line3'])
  38. :f Xbackup.txt
  39. :w! Xbackup.txt
  40. " backup file is only created after
  41. " writing a second time (before overwriting)
  42. :w! Xbackup.txt
  43. sp *Xbackup.txt~
  44. call assert_equal(['line1', 'line2', 'line3'], getline(1,'$'))
  45. let f = expand('%')
  46. call assert_match('%testdir%Xbackup.txt\~', f)
  47. bw!
  48. bw!
  49. call delete('Xbackup.txt')
  50. call delete(f)
  51. set backup&vim backupdir&vim backupskip&vim
  52. endfunc
  53. func Test_backup2_backupcopy()
  54. set backup backupdir=.// backupcopy=yes backupskip=
  55. new
  56. call setline(1, ['line1', 'line2', 'line3'])
  57. :f Xbackup.txt
  58. :w! Xbackup.txt
  59. " backup file is only created after
  60. " writing a second time (before overwriting)
  61. :w! Xbackup.txt
  62. sp *Xbackup.txt~
  63. call assert_equal(['line1', 'line2', 'line3'], getline(1,'$'))
  64. let f = expand('%')
  65. call assert_match('%testdir%Xbackup.txt\~', f)
  66. bw!
  67. bw!
  68. call delete('Xbackup.txt')
  69. call delete(f)
  70. set backup&vim backupdir&vim backupcopy&vim backupskip&vim
  71. endfunc
  72. " Test for using a non-existing directory as a backup directory
  73. func Test_non_existing_backupdir()
  74. throw 'Skipped: Nvim auto-creates backup directory'
  75. set backupdir=./non_existing_dir backupskip=
  76. call writefile(['line1'], 'Xbackupdir', 'D')
  77. new Xbackupdir
  78. call assert_fails('write', 'E510:')
  79. set backupdir&vim backupskip&vim
  80. endfunc
  81. " vim: shiftwidth=2 sts=2 expandtab