Mercurial adapter improvements (patch #1199 by Pierre Paysant-Le Roux).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1499 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2008-06-07 09:19:50 +00:00
parent a6da479a63
commit aa9d04a4a7
6 changed files with 181 additions and 79 deletions
+49
View File
@@ -0,0 +1,49 @@
require File.dirname(__FILE__) + '/../test_helper'
begin
require 'mocha'
class MercurialAdapterTest < Test::Unit::TestCase
TEMPLATES_DIR = "#{RAILS_ROOT}/extra/mercurial"
TEMPLATE_NAME = "hg-template"
TEMPLATE_EXTENSION = "tmpl"
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
def test_version_template_0_9_5
# 0.9.5
test_version_template_for("0.9.5", [0,9,5], "0.9.5")
end
def test_version_template_1_0
# 1.0
test_version_template_for("1.0", [1,0], "1.0")
end
def test_version_template_1_0_win
test_version_template_for("1e4ddc9ac9f7+20080325", "Unknown version", "1.0")
end
def test_version_template_1_0_1_win
test_version_template_for("1.0.1+20080525", [1,0,1], "1.0")
end
def test_version_template_changeset_id
test_version_template_for("1916e629a29d", "Unknown version", "1.0")
end
private
def test_version_template_for(hgversion, version, templateversion)
Redmine::Scm::Adapters::MercurialAdapter.any_instance.stubs(:hgversion_from_command_line).returns(hgversion)
adapter = Redmine::Scm::Adapters::MercurialAdapter.new(REPOSITORY_PATH)
assert_equal version, adapter.hgversion
assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{templateversion}.#{TEMPLATE_EXTENSION}", adapter.template_path
assert File.exist?(adapter.template_path)
end
end
rescue LoadError
def test_fake; assert(false, "Requires mocha to run those tests") end
end
+20
View File
@@ -48,6 +48,26 @@ class RepositoryMercurialTest < Test::Unit::TestCase
@repository.fetch_changesets
assert_equal 6, @repository.changesets.count
end
def test_entries
assert_equal 2, @repository.entries("sources", 2).size
assert_equal 1, @repository.entries("sources", 3).size
end
def test_locate_on_outdated_repository
# Change the working dir state
%x{hg -R #{REPOSITORY_PATH} up -r 0}
assert_equal 1, @repository.entries("images", 0).size
assert_equal 2, @repository.entries("images").size
assert_equal 2, @repository.entries("images", 2).size
end
def test_cat
assert @repository.scm.cat("sources/welcome_controller.rb", 2)
assert_nil @repository.scm.cat("sources/welcome_controller.rb")
end
else
puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end