summaryrefslogtreecommitdiff
path: root/test/lisp/shell-tests.el
diff options
context:
space:
mode:
Diffstat (limited to 'test/lisp/shell-tests.el')
-rw-r--r--test/lisp/shell-tests.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/lisp/shell-tests.el b/test/lisp/shell-tests.el
index 58e9bd29c70..9bdf6b1c0eb 100644
--- a/test/lisp/shell-tests.el
+++ b/test/lisp/shell-tests.el
@@ -64,4 +64,35 @@
(should (equal (split-string-shell-command "ls /tmp/foo\\ bar")
'("ls" "/tmp/foo bar")))))
+(ert-deftest shell-dirtrack-on-by-default ()
+ (with-temp-buffer
+ (shell-mode)
+ (should shell-dirtrack-mode)))
+
+(ert-deftest shell-dirtrack-should-not-be-on-in-unrelated-modes ()
+ (with-temp-buffer
+ (should (not shell-dirtrack-mode))))
+
+(ert-deftest shell-dirtrack-sets-list-buffers-directory ()
+ (let ((start-dir default-directory))
+ (with-temp-buffer
+ (should-not list-buffers-directory)
+ (shell-mode)
+ (shell-cd "..")
+ (should list-buffers-directory)
+ (should (not (equal start-dir list-buffers-directory)))
+ (should (string-prefix-p list-buffers-directory start-dir)))))
+
+(ert-deftest shell-directory-tracker-cd ()
+ (let ((start-dir default-directory))
+ (with-temp-buffer
+ (should-not list-buffers-directory)
+ (shell-mode)
+ (cl-letf (((symbol-function 'shell-unquote-argument)
+ (lambda (x) x)))
+ (shell-directory-tracker "cd .."))
+ (should list-buffers-directory)
+ (should (not (equal start-dir list-buffers-directory)))
+ (should (string-prefix-p list-buffers-directory start-dir)))))
+
;;; shell-tests.el ends here