Mercurial > hg > soundsoftware-site
diff test/unit/repository_mercurial_test.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | cbce1fd3b1b7 |
children | 5e80956cc792 433d4f72a19b |
line wrap: on
line diff
--- a/test/unit/repository_mercurial_test.rb Fri Feb 24 18:36:29 2012 +0000 +++ b/test/unit/repository_mercurial_test.rb Fri Feb 24 19:09:32 2012 +0000 @@ -20,13 +20,11 @@ class RepositoryMercurialTest < ActiveSupport::TestCase fixtures :projects - # No '..' in the repository path - REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository' - + REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s + NUM_REV = 32 CHAR_1_HEX = "\xc3\x9c" if File.directory?(REPOSITORY_PATH) - def setup klass = Repository::Mercurial assert_equal "Mercurial", klass.scm_name @@ -34,7 +32,7 @@ assert_not_equal "", klass.scm_command assert_equal true, klass.scm_available - @project = Project.find(3) + @project = Project.find(3) @repository = Repository::Mercurial.create( :project => @project, :url => REPOSITORY_PATH, @@ -54,38 +52,47 @@ end def test_fetch_changesets_from_scratch + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload - assert_equal 29, @repository.changesets.count - assert_equal 37, @repository.changes.count + @project.reload + assert_equal NUM_REV, @repository.changesets.count + assert_equal 46, @repository.changes.count assert_equal "Initial import.\nThe repository contains 3 files.", @repository.changesets.find_by_revision('0').comments end def test_fetch_changesets_incremental + assert_equal 0, @repository.changesets.count @repository.fetch_changesets + @project.reload + assert_equal NUM_REV, @repository.changesets.count # Remove changesets with revision > 2 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2} - @repository.reload + @project.reload assert_equal 3, @repository.changesets.count @repository.fetch_changesets - assert_equal 29, @repository.changesets.count + @project.reload + assert_equal NUM_REV, @repository.changesets.count end def test_isodatesec # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher if @repository.scm.class.client_version_above?([1, 0]) + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52) assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on end end def test_changeset_order_by_revision + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count c0 = @repository.latest_changeset c1 = @repository.changesets.find_by_revision('0') @@ -95,24 +102,26 @@ end def test_latest_changesets + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count # with_limit changesets = @repository.latest_changesets('', nil, 2) - assert_equal %w|28 27|, changesets.collect(&:revision) + assert_equal %w|31 30|, changesets.collect(&:revision) # with_filepath changesets = @repository.latest_changesets( '/sql_escape/percent%dir/percent%file1.txt', nil) - assert_equal %w|11 10 9|, changesets.collect(&:revision) + assert_equal %w|30 11 10 9|, changesets.collect(&:revision) changesets = @repository.latest_changesets( '/sql_escape/underscore_dir/understrike_file.txt', nil) - assert_equal %w|12 9|, changesets.collect(&:revision) + assert_equal %w|30 12 9|, changesets.collect(&:revision) changesets = @repository.latest_changesets('README', nil) - assert_equal %w|28 17 8 6 1 0|, changesets.collect(&:revision) + assert_equal %w|31 30 28 17 8 6 1 0|, changesets.collect(&:revision) changesets = @repository.latest_changesets('README','8') assert_equal %w|8 6 1 0|, changesets.collect(&:revision) @@ -126,7 +135,7 @@ path = 'sql_escape/percent%dir' changesets = @repository.latest_changesets(path, nil) - assert_equal %w|13 11 10 9|, changesets.collect(&:revision) + assert_equal %w|30 13 11 10 9|, changesets.collect(&:revision) changesets = @repository.latest_changesets(path, '11') assert_equal %w|11 10 9|, changesets.collect(&:revision) @@ -136,7 +145,7 @@ path = 'sql_escape/underscore_dir' changesets = @repository.latest_changesets(path, nil) - assert_equal %w|13 12 9|, changesets.collect(&:revision) + assert_equal %w|30 13 12 9|, changesets.collect(&:revision) changesets = @repository.latest_changesets(path, '12') assert_equal %w|12 9|, changesets.collect(&:revision) @@ -158,16 +167,20 @@ assert_equal %w|4 3|, changesets.collect(&:revision) # named branch - changesets = @repository.latest_changesets('', @branch_char_1) - assert_equal %w|27 26|, changesets.collect(&:revision) + if @repository.scm.class.client_version_above?([1, 6]) + changesets = @repository.latest_changesets('', @branch_char_1) + assert_equal %w|27 26|, changesets.collect(&:revision) + end changesets = @repository.latest_changesets("latin-1-dir/test-#{@char_1}-subdir", @branch_char_1) assert_equal %w|27|, changesets.collect(&:revision) end def test_copied_files + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count cs1 = @repository.changesets.find_by_revision('13') assert_not_nil cs1 @@ -202,41 +215,69 @@ end def test_find_changeset_by_name + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count %w|2 400bb8672109 400|.each do |r| assert_equal '2', @repository.find_changeset_by_name(r).revision end end def test_find_changeset_by_invalid_name + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count assert_nil @repository.find_changeset_by_name('100000') end def test_identifier + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count c = @repository.changesets.find_by_revision('2') assert_equal c.scmid, c.identifier end def test_format_identifier + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count c = @repository.changesets.find_by_revision('2') assert_equal '2:400bb8672109', c.format_identifier end def test_find_changeset_by_empty_name + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count ['', ' ', nil].each do |r| assert_nil @repository.find_changeset_by_name(r) end end + def test_parents + assert_equal 0, @repository.changesets.count + @repository.fetch_changesets + @project.reload + assert_equal NUM_REV, @repository.changesets.count + r1 = @repository.changesets.find_by_revision('0') + assert_equal [], r1.parents + r2 = @repository.changesets.find_by_revision('1') + assert_equal 1, r2.parents.length + assert_equal "0885933ad4f6", + r2.parents[0].identifier + r3 = @repository.changesets.find_by_revision('30') + assert_equal 2, r3.parents.length + r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort + assert_equal "3a330eb32958", r4[0] + assert_equal "a94b0528f24f", r4[1] + end + def test_activities c = Changeset.new(:repository => @repository, :committed_on => Time.now, @@ -248,8 +289,10 @@ end def test_previous + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count %w|28 3ae45e2d177d 3ae45|.each do |r1| changeset = @repository.find_changeset_by_name(r1) %w|27 7bbf4c738e71 7bbf|.each do |r2| @@ -259,8 +302,10 @@ end def test_previous_nil + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count %w|0 0885933ad4f6 0885|.each do |r1| changeset = @repository.find_changeset_by_name(r1) assert_nil changeset.previous @@ -268,8 +313,10 @@ end def test_next + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count %w|27 7bbf4c738e71 7bbf|.each do |r2| changeset = @repository.find_changeset_by_name(r2) %w|28 3ae45e2d177d 3ae45|.each do |r1| @@ -279,9 +326,11 @@ end def test_next_nil + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload - %w|28 3ae45e2d177d 3ae45|.each do |r1| + @project.reload + assert_equal NUM_REV, @repository.changesets.count + %w|31 31eeee7395c8 31eee|.each do |r1| changeset = @repository.find_changeset_by_name(r1) assert_nil changeset.next end