18cf91286SBram Moolenaar" Tests for the writefile() function. 219a1669fSBram Moolenaar 38cf91286SBram Moolenaarfunc Test_writefile() 419a1669fSBram Moolenaar let f = tempname() 519a1669fSBram Moolenaar call writefile(["over","written"], f, "b") 619a1669fSBram Moolenaar call writefile(["hello","world"], f, "b") 719a1669fSBram Moolenaar call writefile(["!", "good"], f, "a") 819a1669fSBram Moolenaar call writefile(["morning"], f, "ab") 919a1669fSBram Moolenaar call writefile(["", "vimmers"], f, "ab") 1019a1669fSBram Moolenaar let l = readfile(f) 1119a1669fSBram Moolenaar call assert_equal("hello", l[0]) 1219a1669fSBram Moolenaar call assert_equal("world!", l[1]) 1319a1669fSBram Moolenaar call assert_equal("good", l[2]) 1419a1669fSBram Moolenaar call assert_equal("morning", l[3]) 1519a1669fSBram Moolenaar call assert_equal("vimmers", l[4]) 1619a1669fSBram Moolenaar call delete(f) 178cf91286SBram Moolenaarendfunc 188cf91286SBram Moolenaar 198cf91286SBram Moolenaarfunc Test_writefile_fails_gently() 208cf91286SBram Moolenaar call assert_fails('call writefile(["test"], "Xfile", [])', 'E730:') 218cf91286SBram Moolenaar call assert_false(filereadable("Xfile")) 228cf91286SBram Moolenaar call delete("Xfile") 238cf91286SBram Moolenaar 248cf91286SBram Moolenaar call assert_fails('call writefile(["test", [], [], [], "tset"], "Xfile")', 'E730:') 258cf91286SBram Moolenaar call assert_false(filereadable("Xfile")) 268cf91286SBram Moolenaar call delete("Xfile") 278cf91286SBram Moolenaar 288cf91286SBram Moolenaar call assert_fails('call writefile([], "Xfile", [])', 'E730:') 298cf91286SBram Moolenaar call assert_false(filereadable("Xfile")) 308cf91286SBram Moolenaar call delete("Xfile") 318cf91286SBram Moolenaar 328cf91286SBram Moolenaar call assert_fails('call writefile([], [])', 'E730:') 338cf91286SBram Moolenaarendfunc 34*e6bf655bSBram Moolenaar 35*e6bf655bSBram Moolenaarfunc Test_writefile_fails_conversion() 36*e6bf655bSBram Moolenaar if !has('multi_byte') || !has('iconv') 37*e6bf655bSBram Moolenaar return 38*e6bf655bSBram Moolenaar endif 39*e6bf655bSBram Moolenaar set nobackup nowritebackup 40*e6bf655bSBram Moolenaar new 41*e6bf655bSBram Moolenaar let contents = ["line one", "line two"] 42*e6bf655bSBram Moolenaar call writefile(contents, 'Xfile') 43*e6bf655bSBram Moolenaar edit Xfile 44*e6bf655bSBram Moolenaar call setline(1, ["first line", "cannot convert \u010b", "third line"]) 45*e6bf655bSBram Moolenaar call assert_fails('write ++enc=cp932') 46*e6bf655bSBram Moolenaar call assert_equal(contents, readfile('Xfile')) 47*e6bf655bSBram Moolenaar 48*e6bf655bSBram Moolenaar call delete('Xfile') 49*e6bf655bSBram Moolenaar bwipe! 50*e6bf655bSBram Moolenaar set backup& writebackup& 51*e6bf655bSBram Moolenaarendfunc 52