aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/shell_test.rb
diff options
context:
space:
mode:
authorMarkus Reiter2016-11-13 22:00:15 +0100
committerMarkus Reiter2016-11-16 23:52:38 +0100
commit7457af2b231528e1287281f6cfe651600d5f3f5d (patch)
tree0da872ad2906fad53f176e05056181e0c6ccceaa /Library/Homebrew/test/shell_test.rb
parent9dc1f8f3cd405bc299eb688075687f951afd3e13 (diff)
downloadbrew-7457af2b231528e1287281f6cfe651600d5f3f5d.tar.bz2
Move test files back directly to `test/`.
Diffstat (limited to 'Library/Homebrew/test/shell_test.rb')
-rw-r--r--Library/Homebrew/test/shell_test.rb59
1 files changed, 59 insertions, 0 deletions
diff --git a/Library/Homebrew/test/shell_test.rb b/Library/Homebrew/test/shell_test.rb
new file mode 100644
index 000000000..877acb5c8
--- /dev/null
+++ b/Library/Homebrew/test/shell_test.rb
@@ -0,0 +1,59 @@
+require "testing_env"
+require "utils/shell"
+
+class ShellSmokeTest < Homebrew::TestCase
+ def test_path_to_shell
+ # raw command name
+ assert_equal :bash, Utils::Shell.path_to_shell("bash")
+ # full path
+ assert_equal :bash, Utils::Shell.path_to_shell("/bin/bash")
+ # versions
+ assert_equal :zsh, Utils::Shell.path_to_shell("zsh-5.2")
+ # strip newline too
+ assert_equal :zsh, Utils::Shell.path_to_shell("zsh-5.2\n")
+ end
+
+ def test_path_to_shell_failure
+ assert_equal nil, Utils::Shell.path_to_shell("")
+ assert_equal nil, Utils::Shell.path_to_shell("@@@@@@")
+ assert_equal nil, Utils::Shell.path_to_shell("invalid_shell-4.2")
+ end
+
+ def test_sh_quote
+ assert_equal "''", Utils::Shell.sh_quote("")
+ assert_equal "\\\\", Utils::Shell.sh_quote("\\")
+ assert_equal "'\n'", Utils::Shell.sh_quote("\n")
+ assert_equal "\\$", Utils::Shell.sh_quote("$")
+ assert_equal "word", Utils::Shell.sh_quote("word")
+ end
+
+ def test_csh_quote
+ assert_equal "''", Utils::Shell.csh_quote("")
+ assert_equal "\\\\", Utils::Shell.csh_quote("\\")
+ # note this test is different than for sh
+ assert_equal "'\\\n'", Utils::Shell.csh_quote("\n")
+ assert_equal "\\$", Utils::Shell.csh_quote("$")
+ assert_equal "word", Utils::Shell.csh_quote("word")
+ end
+
+ def prepend_path_shell(shell, path, fragment)
+ original_shell = ENV["SHELL"]
+ ENV["SHELL"] = shell
+
+ prepend_message = Utils::Shell.prepend_path_in_shell_profile(path)
+ assert(
+ prepend_message.start_with?(fragment),
+ "#{shell}: expected #{prepend_message} to match #{fragment}"
+ )
+
+ ENV["SHELL"] = original_shell
+ end
+
+ def test_prepend_path_in_shell_profile
+ prepend_path_shell "/bin/tcsh", "/path", "echo 'setenv PATH /path"
+
+ prepend_path_shell "/bin/bash", "/path", "echo 'export PATH=\"/path"
+
+ prepend_path_shell "/usr/local/bin/fish", "/path", "echo 'set -g fish_user_paths \"/path\" $fish_user_paths' >>"
+ end
+end