1" Tests for the writefile() function. 2 3func Test_writefile() 4 let f = tempname() 5 call writefile(["over","written"], f, "b") 6 call writefile(["hello","world"], f, "b") 7 call writefile(["!", "good"], f, "a") 8 call writefile(["morning"], f, "ab") 9 call writefile(["", "vimmers"], f, "ab") 10 let l = readfile(f) 11 call assert_equal("hello", l[0]) 12 call assert_equal("world!", l[1]) 13 call assert_equal("good", l[2]) 14 call assert_equal("morning", l[3]) 15 call assert_equal("vimmers", l[4]) 16 call delete(f) 17endfunc 18 19func Test_writefile_fails_gently() 20 call assert_fails('call writefile(["test"], "Xfile", [])', 'E730:') 21 call assert_false(filereadable("Xfile")) 22 call delete("Xfile") 23 24 call assert_fails('call writefile(["test", [], [], [], "tset"], "Xfile")', 'E730:') 25 call assert_false(filereadable("Xfile")) 26 call delete("Xfile") 27 28 call assert_fails('call writefile([], "Xfile", [])', 'E730:') 29 call assert_false(filereadable("Xfile")) 30 call delete("Xfile") 31 32 call assert_fails('call writefile([], [])', 'E730:') 33endfunc 34 35func Test_writefile_fails_conversion() 36 if !has('multi_byte') || !has('iconv') 37 return 38 endif 39 set nobackup nowritebackup 40 new 41 let contents = ["line one", "line two"] 42 call writefile(contents, 'Xfile') 43 edit Xfile 44 call setline(1, ["first line", "cannot convert \u010b", "third line"]) 45 call assert_fails('write ++enc=cp932') 46 call assert_equal(contents, readfile('Xfile')) 47 48 call delete('Xfile') 49 bwipe! 50 set backup& writebackup& 51endfunc 52