Skip to content
Snippets Groups Projects
Unverified Commit 00f37d67 authored by Vlad Shablinsky's avatar Vlad Shablinsky Committed by Xu Cheng
Browse files

Apply and add new download strategy tests

parent 5ddee350
No related branches found
No related tags found
No related merge requests found
......@@ -69,7 +69,6 @@ class GitDownloadStrategyTests < Homebrew::TestCase
@strategy = GitDownloadStrategy.new("baz", resource)
@cached_location = @strategy.cached_location
mkpath @cached_location
touch @cached_location/"README"
end
def teardown
......@@ -84,30 +83,39 @@ class GitDownloadStrategyTests < Homebrew::TestCase
end
end
def inside_repo_using_git_env
def using_git_env
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
@cached_location.cd do
yield
end
yield
ensure
ENV.replace(initial_env)
end
def setup_git_repo
inside_repo_using_git_env do
shutup do
system "git", "init"
system "git", "remote", "add", "origin", "https://github.com/Homebrew/homebrew-foo"
using_git_env do
@cached_location.cd do
shutup do
system "git", "init"
system "git", "remote", "add", "origin", "https://github.com/Homebrew/homebrew-foo"
end
touch "README"
git_commit_all
end
git_commit_all
end
end
def test_github_git_download_strategy_user_repo
resource = ResourceDouble.new("https://github.com/homebrew/brew.git")
strategy = GitHubGitDownloadStrategy.new("brew", resource)
assert_equal strategy.instance_variable_get(:@user), "homebrew"
assert_equal strategy.instance_variable_get(:@repo), "brew"
end
def test_source_modified_time
setup_git_repo
assert_equal 1242860651, @strategy.source_modified_time.to_i
......@@ -115,12 +123,41 @@ class GitDownloadStrategyTests < Homebrew::TestCase
def test_last_commit
setup_git_repo
inside_repo_using_git_env do
touch "LICENSE"
git_commit_all
using_git_env do
@cached_location.cd do
touch "LICENSE"
git_commit_all
end
end
assert_equal "c50c79b", @strategy.last_commit
end
def test_fetch_last_commit
remote_repo = HOMEBREW_PREFIX.join("remote_repo")
remote_repo.mkdir
resource = ResourceDouble.new("file://#{remote_repo}")
resource.instance_variable_set(:@version, Version.create("HEAD"))
@strategy = GitDownloadStrategy.new("baz", resource)
using_git_env do
remote_repo.cd do
shutup do
system "git", "init"
system "git", "remote", "add", "origin", "https://github.com/Homebrew/homebrew-foo"
end
touch "README"
git_commit_all
touch "LICENSE"
git_commit_all
end
end
@strategy.shutup!
assert_equal "c50c79b", @strategy.fetch_last_commit
ensure
remote_repo.rmtree if remote_repo.directory?
end
end
class DownloadStrategyDetectorTests < Homebrew::TestCase
......@@ -133,6 +170,11 @@ class DownloadStrategyDetectorTests < Homebrew::TestCase
assert_equal GitDownloadStrategy, @d
end
def test_detect_github_git_download_strategy
@d = DownloadStrategyDetector.detect("https://github.com/homebrew/brew.git")
assert_equal GitHubGitDownloadStrategy, @d
end
def test_default_to_curl_strategy
@d = DownloadStrategyDetector.detect(Object.new)
assert_equal CurlDownloadStrategy, @d
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment