comparison test/unit/repository_git_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 433d4f72a19b
comparison
equal deleted inserted replaced
908:c6c2cbd0afee 909:cbb26bc654de
18 require File.expand_path('../../test_helper', __FILE__) 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 class RepositoryGitTest < ActiveSupport::TestCase 20 class RepositoryGitTest < ActiveSupport::TestCase
21 fixtures :projects, :repositories, :enabled_modules, :users, :roles 21 fixtures :projects, :repositories, :enabled_modules, :users, :roles
22 22
23 # No '..' in the repository path 23 REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s
24 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
25 REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin? 24 REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
25
26 NUM_REV = 21
26 27
27 FELIX_HEX = "Felix Sch\xC3\xA4fer" 28 FELIX_HEX = "Felix Sch\xC3\xA4fer"
28 CHAR_1_HEX = "\xc3\x9c" 29 CHAR_1_HEX = "\xc3\x9c"
29 30
30 ## Ruby uses ANSI api to fork a process on Windows. 31 ## Ruby uses ANSI api to fork a process on Windows.
31 ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem 32 ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem
32 ## and these are incompatible with ASCII. 33 ## and these are incompatible with ASCII.
33 # WINDOWS_PASS = Redmine::Platform.mswin? 34 # WINDOWS_PASS = Redmine::Platform.mswin?
34 WINDOWS_PASS = false 35 WINDOWS_PASS = false
36
37 ## Git, Mercurial and CVS path encodings are binary.
38 ## Subversion supports URL encoding for path.
39 ## Redmine Mercurial adapter and extension use URL encoding.
40 ## Git accepts only binary path in command line parameter.
41 ## So, there is no way to use binary command line parameter in JRuby.
42 JRUBY_SKIP = (RUBY_PLATFORM == 'java')
43 JRUBY_SKIP_STR = "TODO: This test fails in JRuby"
35 44
36 if File.directory?(REPOSITORY_PATH) 45 if File.directory?(REPOSITORY_PATH)
37 def setup 46 def setup
38 klass = Repository::Git 47 klass = Repository::Git
39 assert_equal "Git", klass.scm_name 48 assert_equal "Git", klass.scm_name
55 end 64 end
56 65
57 def test_fetch_changesets_from_scratch 66 def test_fetch_changesets_from_scratch
58 assert_nil @repository.extra_info 67 assert_nil @repository.extra_info
59 68
60 @repository.fetch_changesets 69 assert_equal 0, @repository.changesets.count
61 @repository.reload 70 @repository.fetch_changesets
62 71 @project.reload
63 assert_equal 21, @repository.changesets.count 72
73 assert_equal NUM_REV, @repository.changesets.count
64 assert_equal 33, @repository.changes.count 74 assert_equal 33, @repository.changes.count
65 75
66 commit = @repository.changesets.find(:first, :order => 'committed_on ASC') 76 commit = @repository.changesets.find(:first, :order => 'committed_on ASC')
67 assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments 77 assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments
68 assert_equal "jsmith <jsmith@foo.bar>", commit.committer 78 assert_equal "jsmith <jsmith@foo.bar>", commit.committer
79 89
80 assert_equal 4, @repository.extra_info["branches"].size 90 assert_equal 4, @repository.extra_info["branches"].size
81 end 91 end
82 92
83 def test_fetch_changesets_incremental 93 def test_fetch_changesets_incremental
84 @repository.fetch_changesets 94 assert_equal 0, @repository.changesets.count
85 @repository.reload 95 @repository.fetch_changesets
86 assert_equal 21, @repository.changesets.count 96 @project.reload
97 assert_equal NUM_REV, @repository.changesets.count
87 assert_equal 33, @repository.changes.count 98 assert_equal 33, @repository.changes.count
88 extra_info_db = @repository.extra_info["branches"] 99 extra_info_db = @repository.extra_info["branches"]
89 assert_equal 4, extra_info_db.size 100 assert_equal 4, extra_info_db.size
90 assert_equal "1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127", 101 assert_equal "1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127",
91 extra_info_db["latin-1-path-encoding"]["last_scmid"] 102 extra_info_db["latin-1-path-encoding"]["last_scmid"]
101 "7e61ac704deecde634b51e59daa8110435dcb3da", 112 "7e61ac704deecde634b51e59daa8110435dcb3da",
102 ] 113 ]
103 @repository.changesets.each do |rev| 114 @repository.changesets.each do |rev|
104 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s } 115 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s }
105 end 116 end
106 @repository.reload 117 @project.reload
107 cs1 = @repository.changesets 118 cs1 = @repository.changesets
108 assert_equal 15, cs1.count 119 assert_equal 15, cs1.count
109 h = @repository.extra_info.dup 120 h = @repository.extra_info.dup
110 h["branches"]["master"]["last_scmid"] = 121 h["branches"]["master"]["last_scmid"] =
111 "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8" 122 "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8"
112 @repository.merge_extra_info(h) 123 @repository.merge_extra_info(h)
113 @repository.save 124 @repository.save
114 @repository.reload 125 @project.reload
115 extra_info_db_1 = @repository.extra_info["branches"] 126 extra_info_db_1 = @repository.extra_info["branches"]
116 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", 127 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8",
117 extra_info_db_1["master"]["last_scmid"] 128 extra_info_db_1["master"]["last_scmid"]
118 129
119 @repository.fetch_changesets 130 @repository.fetch_changesets
120 assert_equal 21, @repository.changesets.count 131 @project.reload
132 assert_equal NUM_REV, @repository.changesets.count
121 end 133 end
122 134
123 def test_fetch_changesets_invalid_rev 135 def test_fetch_changesets_invalid_rev
124 @repository.fetch_changesets 136 assert_equal 0, @repository.changesets.count
125 @repository.reload 137 @repository.fetch_changesets
126 assert_equal 21, @repository.changesets.count 138 @project.reload
127 assert_equal 33, @repository.changes.count 139 assert_equal NUM_REV, @repository.changesets.count
128 extra_info_db = @repository.extra_info["branches"] 140 extra_info_db = @repository.extra_info["branches"]
129 assert_equal 4, extra_info_db.size 141 assert_equal 4, extra_info_db.size
130 assert_equal "1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127", 142 assert_equal "1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127",
131 extra_info_db["latin-1-path-encoding"]["last_scmid"] 143 extra_info_db["latin-1-path-encoding"]["last_scmid"]
132 assert_equal "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c", 144 assert_equal "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c",
141 "7e61ac704deecde634b51e59daa8110435dcb3da", 153 "7e61ac704deecde634b51e59daa8110435dcb3da",
142 ] 154 ]
143 @repository.changesets.each do |rev| 155 @repository.changesets.each do |rev|
144 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s } 156 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s }
145 end 157 end
146 @repository.reload 158 @project.reload
147 cs1 = @repository.changesets 159 cs1 = @repository.changesets
148 assert_equal 15, cs1.count 160 assert_equal 15, cs1.count
149 h = @repository.extra_info.dup 161 h = @repository.extra_info.dup
150 h["branches"]["master"]["last_scmid"] = 162 h["branches"]["master"]["last_scmid"] =
151 "abcd1234efgh" 163 "abcd1234efgh"
152 @repository.merge_extra_info(h) 164 @repository.merge_extra_info(h)
153 @repository.save 165 @repository.save
154 @repository.reload 166 @project.reload
155 extra_info_db_1 = @repository.extra_info["branches"] 167 extra_info_db_1 = @repository.extra_info["branches"]
156 assert_equal "abcd1234efgh", 168 assert_equal "abcd1234efgh",
157 extra_info_db_1["master"]["last_scmid"] 169 extra_info_db_1["master"]["last_scmid"]
158 170
159 @repository.fetch_changesets 171 @repository.fetch_changesets
172 @project.reload
160 assert_equal 15, @repository.changesets.count 173 assert_equal 15, @repository.changesets.count
174 end
175
176 def test_parents
177 assert_equal 0, @repository.changesets.count
178 @repository.fetch_changesets
179 @project.reload
180 assert_equal NUM_REV, @repository.changesets.count
181 r1 = @repository.find_changeset_by_name("7234cb2750b63")
182 assert_equal [], r1.parents
183 r2 = @repository.find_changeset_by_name("899a15dba03a3")
184 assert_equal 1, r2.parents.length
185 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
186 r2.parents[0].identifier
187 r3 = @repository.find_changeset_by_name("32ae898b720c2")
188 assert_equal 2, r3.parents.length
189 r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort
190 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", r4[0]
191 assert_equal "7e61ac704deecde634b51e59daa8110435dcb3da", r4[1]
161 end 192 end
162 193
163 def test_db_consistent_ordering_init 194 def test_db_consistent_ordering_init
164 assert_nil @repository.extra_info 195 assert_nil @repository.extra_info
165 @repository.fetch_changesets 196 assert_equal 0, @repository.changesets.count
166 @repository.reload 197 @repository.fetch_changesets
198 @project.reload
167 assert_equal 1, @repository.extra_info["db_consistent"]["ordering"] 199 assert_equal 1, @repository.extra_info["db_consistent"]["ordering"]
168 end 200 end
169 201
170 def test_db_consistent_ordering_before_1_2 202 def test_db_consistent_ordering_before_1_2
171 assert_nil @repository.extra_info 203 assert_nil @repository.extra_info
172 @repository.fetch_changesets 204 assert_equal 0, @repository.changesets.count
173 @repository.reload 205 @repository.fetch_changesets
174 assert_equal 21, @repository.changesets.count 206 @project.reload
207 assert_equal NUM_REV, @repository.changesets.count
175 assert_not_nil @repository.extra_info 208 assert_not_nil @repository.extra_info
176 @repository.write_attribute(:extra_info, nil) 209 @repository.write_attribute(:extra_info, nil)
177 @repository.save 210 @repository.save
178 assert_nil @repository.extra_info 211 assert_nil @repository.extra_info
179 assert_equal 21, @repository.changesets.count 212 assert_equal NUM_REV, @repository.changesets.count
180 @repository.fetch_changesets 213 @repository.fetch_changesets
181 @repository.reload 214 @project.reload
182 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"] 215 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"]
183 216
184 del_revs = [ 217 del_revs = [
185 "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c", 218 "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c",
186 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", 219 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b",
190 "7e61ac704deecde634b51e59daa8110435dcb3da", 223 "7e61ac704deecde634b51e59daa8110435dcb3da",
191 ] 224 ]
192 @repository.changesets.each do |rev| 225 @repository.changesets.each do |rev|
193 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s } 226 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s }
194 end 227 end
195 @repository.reload 228 @project.reload
196 cs1 = @repository.changesets 229 cs1 = @repository.changesets
197 assert_equal 15, cs1.count 230 assert_equal 15, cs1.count
198 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"] 231 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"]
199 h = @repository.extra_info.dup 232 h = @repository.extra_info.dup
200 h["branches"]["master"]["last_scmid"] = 233 h["branches"]["master"]["last_scmid"] =
201 "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8" 234 "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8"
202 @repository.merge_extra_info(h) 235 @repository.merge_extra_info(h)
203 @repository.save 236 @repository.save
204 @repository.reload 237 @project.reload
205 extra_info_db_1 = @repository.extra_info["branches"] 238 extra_info_db_1 = @repository.extra_info["branches"]
206 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", 239 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8",
207 extra_info_db_1["master"]["last_scmid"] 240 extra_info_db_1["master"]["last_scmid"]
208 241
209 @repository.fetch_changesets 242 @repository.fetch_changesets
210 assert_equal 21, @repository.changesets.count 243 assert_equal NUM_REV, @repository.changesets.count
211 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"] 244 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"]
212 end 245 end
213 246
214 def test_latest_changesets 247 def test_latest_changesets
215 @repository.fetch_changesets 248 assert_equal 0, @repository.changesets.count
216 @repository.reload 249 @repository.fetch_changesets
250 @project.reload
251 assert_equal NUM_REV, @repository.changesets.count
217 # with limit 252 # with limit
218 changesets = @repository.latest_changesets('', nil, 2) 253 changesets = @repository.latest_changesets('', nil, 2)
219 assert_equal 2, changesets.size 254 assert_equal 2, changesets.size
220 255
221 # with path 256 # with path
306 assert_equal [ 341 assert_equal [
307 '713f4944648826f558cf548222f813dabe7cbb04', 342 '713f4944648826f558cf548222f813dabe7cbb04',
308 '61b685fbe55ab05b5ac68402d5720c1a6ac973d1', 343 '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
309 ], changesets.collect(&:revision) 344 ], changesets.collect(&:revision)
310 345
311 # latin-1 encoding path 346 if JRUBY_SKIP
312 changesets = @repository.latest_changesets( 347 puts JRUBY_SKIP_STR
313 "latin-1-dir/test-#{@char_1}-2.txt", '64f1f3e89') 348 else
314 assert_equal [ 349 # latin-1 encoding path
350 changesets = @repository.latest_changesets(
351 "latin-1-dir/test-#{@char_1}-2.txt", '64f1f3e89')
352 assert_equal [
315 '64f1f3e89ad1cb57976ff0ad99a107012ba3481d', 353 '64f1f3e89ad1cb57976ff0ad99a107012ba3481d',
316 '4fc55c43bf3d3dc2efb66145365ddc17639ce81e', 354 '4fc55c43bf3d3dc2efb66145365ddc17639ce81e',
317 ], changesets.collect(&:revision) 355 ], changesets.collect(&:revision)
318 356
319 changesets = @repository.latest_changesets( 357 changesets = @repository.latest_changesets(
320 "latin-1-dir/test-#{@char_1}-2.txt", '64f1f3e89', 1) 358 "latin-1-dir/test-#{@char_1}-2.txt", '64f1f3e89', 1)
321 assert_equal [ 359 assert_equal [
322 '64f1f3e89ad1cb57976ff0ad99a107012ba3481d', 360 '64f1f3e89ad1cb57976ff0ad99a107012ba3481d',
323 ], changesets.collect(&:revision) 361 ], changesets.collect(&:revision)
362 end
324 end 363 end
325 364
326 def test_latest_changesets_latin_1_dir 365 def test_latest_changesets_latin_1_dir
327 if WINDOWS_PASS 366 if WINDOWS_PASS
328 # 367 #
368 elsif JRUBY_SKIP
369 puts JRUBY_SKIP_STR
329 else 370 else
371 assert_equal 0, @repository.changesets.count
330 @repository.fetch_changesets 372 @repository.fetch_changesets
331 @repository.reload 373 @project.reload
374 assert_equal NUM_REV, @repository.changesets.count
332 changesets = @repository.latest_changesets( 375 changesets = @repository.latest_changesets(
333 "latin-1-dir/test-#{@char_1}-subdir", '1ca7f5ed') 376 "latin-1-dir/test-#{@char_1}-subdir", '1ca7f5ed')
334 assert_equal [ 377 assert_equal [
335 '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', 378 '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127',
336 ], changesets.collect(&:revision) 379 ], changesets.collect(&:revision)
337 end 380 end
338 end 381 end
339 382
340 def test_find_changeset_by_name 383 def test_find_changeset_by_name
341 @repository.fetch_changesets 384 assert_equal 0, @repository.changesets.count
342 @repository.reload 385 @repository.fetch_changesets
386 @project.reload
387 assert_equal NUM_REV, @repository.changesets.count
343 ['7234cb2750b63f47bff735edc50a1c0a433c2518', '7234cb2750b'].each do |r| 388 ['7234cb2750b63f47bff735edc50a1c0a433c2518', '7234cb2750b'].each do |r|
344 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', 389 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518',
345 @repository.find_changeset_by_name(r).revision 390 @repository.find_changeset_by_name(r).revision
346 end 391 end
347 end 392 end
348 393
349 def test_find_changeset_by_empty_name 394 def test_find_changeset_by_empty_name
350 @repository.fetch_changesets 395 assert_equal 0, @repository.changesets.count
351 @repository.reload 396 @repository.fetch_changesets
397 @project.reload
398 assert_equal NUM_REV, @repository.changesets.count
352 ['', ' ', nil].each do |r| 399 ['', ' ', nil].each do |r|
353 assert_nil @repository.find_changeset_by_name(r) 400 assert_nil @repository.find_changeset_by_name(r)
354 end 401 end
355 end 402 end
356 403
357 def test_identifier 404 def test_identifier
358 @repository.fetch_changesets 405 assert_equal 0, @repository.changesets.count
359 @repository.reload 406 @repository.fetch_changesets
407 @project.reload
408 assert_equal NUM_REV, @repository.changesets.count
360 c = @repository.changesets.find_by_revision( 409 c = @repository.changesets.find_by_revision(
361 '7234cb2750b63f47bff735edc50a1c0a433c2518') 410 '7234cb2750b63f47bff735edc50a1c0a433c2518')
362 assert_equal c.scmid, c.identifier 411 assert_equal c.scmid, c.identifier
363 end 412 end
364 413
365 def test_format_identifier 414 def test_format_identifier
366 @repository.fetch_changesets 415 assert_equal 0, @repository.changesets.count
367 @repository.reload 416 @repository.fetch_changesets
417 @project.reload
418 assert_equal NUM_REV, @repository.changesets.count
368 c = @repository.changesets.find_by_revision( 419 c = @repository.changesets.find_by_revision(
369 '7234cb2750b63f47bff735edc50a1c0a433c2518') 420 '7234cb2750b63f47bff735edc50a1c0a433c2518')
370 assert_equal '7234cb27', c.format_identifier 421 assert_equal '7234cb27', c.format_identifier
371 end 422 end
372 423
379 assert c.event_title.include?('abc7234c:') 430 assert c.event_title.include?('abc7234c:')
380 assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev] 431 assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev]
381 end 432 end
382 433
383 def test_log_utf8 434 def test_log_utf8
384 @repository.fetch_changesets 435 assert_equal 0, @repository.changesets.count
385 @repository.reload 436 @repository.fetch_changesets
437 @project.reload
438 assert_equal NUM_REV, @repository.changesets.count
386 str_felix_hex = FELIX_HEX.dup 439 str_felix_hex = FELIX_HEX.dup
387 if str_felix_hex.respond_to?(:force_encoding) 440 if str_felix_hex.respond_to?(:force_encoding)
388 str_felix_hex.force_encoding('UTF-8') 441 str_felix_hex.force_encoding('UTF-8')
389 end 442 end
390 c = @repository.changesets.find_by_revision( 443 c = @repository.changesets.find_by_revision(
391 'ed5bb786bbda2dee66a2d50faf51429dbc043a7b') 444 'ed5bb786bbda2dee66a2d50faf51429dbc043a7b')
392 assert_equal "#{str_felix_hex} <felix@fachschaften.org>", c.committer 445 assert_equal "#{str_felix_hex} <felix@fachschaften.org>", c.committer
393 end 446 end
394 447
395 def test_previous 448 def test_previous
396 @repository.fetch_changesets 449 assert_equal 0, @repository.changesets.count
397 @repository.reload 450 @repository.fetch_changesets
451 @project.reload
452 assert_equal NUM_REV, @repository.changesets.count
398 %w|1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127 1ca7f5ed|.each do |r1| 453 %w|1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127 1ca7f5ed|.each do |r1|
399 changeset = @repository.find_changeset_by_name(r1) 454 changeset = @repository.find_changeset_by_name(r1)
400 %w|64f1f3e89ad1cb57976ff0ad99a107012ba3481d 64f1f3e89ad1|.each do |r2| 455 %w|64f1f3e89ad1cb57976ff0ad99a107012ba3481d 64f1f3e89ad1|.each do |r2|
401 assert_equal @repository.find_changeset_by_name(r2), changeset.previous 456 assert_equal @repository.find_changeset_by_name(r2), changeset.previous
402 end 457 end
403 end 458 end
404 end 459 end
405 460
406 def test_previous_nil 461 def test_previous_nil
407 @repository.fetch_changesets 462 assert_equal 0, @repository.changesets.count
408 @repository.reload 463 @repository.fetch_changesets
464 @project.reload
465 assert_equal NUM_REV, @repository.changesets.count
409 %w|7234cb2750b63f47bff735edc50a1c0a433c2518 7234cb2|.each do |r1| 466 %w|7234cb2750b63f47bff735edc50a1c0a433c2518 7234cb2|.each do |r1|
410 changeset = @repository.find_changeset_by_name(r1) 467 changeset = @repository.find_changeset_by_name(r1)
411 assert_nil changeset.previous 468 assert_nil changeset.previous
412 end 469 end
413 end 470 end
414 471
415 def test_next 472 def test_next
416 @repository.fetch_changesets 473 assert_equal 0, @repository.changesets.count
417 @repository.reload 474 @repository.fetch_changesets
475 @project.reload
476 assert_equal NUM_REV, @repository.changesets.count
418 %w|64f1f3e89ad1cb57976ff0ad99a107012ba3481d 64f1f3e89ad1|.each do |r2| 477 %w|64f1f3e89ad1cb57976ff0ad99a107012ba3481d 64f1f3e89ad1|.each do |r2|
419 changeset = @repository.find_changeset_by_name(r2) 478 changeset = @repository.find_changeset_by_name(r2)
420 %w|1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127 1ca7f5ed|.each do |r1| 479 %w|1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127 1ca7f5ed|.each do |r1|
421 assert_equal @repository.find_changeset_by_name(r1), changeset.next 480 assert_equal @repository.find_changeset_by_name(r1), changeset.next
422 end 481 end
423 end 482 end
424 end 483 end
425 484
426 def test_next_nil 485 def test_next_nil
427 @repository.fetch_changesets 486 assert_equal 0, @repository.changesets.count
428 @repository.reload 487 @repository.fetch_changesets
488 @project.reload
489 assert_equal NUM_REV, @repository.changesets.count
429 %w|67e7792ce20ccae2e4bb73eed09bb397819c8834 67e7792ce20cca|.each do |r1| 490 %w|67e7792ce20ccae2e4bb73eed09bb397819c8834 67e7792ce20cca|.each do |r1|
430 changeset = @repository.find_changeset_by_name(r1) 491 changeset = @repository.find_changeset_by_name(r1)
431 assert_nil changeset.next 492 assert_nil changeset.next
432 end 493 end
433 end 494 end