Mercurial > hg > soundsoftware-site
comparison test/unit/repository_mercurial_test.rb @ 245:051f544170fe
* Update to SVN trunk revision 4993
author | Chris Cannam |
---|---|
date | Thu, 03 Mar 2011 11:42:28 +0000 |
parents | 8661b858af72 |
children | eeebe205a056 cbce1fd3b1b7 |
comparison
equal
deleted
inserted
replaced
244:8972b600f4fb | 245:051f544170fe |
---|---|
20 class RepositoryMercurialTest < ActiveSupport::TestCase | 20 class RepositoryMercurialTest < ActiveSupport::TestCase |
21 fixtures :projects | 21 fixtures :projects |
22 | 22 |
23 # No '..' in the repository path | 23 # No '..' in the repository path |
24 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository' | 24 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository' |
25 | 25 |
26 def setup | 26 def setup |
27 @project = Project.find(1) | 27 @project = Project.find(3) |
28 assert @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH) | 28 @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH) |
29 assert @repository | |
29 end | 30 end |
30 | 31 |
31 if File.directory?(REPOSITORY_PATH) | 32 if File.directory?(REPOSITORY_PATH) |
32 def test_fetch_changesets_from_scratch | 33 def test_fetch_changesets_from_scratch |
33 @repository.fetch_changesets | 34 @repository.fetch_changesets |
34 @repository.reload | 35 @repository.reload |
35 | |
36 assert_equal 17, @repository.changesets.count | 36 assert_equal 17, @repository.changesets.count |
37 assert_equal 25, @repository.changes.count | 37 assert_equal 25, @repository.changes.count |
38 assert_equal "Initial import.\nThe repository contains 3 files.", | 38 assert_equal "Initial import.\nThe repository contains 3 files.", |
39 @repository.changesets.find_by_revision('0').comments | 39 @repository.changesets.find_by_revision('0').comments |
40 end | 40 end |
41 | 41 |
42 def test_fetch_changesets_incremental | 42 def test_fetch_changesets_incremental |
43 @repository.fetch_changesets | 43 @repository.fetch_changesets |
44 # Remove changesets with revision > 2 | 44 # Remove changesets with revision > 2 |
45 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2} | 45 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2} |
46 @repository.reload | 46 @repository.reload |
47 assert_equal 3, @repository.changesets.count | 47 assert_equal 3, @repository.changesets.count |
48 | 48 |
49 @repository.fetch_changesets | 49 @repository.fetch_changesets |
50 assert_equal 17, @repository.changesets.count | 50 assert_equal 17, @repository.changesets.count |
51 end | |
52 | |
53 def test_entries | |
54 assert_equal 2, @repository.entries("sources", 2).size | |
55 assert_equal 2, @repository.entries("sources", '400bb8672109').size | |
56 assert_equal 1, @repository.entries("sources", 3).size | |
57 assert_equal 1, @repository.entries("sources", 'b3a615152df8').size | |
58 end | |
59 | |
60 def test_locate_on_outdated_repository | |
61 assert_equal 1, @repository.entries("images", 0).size | |
62 assert_equal 2, @repository.entries("images").size | |
63 assert_equal 2, @repository.entries("images", 2).size | |
64 end | 51 end |
65 | 52 |
66 def test_isodatesec | 53 def test_isodatesec |
67 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher | 54 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher |
68 if @repository.scm.class.client_version_above?([1, 0]) | 55 if @repository.scm.class.client_version_above?([1, 0]) |
169 :scmid => 'abc400bb8672', | 156 :scmid => 'abc400bb8672', |
170 :comments => 'test') | 157 :comments => 'test') |
171 assert c.event_title.include?('123:abc400bb8672:') | 158 assert c.event_title.include?('123:abc400bb8672:') |
172 assert_equal 'abc400bb8672', c.event_url[:rev] | 159 assert_equal 'abc400bb8672', c.event_url[:rev] |
173 end | 160 end |
161 | |
162 def test_latest_changesets_with_limit | |
163 @repository.fetch_changesets | |
164 @repository.reload | |
165 changesets = @repository.latest_changesets('', nil, 2) | |
166 assert_equal @repository.latest_changesets('', nil)[0, 2], changesets | |
167 end | |
168 | |
169 def test_latest_changesets_with_filepath | |
170 @repository.fetch_changesets | |
171 @repository.reload | |
172 changesets = @repository.latest_changesets('README', nil) | |
173 assert_equal %w|8 6 1 0|, changesets.collect(&:revision) | |
174 | |
175 path = 'sql_escape/percent%dir/percent%file1.txt' | |
176 changesets = @repository.latest_changesets(path, nil) | |
177 assert_equal %w|11 10 9|, changesets.collect(&:revision) | |
178 | |
179 path = 'sql_escape/underscore_dir/understrike_file.txt' | |
180 changesets = @repository.latest_changesets(path, nil) | |
181 assert_equal %w|12 9|, changesets.collect(&:revision) | |
182 end | |
183 | |
184 def test_latest_changesets_with_dirpath | |
185 @repository.fetch_changesets | |
186 @repository.reload | |
187 changesets = @repository.latest_changesets('images', nil) | |
188 assert_equal %w|1 0|, changesets.collect(&:revision) | |
189 | |
190 path = 'sql_escape/percent%dir' | |
191 changesets = @repository.latest_changesets(path, nil) | |
192 assert_equal %w|13 11 10 9|, changesets.collect(&:revision) | |
193 | |
194 path = 'sql_escape/underscore_dir' | |
195 changesets = @repository.latest_changesets(path, nil) | |
196 assert_equal %w|13 12 9|, changesets.collect(&:revision) | |
197 end | |
174 else | 198 else |
175 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" | 199 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" |
176 def test_fake; assert true end | 200 def test_fake; assert true end |
177 end | 201 end |
178 end | 202 end |