1292eff0cSBram Moolenaar" Tests for complicated + argument to :edit command
2*6d91bcb4SBram Moolenaar
3292eff0cSBram Moolenaarfunction Test_edit()
4292eff0cSBram Moolenaar  call writefile(["foo|bar"], "Xfile1")
5292eff0cSBram Moolenaar  call writefile(["foo/bar"], "Xfile2")
6292eff0cSBram Moolenaar  edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
7292eff0cSBram Moolenaar  call assert_equal(["fooPIPEbar"], readfile("Xfile1"))
8292eff0cSBram Moolenaar  call assert_equal(["fooSLASHbar"], readfile("Xfile2"))
96e77df2dSBram Moolenaar  call delete('Xfile1')
106e77df2dSBram Moolenaar  call delete('Xfile2')
11292eff0cSBram Moolenaarendfunction
127580849dSBram Moolenaar
137580849dSBram Moolenaarfunc Test_edit_bad()
147580849dSBram Moolenaar  " Test loading a utf8 file with bad utf8 sequences.
157580849dSBram Moolenaar  call writefile(["[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]"], "Xfile")
167580849dSBram Moolenaar  new
177580849dSBram Moolenaar
187580849dSBram Moolenaar  " Without ++bad=..., the default behavior is like ++bad=?
197580849dSBram Moolenaar  e! ++enc=utf8 Xfile
207580849dSBram Moolenaar  call assert_equal('[?][?][???][??]', getline(1))
217580849dSBram Moolenaar
22818fc9adSBram Moolenaar  e! ++encoding=utf8 ++bad=_ Xfile
237580849dSBram Moolenaar  call assert_equal('[_][_][___][__]', getline(1))
247580849dSBram Moolenaar
257580849dSBram Moolenaar  e! ++enc=utf8 ++bad=drop Xfile
267580849dSBram Moolenaar  call assert_equal('[][][][]', getline(1))
277580849dSBram Moolenaar
287580849dSBram Moolenaar  e! ++enc=utf8 ++bad=keep Xfile
297580849dSBram Moolenaar  call assert_equal("[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]", getline(1))
307580849dSBram Moolenaar
317580849dSBram Moolenaar  call assert_fails('e! ++enc=utf8 ++bad=foo Xfile', 'E474:')
327580849dSBram Moolenaar
337580849dSBram Moolenaar  bw!
347580849dSBram Moolenaar  call delete('Xfile')
357580849dSBram Moolenaarendfunc
36f0cee197SBram Moolenaar
37f0cee197SBram Moolenaar" Test for ++bin and ++nobin arguments
38f0cee197SBram Moolenaarfunc Test_binary_arg()
39f0cee197SBram Moolenaar  new
40f0cee197SBram Moolenaar  edit ++bin Xfile1
41f0cee197SBram Moolenaar  call assert_equal(1, &binary)
42f0cee197SBram Moolenaar  edit ++nobin Xfile2
43f0cee197SBram Moolenaar  call assert_equal(0, &binary)
44f0cee197SBram Moolenaar  call assert_fails('edit ++binabc Xfile3', 'E474:')
45f0cee197SBram Moolenaar  close!
46f0cee197SBram Moolenaarendfunc
47f0cee197SBram Moolenaar
48f0cee197SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
49