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