Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 1 | " Test 'autochdir' behavior |
| 2 | |
Bram Moolenaar | 8c5a278 | 2019-08-07 23:07:07 +0200 | [diff] [blame] | 3 | CheckOption autochdir |
Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 4 | |
| 5 | func Test_set_filename() |
Bram Moolenaar | cf1ba35 | 2017-10-27 00:55:04 +0200 | [diff] [blame] | 6 | let cwd = getcwd() |
Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 7 | call test_autochdir() |
| 8 | set acd |
Bram Moolenaar | 2caad3f | 2018-12-16 15:38:02 +0100 | [diff] [blame] | 9 | |
| 10 | let s:li = [] |
| 11 | autocmd DirChanged auto call add(s:li, "autocd") |
| 12 | autocmd DirChanged auto call add(s:li, expand("<afile>")) |
| 13 | |
Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 14 | new |
| 15 | w samples/Xtest |
| 16 | call assert_equal("Xtest", expand('%')) |
| 17 | call assert_equal("samples", substitute(getcwd(), '.*/\(\k*\)', '\1', '')) |
Bram Moolenaar | 2caad3f | 2018-12-16 15:38:02 +0100 | [diff] [blame] | 18 | call assert_equal(["autocd", getcwd()], s:li) |
| 19 | |
Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 20 | bwipe! |
Bram Moolenaar | 2caad3f | 2018-12-16 15:38:02 +0100 | [diff] [blame] | 21 | au! DirChanged |
Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 22 | set noacd |
Bram Moolenaar | 3503d7c | 2019-11-09 20:10:17 +0100 | [diff] [blame] | 23 | call chdir(cwd) |
Bram Moolenaar | 5c71994 | 2016-07-09 23:40:45 +0200 | [diff] [blame] | 24 | call delete('samples/Xtest') |
| 25 | endfunc |
Bram Moolenaar | 6d91bcb | 2020-08-12 18:50:36 +0200 | [diff] [blame] | 26 | |
Bram Moolenaar | dea4a61 | 2021-12-04 22:03:34 +0000 | [diff] [blame] | 27 | func Test_set_filename_other_window() |
Bram Moolenaar | dea4a61 | 2021-12-04 22:03:34 +0000 | [diff] [blame] | 28 | let cwd = getcwd() |
| 29 | call test_autochdir() |
Bram Moolenaar | 6f14da1 | 2022-09-07 21:30:44 +0100 | [diff] [blame] | 30 | call mkdir('Xa', 'R') |
| 31 | call mkdir('Xb', 'R') |
| 32 | call mkdir('Xc', 'R') |
Bram Moolenaar | dea4a61 | 2021-12-04 22:03:34 +0000 | [diff] [blame] | 33 | try |
| 34 | args Xa/aaa.txt Xb/bbb.txt |
| 35 | set acd |
| 36 | let winid = win_getid() |
| 37 | snext |
| 38 | call assert_equal('Xb', substitute(getcwd(), '.*/\([^/]*\)$', '\1', '')) |
| 39 | call win_execute(winid, 'file ' .. cwd .. '/Xc/ccc.txt') |
| 40 | call assert_equal('Xb', substitute(getcwd(), '.*/\([^/]*\)$', '\1', '')) |
| 41 | finally |
| 42 | set noacd |
| 43 | call chdir(cwd) |
Bram Moolenaar | dea4a61 | 2021-12-04 22:03:34 +0000 | [diff] [blame] | 44 | bwipe! aaa.txt |
| 45 | bwipe! bbb.txt |
| 46 | bwipe! ccc.txt |
| 47 | endtry |
| 48 | endfunc |
| 49 | |
Bram Moolenaar | 90c317f | 2021-12-28 13:15:05 +0000 | [diff] [blame] | 50 | func Test_acd_win_execute() |
| 51 | let cwd = getcwd() |
| 52 | set acd |
| 53 | call test_autochdir() |
| 54 | |
Bram Moolenaar | 6f14da1 | 2022-09-07 21:30:44 +0100 | [diff] [blame] | 55 | call mkdir('XacdDir', 'R') |
Bram Moolenaar | 90c317f | 2021-12-28 13:15:05 +0000 | [diff] [blame] | 56 | let winid = win_getid() |
Bram Moolenaar | e7cda97 | 2022-08-29 11:02:59 +0100 | [diff] [blame] | 57 | new XacdDir/file |
| 58 | call assert_match('testdir.XacdDir$', getcwd()) |
Bram Moolenaar | 90c317f | 2021-12-28 13:15:05 +0000 | [diff] [blame] | 59 | cd .. |
| 60 | call assert_match('testdir$', getcwd()) |
| 61 | call win_execute(winid, 'echo') |
| 62 | call assert_match('testdir$', getcwd()) |
| 63 | |
| 64 | bwipe! |
| 65 | set noacd |
| 66 | call chdir(cwd) |
Bram Moolenaar | 90c317f | 2021-12-28 13:15:05 +0000 | [diff] [blame] | 67 | endfunc |
| 68 | |
Bram Moolenaar | 0526815 | 2021-11-18 18:53:45 +0000 | [diff] [blame] | 69 | func Test_verbose_pwd() |
| 70 | let cwd = getcwd() |
| 71 | call test_autochdir() |
| 72 | |
| 73 | edit global.txt |
| 74 | call assert_match('\[global\].*testdir$', execute('verbose pwd')) |
| 75 | |
Bram Moolenaar | 6f14da1 | 2022-09-07 21:30:44 +0100 | [diff] [blame] | 76 | call mkdir('Xautodir', 'R') |
Bram Moolenaar | 0526815 | 2021-11-18 18:53:45 +0000 | [diff] [blame] | 77 | split Xautodir/local.txt |
| 78 | lcd Xautodir |
| 79 | call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd')) |
| 80 | |
| 81 | set acd |
| 82 | wincmd w |
| 83 | call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) |
zeertzjq | 64be6aa | 2021-11-19 11:59:08 +0000 | [diff] [blame] | 84 | execute 'tcd' cwd |
| 85 | call assert_match('\[tabpage\].*testdir$', execute('verbose pwd')) |
| 86 | execute 'cd' cwd |
| 87 | call assert_match('\[global\].*testdir$', execute('verbose pwd')) |
zeertzjq | b29ae15 | 2022-03-05 17:00:31 +0000 | [diff] [blame] | 88 | execute 'lcd' cwd |
| 89 | call assert_match('\[window\].*testdir$', execute('verbose pwd')) |
zeertzjq | 64be6aa | 2021-11-19 11:59:08 +0000 | [diff] [blame] | 90 | edit |
| 91 | call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) |
zeertzjq | b29ae15 | 2022-03-05 17:00:31 +0000 | [diff] [blame] | 92 | enew |
| 93 | wincmd w |
| 94 | call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) |
| 95 | wincmd w |
| 96 | call assert_match('\[window\].*testdir$', execute('verbose pwd')) |
Bram Moolenaar | 0526815 | 2021-11-18 18:53:45 +0000 | [diff] [blame] | 97 | wincmd w |
| 98 | call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) |
| 99 | set noacd |
| 100 | call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) |
| 101 | wincmd w |
zeertzjq | b29ae15 | 2022-03-05 17:00:31 +0000 | [diff] [blame] | 102 | call assert_match('\[window\].*testdir$', execute('verbose pwd')) |
Bram Moolenaar | dea4a61 | 2021-12-04 22:03:34 +0000 | [diff] [blame] | 103 | execute 'cd' cwd |
zeertzjq | b29ae15 | 2022-03-05 17:00:31 +0000 | [diff] [blame] | 104 | call assert_match('\[global\].*testdir$', execute('verbose pwd')) |
Bram Moolenaar | 0526815 | 2021-11-18 18:53:45 +0000 | [diff] [blame] | 105 | wincmd w |
| 106 | call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd')) |
| 107 | |
| 108 | bwipe! |
| 109 | call chdir(cwd) |
Bram Moolenaar | 0526815 | 2021-11-18 18:53:45 +0000 | [diff] [blame] | 110 | endfunc |
| 111 | |
Bram Moolenaar | 5921aeb | 2022-02-19 11:20:12 +0000 | [diff] [blame] | 112 | func Test_multibyte() |
| 113 | " using an invalid character should not cause a crash |
| 114 | set wic |
Bram Moolenaar | adbb383 | 2022-02-19 14:49:51 +0000 | [diff] [blame] | 115 | call assert_fails('tc û¦*', has('win32') ? 'E480:' : 'E344:') |
Bram Moolenaar | 5921aeb | 2022-02-19 11:20:12 +0000 | [diff] [blame] | 116 | set nowic |
| 117 | endfunc |
| 118 | |
| 119 | |
Bram Moolenaar | 6d91bcb | 2020-08-12 18:50:36 +0200 | [diff] [blame] | 120 | " vim: shiftwidth=2 sts=2 expandtab |