Permalink
Browse files

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 #2972)
  • Loading branch information...
brammool committed Jul 3, 2018
1 parent 3d1d647 commit b2e0c94a4d27e3e6222d26f13e0418a85cab21a2
Showing with 56 additions and 0 deletions.
  1. +54 −0 src/testdir/test_cd.vim
  2. +2 −0 src/version.c
@@ -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
@@ -789,6 +789,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
144,
/**/
143,
/**/

0 comments on commit b2e0c94

Please sign in to comment.