aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-08-26 21:20:22 +0200
committerGitHub <noreply@github.com>2018-08-26 21:20:22 +0200
commitcd1d9d8a7cd70f1413875c376edc4194b66c681d (patch)
tree266209f22c69e45430c13ecf179e02a21653470c
parentfa285bde45d0a1230c2f5aae5b80d7e9271a1a96 (diff)
parent246fa3e81dbece622c8c244e383d21db8a332523 (diff)
downloadrneovim-cd1d9d8a7cd70f1413875c376edc4194b66c681d.tar.gz
rneovim-cd1d9d8a7cd70f1413875c376edc4194b66c681d.tar.bz2
rneovim-cd1d9d8a7cd70f1413875c376edc4194b66c681d.zip
Merge #8916 from janlazo/vim-8.1.0144
-rw-r--r--src/nvim/testdir/test_cd.vim54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_cd.vim b/src/nvim/testdir/test_cd.vim
index e573419bd0..770ed55b8d 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