diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-07-03 18:36:27 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-07-03 18:36:27 +0200 |
commit | b2e0c94a4d27e3e6222d26f13e0418a85cab21a2 (patch) | |
tree | fcd7e33c758a135e240cdd536715b21cdff458db | |
parent | 3d1d6475f9665660c80cc53a7da2d5450b8b8d08 (diff) |
patch 8.1.0144: the :cd command does not have good test coveragev8.1.0144
Problem: The :cd command does not have good test coverage.
Solution: Add more tests. (Dominique Pelle, closes #2972)
-rw-r--r-- | src/testdir/test_cd.vim | 54 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/testdir/test_cd.vim b/src/testdir/test_cd.vim index e573419bd0..c63f0060f8 100644 --- a/src/testdir/test_cd.vim +++ b/src/testdir/test_cd.vim @@ -8,6 +8,60 @@ endfunc func Test_cd_up_and_down() let path = getcwd() cd .. + call assert_notequal(path, getcwd()) exe 'cd ' . path call assert_equal(path, getcwd()) endfunc + +func Test_cd_no_arg() + if has('unix') + " Test that cd without argument goes to $HOME directory on Unix systems. + let path = getcwd() + cd + call assert_equal($HOME, getcwd()) + call assert_notequal(path, getcwd()) + exe 'cd ' . path + call assert_equal(path, getcwd()) + else + " Test that cd without argument echoes cwd on non-Unix systems. + call assert_match(getcwd(), execute('cd')) + endif +endfunc + +func Test_cd_minus() + " Test the :cd - goes back to the previous directory. + let path = getcwd() + cd .. + let path_dotdot = getcwd() + call assert_notequal(path, path_dotdot) + cd - + call assert_equal(path, getcwd()) + cd - + call assert_equal(path_dotdot, getcwd()) + cd - + call assert_equal(path, getcwd()) +endfunc + +func Test_cd_with_cpo_chdir() + e Xfoo + call setline(1, 'foo') + let path = getcwd() + set cpo+=. + + " :cd should fail when buffer is modified and 'cpo' contains dot. + call assert_fails('cd ..', 'E747:') + call assert_equal(path, getcwd()) + + " :cd with exclamation mark should succeed. + cd! .. + call assert_notequal(path, getcwd()) + + " :cd should succeed when buffer has been written. + w! + exe 'cd ' . path + call assert_equal(path, getcwd()) + + call delete('Xfoo') + set cpo& + bw! +endfunc diff --git a/src/version.c b/src/version.c index 38c77103b6..07e34fc37f 100644 --- a/src/version.c +++ b/src/version.c @@ -790,6 +790,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 144, +/**/ 143, /**/ 142, |