Bram Moolenaar | 292eff0 | 2017-07-11 21:46:28 +0200 | [diff] [blame] | 1 | " Tests for complicated + argument to :edit command |
Bram Moolenaar | 6d91bcb | 2020-08-12 18:50:36 +0200 | [diff] [blame] | 2 | |
Bram Moolenaar | 292eff0 | 2017-07-11 21:46:28 +0200 | [diff] [blame] | 3 | function Test_edit() |
Bram Moolenaar | 145d1fd | 2022-09-30 21:57:11 +0100 | [diff] [blame] | 4 | call writefile(["foo|bar"], "Xfile1", 'D') |
| 5 | call writefile(["foo/bar"], "Xfile2", 'D') |
Bram Moolenaar | 292eff0 | 2017-07-11 21:46:28 +0200 | [diff] [blame] | 6 | edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w |
| 7 | call assert_equal(["fooPIPEbar"], readfile("Xfile1")) |
| 8 | call assert_equal(["fooSLASHbar"], readfile("Xfile2")) |
Bram Moolenaar | 292eff0 | 2017-07-11 21:46:28 +0200 | [diff] [blame] | 9 | endfunction |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 10 | |
| 11 | func Test_edit_bad() |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 12 | " Test loading a utf8 file with bad utf8 sequences. |
Bram Moolenaar | 145d1fd | 2022-09-30 21:57:11 +0100 | [diff] [blame] | 13 | call writefile(["[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]"], "Xbadfile", 'D') |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 14 | new |
| 15 | |
| 16 | " Without ++bad=..., the default behavior is like ++bad=? |
Bram Moolenaar | b18b496 | 2022-09-02 21:55:50 +0100 | [diff] [blame] | 17 | e! ++enc=utf8 Xbadfile |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 18 | call assert_equal('[?][?][???][??]', getline(1)) |
| 19 | |
Bram Moolenaar | b18b496 | 2022-09-02 21:55:50 +0100 | [diff] [blame] | 20 | e! ++encoding=utf8 ++bad=_ Xbadfile |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 21 | call assert_equal('[_][_][___][__]', getline(1)) |
| 22 | |
Bram Moolenaar | b18b496 | 2022-09-02 21:55:50 +0100 | [diff] [blame] | 23 | e! ++enc=utf8 ++bad=drop Xbadfile |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 24 | call assert_equal('[][][][]', getline(1)) |
| 25 | |
Bram Moolenaar | b18b496 | 2022-09-02 21:55:50 +0100 | [diff] [blame] | 26 | e! ++enc=utf8 ++bad=keep Xbadfile |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 27 | call assert_equal("[\xff][\xc0][\xe2\x89\xf0][\xc2\xc2]", getline(1)) |
| 28 | |
Bram Moolenaar | b18b496 | 2022-09-02 21:55:50 +0100 | [diff] [blame] | 29 | call assert_fails('e! ++enc=utf8 ++bad=foo Xbadfile', 'E474:') |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 30 | |
| 31 | bw! |
Bram Moolenaar | 7580849 | 2018-06-12 12:39:41 +0200 | [diff] [blame] | 32 | endfunc |
Bram Moolenaar | f0cee19 | 2020-02-16 13:33:56 +0100 | [diff] [blame] | 33 | |
| 34 | " Test for ++bin and ++nobin arguments |
| 35 | func Test_binary_arg() |
| 36 | new |
| 37 | edit ++bin Xfile1 |
| 38 | call assert_equal(1, &binary) |
| 39 | edit ++nobin Xfile2 |
| 40 | call assert_equal(0, &binary) |
| 41 | call assert_fails('edit ++binabc Xfile3', 'E474:') |
| 42 | close! |
| 43 | endfunc |
| 44 | |
| 45 | " vim: shiftwidth=2 sts=2 expandtab |