diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-06-07 09:19:50 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-06-07 09:19:50 +0000 |
commit | aa9d04a4a7ec1232477f0823a584da49aae11d58 (patch) | |
tree | a9b7932865849c950106b6bee901cb09f3c2a940 /test | |
parent | a6da479a63c9c5add6b6d81adfca99fbaa73d0a7 (diff) | |
download | redmine-aa9d04a4a7ec1232477f0823a584da49aae11d58.tar.gz redmine-aa9d04a4a7ec1232477f0823a584da49aae11d58.zip |
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
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/mercurial_adapter_test.rb | 49 | ||||
-rw-r--r-- | test/unit/repository_mercurial_test.rb | 20 |
2 files changed, 69 insertions, 0 deletions
diff --git a/test/unit/mercurial_adapter_test.rb b/test/unit/mercurial_adapter_test.rb new file mode 100644 index 000000000..b4aaaec61 --- /dev/null +++ b/test/unit/mercurial_adapter_test.rb @@ -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 diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb index 21ddf1e3a..0f993ac16 100644 --- a/test/unit/repository_mercurial_test.rb +++ b/test/unit/repository_mercurial_test.rb @@ -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 |