diff --git a/Library/Homebrew/test/install_test.rb b/Library/Homebrew/test/install_test.rb index 591d659dcb..e047c00303 100644 --- a/Library/Homebrew/test/install_test.rb +++ b/Library/Homebrew/test/install_test.rb @@ -72,6 +72,50 @@ class IntegrationCommandTestInstall < IntegrationCommandTestCase cmd("install", "testball1", "--force") end + def test_install_head_installed + initial_env = ENV.to_hash + %w[AUTHOR COMMITTER].each do |role| + ENV["GIT_#{role}_NAME"] = "brew tests" + ENV["GIT_#{role}_EMAIL"] = "brew-tests@localhost" + ENV["GIT_#{role}_DATE"] = "Thu May 21 00:04:11 2009 +0100" + end + + repo_path = HOMEBREW_CACHE.join("repo") + repo_path.join("bin").mkpath + + repo_path.cd do + shutup do + system "git", "init" + system "git", "remote", "add", "origin", "https://github.com/Homebrew/homebrew-foo" + FileUtils.touch "bin/something.bin" + FileUtils.touch "README" + system "git", "add", "--all" + system "git", "commit", "-m", "Initial repo commit" + end + end + + setup_test_formula "testball1", <<-EOS.undent + version "1.0" + head "file://#{repo_path}", :using => :git + def install + prefix.install Dir["*"] + end + EOS + + # Ignore dependencies, because we'll try to resolve requirements in build.rb + # and there will be the git requirement, but we cannot instantiate git + # formula since we only have testball1 formula. + assert_match "#{HOMEBREW_CELLAR}/testball1/HEAD-2ccdf4f", cmd("install", "testball1", "--HEAD", "--ignore-dependencies") + assert_match "testball1-HEAD-2ccdf4f already installed", + cmd("install", "testball1", "--HEAD", "--ignore-dependencies") + assert_match "#{HOMEBREW_CELLAR}/testball1/HEAD-2ccdf4f", cmd("unlink", "testball1") + assert_match "#{HOMEBREW_CELLAR}/testball1/1.0", cmd("install", "testball1") + + ensure + ENV.replace(initial_env) + repo_path.rmtree + end + def test_install_with_invalid_option setup_test_formula "testball1" assert_match "testball1: this formula has no --with-fo option so it will be ignored!",