diff options
| author | Baptiste Fontaine | 2016-01-18 00:55:50 +0100 |
|---|---|---|
| committer | Baptiste Fontaine | 2016-01-20 22:27:13 +0100 |
| commit | c1e673e19a0c02eafb6c24a4ce391b53c2fdbfdc (patch) | |
| tree | 53382007fbb0331272b7341077493615c20d730b /Library/Homebrew/test | |
| parent | b8547eab2c9ed2b75e767993b9a20d5f100ae08f (diff) | |
| download | brew-c1e673e19a0c02eafb6c24a4ce391b53c2fdbfdc.tar.bz2 | |
commands: support .sh commands
Diffstat (limited to 'Library/Homebrew/test')
| -rw-r--r-- | Library/Homebrew/test/test_commands.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_commands.rb b/Library/Homebrew/test/test_commands.rb new file mode 100644 index 000000000..0fb46dd9c --- /dev/null +++ b/Library/Homebrew/test/test_commands.rb @@ -0,0 +1,62 @@ +require "testing_env" +require "cmd/commands" +require "fileutils" + +class CommandsCommandTests < Homebrew::TestCase + def setup + @cmds = [ + # internal commands + HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb", + HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh", + + # internal development commands + HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb", + HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh", + ] + + @cmds.each { |f| FileUtils.touch f } + end + + def teardown + @cmds.each { |f| f.unlink } + end + + def test_internal_commands + cmds = Homebrew.internal_commands + assert cmds.include?("rbcmd"), "Ruby commands files should be recognized" + assert cmds.include?("shcmd"), "Shell commands files should be recognized" + refute cmds.include?("rbdevcmd"), "Dev commands shouldn't be included" + end + + def test_internal_development_commands + cmds = Homebrew.internal_development_commands + assert cmds.include?("rbdevcmd"), "Ruby commands files should be recognized" + assert cmds.include?("shdevcmd"), "Shell commands files should be recognized" + refute cmds.include?("rbcmd"), "Non-dev commands shouldn't be included" + end + + def test_external_commands + env = ENV.to_hash + + mktmpdir do |dir| + %w[brew-t1 brew-t2.rb brew-t3.py].each do |file| + path = "#{dir}/#{file}" + FileUtils.touch path + FileUtils.chmod 0744, path + end + + FileUtils.touch "#{dir}/t4" + + ENV["PATH"] = "#{ENV["PATH"]}#{File::PATH_SEPARATOR}#{dir}" + cmds = Homebrew.external_commands + + assert cmds.include?("t1"), "Executable files should be included" + assert cmds.include?("t2"), "Executable Ruby files should be included" + refute cmds.include?("t3"), + "Executable files with a non Ruby extension shoudn't be included" + refute cmds.include?("t4"), "Non-executable files shouldn't be included" + end + ensure + ENV.replace(env) + end +end |
