From ff8e239493277b56b3ef866436a9cb1b38bc7b9c Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 26 Aug 2018 09:56:26 -0400 Subject: vim-patch:8.1.0144: the :cd command does not have good test coverage Problem: The :cd command does not have good test coverage. Solution: Add more tests. (Dominique Pelle, closes vim/vim#2972) https://github.com/vim/vim/commit/b2e0c94a4d27e3e6222d26f13e0418a85cab21a2 --- src/nvim/testdir/test_cd.vim | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/nvim/testdir/test_cd.vim b/src/nvim/testdir/test_cd.vim index e573419bd0..c63f0060f8 100644 --- a/src/nvim/testdir/test_cd.vim +++ b/src/nvim/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 -- cgit From 246fa3e81dbece622c8c244e383d21db8a332523 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 26 Aug 2018 14:41:45 -0400 Subject: oldtests: comment out test for 'set cpo+=.' nvim does not support POSIX cpoptions. --- src/nvim/testdir/test_cd.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nvim/testdir/test_cd.vim b/src/nvim/testdir/test_cd.vim index c63f0060f8..770ed55b8d 100644 --- a/src/nvim/testdir/test_cd.vim +++ b/src/nvim/testdir/test_cd.vim @@ -46,10 +46,10 @@ func Test_cd_with_cpo_chdir() e Xfoo call setline(1, 'foo') let path = getcwd() - set cpo+=. + " set cpo+=. " :cd should fail when buffer is modified and 'cpo' contains dot. - call assert_fails('cd ..', 'E747:') + " call assert_fails('cd ..', 'E747:') call assert_equal(path, getcwd()) " :cd with exclamation mark should succeed. -- cgit