test_filecopy.vim (1946B)
1 " Test filecopy() 2 3 source check.vim 4 source shared.vim 5 6 func Test_copy_file_to_file() 7 call writefile(['foo'], 'Xcopy1') 8 9 call assert_true(filecopy('Xcopy1', 'Xcopy2')) 10 11 call assert_equal(['foo'], readfile('Xcopy2')) 12 13 " When the destination file already exists, it should not be overwritten. 14 call writefile(['foo'], 'Xcopy1') 15 call writefile(['bar'], 'Xcopy2', 'D') 16 call assert_false(filecopy('Xcopy1', 'Xcopy2')) 17 call assert_equal(['bar'], readfile('Xcopy2')) 18 19 call delete('Xcopy2') 20 call delete('Xcopy1') 21 endfunc 22 23 func Test_copy_symbolic_link() 24 CheckUnix 25 26 call writefile(['text'], 'Xtestfile', 'D') 27 silent !ln -s -f Xtestfile Xtestlink 28 29 call assert_true(filecopy('Xtestlink', 'Xtestlink2')) 30 call assert_equal('link', getftype('Xtestlink2')) 31 call assert_equal(['text'], readfile('Xtestlink2')) 32 33 " When the destination file already exists, it should not be overwritten. 34 call assert_false(filecopy('Xtestlink', 'Xtestlink2')) 35 36 call delete('Xtestlink2') 37 call delete('Xtestlink') 38 call delete('Xtestfile') 39 endfunc 40 41 func Test_copy_dir_to_dir() 42 call mkdir('Xcopydir1') 43 call writefile(['foo'], 'Xcopydir1/Xfilecopy') 44 call mkdir('Xcopydir2') 45 46 " Directory copy is not supported 47 call assert_false(filecopy('Xcopydir1', 'Xcopydir2')) 48 49 call delete('Xcopydir2', 'rf') 50 call delete('Xcopydir1', 'rf') 51 endfunc 52 53 func Test_copy_fails() 54 CheckUnix 55 56 call writefile(['foo'], 'Xfilecopy', 'D') 57 58 " Can't copy into a non-existing directory. 59 call assert_false(filecopy('Xfilecopy', 'Xdoesnotexist/Xfilecopy')) 60 61 " Can't copy a non-existing file. 62 call assert_false(filecopy('Xdoesnotexist', 'Xfilecopy2')) 63 call assert_equal('', glob('Xfilecopy2')) 64 65 " Can't copy to en empty file name. 66 call assert_false(filecopy('Xfilecopy', '')) 67 68 call assert_fails('call filecopy("Xfilecopy", [])', 'E1174:') 69 call assert_fails('call filecopy(0z, "Xfilecopy")', 'E1174:') 70 endfunc 71 72 " vim: shiftwidth=2 sts=2 expandtab