@@ -122,9 +122,15 class Repository::Mercurial < Repository | |||
|
122 | 122 | all |
|
123 | 123 | end |
|
124 | 124 | |
|
125 | def is_short_id_in_db? | |
|
126 | return @is_short_id_in_db unless @is_short_id_in_db.nil? | |
|
127 | cs = changesets.first | |
|
128 | @is_short_id_in_db = (!cs.nil? && cs.scmid.length != 40) | |
|
129 | end | |
|
130 | private :is_short_id_in_db? | |
|
131 | ||
|
125 | 132 | def scmid_for_inserting_db(scmid) |
|
126 | # TODO: switch short or long by existing value in DB | |
|
127 | scmid[0, 12] | |
|
133 | is_short_id_in_db? ? scmid[0, 12] : scmid | |
|
128 | 134 | end |
|
129 | 135 | |
|
130 | 136 | def nodes_in_branch(rev, branch_limit) |
@@ -104,12 +104,22 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
104 | 104 | |
|
105 | 105 | def test_entries_short_id |
|
106 | 106 | assert_equal 0, @repository.changesets.count |
|
107 | create_rev0_short_id | |
|
108 | assert_equal 1, @repository.changesets.count | |
|
107 | 109 | @repository.fetch_changesets |
|
108 | 110 | @project.reload |
|
109 | 111 | assert_equal NUM_REV, @repository.changesets.count |
|
110 | 112 | assert_entries(true) |
|
111 | 113 | end |
|
112 | 114 | |
|
115 | def test_entries_long_id | |
|
116 | assert_equal 0, @repository.changesets.count | |
|
117 | @repository.fetch_changesets | |
|
118 | @project.reload | |
|
119 | assert_equal NUM_REV, @repository.changesets.count | |
|
120 | assert_entries(false) | |
|
121 | end | |
|
122 | ||
|
113 | 123 | def test_entry_on_tip |
|
114 | 124 | entry = @repository.entry |
|
115 | 125 | assert_kind_of Redmine::Scm::Adapters::Entry, entry |
@@ -152,9 +162,16 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
152 | 162 | private :assert_entry |
|
153 | 163 | |
|
154 | 164 | def test_entry_short_id |
|
165 | assert_equal 0, @repository.changesets.count | |
|
166 | create_rev0_short_id | |
|
167 | assert_equal 1, @repository.changesets.count | |
|
155 | 168 | assert_entry(true) |
|
156 | 169 | end |
|
157 | 170 | |
|
171 | def test_entry_long_id | |
|
172 | assert_entry(false) | |
|
173 | end | |
|
174 | ||
|
158 | 175 | def test_fetch_changesets_from_scratch |
|
159 | 176 | assert_equal 0, @repository.changesets.count |
|
160 | 177 | @repository.fetch_changesets |
@@ -164,13 +181,39 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
164 | 181 | rev0 = @repository.changesets.find_by_revision('0') |
|
165 | 182 | assert_equal "Initial import.\nThe repository contains 3 files.", |
|
166 | 183 | rev0.comments |
|
167 | assert_equal "0885933ad4f6", rev0.scmid | |
|
184 | assert_equal "0885933ad4f68d77c2649cd11f8311276e7ef7ce", rev0.scmid | |
|
168 | 185 | first_rev = @repository.changesets.first |
|
169 | 186 | last_rev = @repository.changesets.last |
|
170 | 187 | assert_equal "#{NUM_REV - 1}", first_rev.revision |
|
171 | 188 | assert_equal "0", last_rev.revision |
|
172 | 189 | end |
|
173 | 190 | |
|
191 | def test_fetch_changesets_keep_short_id | |
|
192 | assert_equal 0, @repository.changesets.count | |
|
193 | create_rev0_short_id | |
|
194 | assert_equal 1, @repository.changesets.count | |
|
195 | @repository.fetch_changesets | |
|
196 | @project.reload | |
|
197 | assert_equal NUM_REV, @repository.changesets.count | |
|
198 | rev1 = @repository.changesets.find_by_revision('1') | |
|
199 | assert_equal "9d5b5b004199", rev1.scmid | |
|
200 | end | |
|
201 | ||
|
202 | def test_fetch_changesets_keep_long_id | |
|
203 | assert_equal 0, @repository.changesets.count | |
|
204 | Changeset.create!(:repository => @repository, | |
|
205 | :committed_on => Time.now, | |
|
206 | :revision => '0', | |
|
207 | :scmid => '0885933ad4f68d77c2649cd11f8311276e7ef7ce', | |
|
208 | :comments => 'test') | |
|
209 | assert_equal 1, @repository.changesets.count | |
|
210 | @repository.fetch_changesets | |
|
211 | @project.reload | |
|
212 | assert_equal NUM_REV, @repository.changesets.count | |
|
213 | rev1 = @repository.changesets.find_by_revision('1') | |
|
214 | assert_equal "9d5b5b00419901478496242e0768deba1ce8c51e", rev1.scmid | |
|
215 | end | |
|
216 | ||
|
174 | 217 | def test_fetch_changesets_incremental |
|
175 | 218 | assert_equal 0, @repository.changesets.count |
|
176 | 219 | @repository.fetch_changesets |
@@ -279,6 +322,16 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
279 | 322 | assert_latest_changesets_tag |
|
280 | 323 | end |
|
281 | 324 | |
|
325 | def test_latest_changesets_tag_short_id | |
|
326 | assert_equal 0, @repository.changesets.count | |
|
327 | create_rev0_short_id | |
|
328 | assert_equal 1, @repository.changesets.count | |
|
329 | @repository.fetch_changesets | |
|
330 | @project.reload | |
|
331 | assert_equal NUM_REV, @repository.changesets.count | |
|
332 | assert_latest_changesets_tag | |
|
333 | end | |
|
334 | ||
|
282 | 335 | def test_latest_changesets_tag_with_path |
|
283 | 336 | assert_equal 0, @repository.changesets.count |
|
284 | 337 | @repository.fetch_changesets |
@@ -331,6 +384,16 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
331 | 384 | assert_latest_changesets_default_branch |
|
332 | 385 | end |
|
333 | 386 | |
|
387 | def test_latest_changesets_default_branch_short_id | |
|
388 | assert_equal 0, @repository.changesets.count | |
|
389 | create_rev0_short_id | |
|
390 | assert_equal 1, @repository.changesets.count | |
|
391 | @repository.fetch_changesets | |
|
392 | @project.reload | |
|
393 | assert_equal NUM_REV, @repository.changesets.count | |
|
394 | assert_latest_changesets_default_branch | |
|
395 | end | |
|
396 | ||
|
334 | 397 | def assert_copied_files(is_short_scmid=true) |
|
335 | 398 | cs1 = @repository.changesets.find_by_revision('13') |
|
336 | 399 | assert_not_nil cs1 |
@@ -374,12 +437,22 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
374 | 437 | |
|
375 | 438 | def test_copied_files_short_id |
|
376 | 439 | assert_equal 0, @repository.changesets.count |
|
440 | create_rev0_short_id | |
|
441 | assert_equal 1, @repository.changesets.count | |
|
377 | 442 | @repository.fetch_changesets |
|
378 | 443 | @project.reload |
|
379 | 444 | assert_equal NUM_REV, @repository.changesets.count |
|
380 | 445 | assert_copied_files(true) |
|
381 | 446 | end |
|
382 | 447 | |
|
448 | def test_copied_files_long_id | |
|
449 | assert_equal 0, @repository.changesets.count | |
|
450 | @repository.fetch_changesets | |
|
451 | @project.reload | |
|
452 | assert_equal NUM_REV, @repository.changesets.count | |
|
453 | assert_copied_files(false) | |
|
454 | end | |
|
455 | ||
|
383 | 456 | def test_find_changeset_by_name |
|
384 | 457 | assert_equal 0, @repository.changesets.count |
|
385 | 458 | @repository.fetch_changesets |
@@ -459,12 +532,22 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
459 | 532 | |
|
460 | 533 | def test_parents_short_id |
|
461 | 534 | assert_equal 0, @repository.changesets.count |
|
535 | create_rev0_short_id | |
|
536 | assert_equal 1, @repository.changesets.count | |
|
462 | 537 | @repository.fetch_changesets |
|
463 | 538 | @project.reload |
|
464 | 539 | assert_equal NUM_REV, @repository.changesets.count |
|
465 | 540 | assert_parents(true) |
|
466 | 541 | end |
|
467 | 542 | |
|
543 | def test_parents_long_id | |
|
544 | assert_equal 0, @repository.changesets.count | |
|
545 | @repository.fetch_changesets | |
|
546 | @project.reload | |
|
547 | assert_equal NUM_REV, @repository.changesets.count | |
|
548 | assert_parents(false) | |
|
549 | end | |
|
550 | ||
|
468 | 551 | def test_activities |
|
469 | 552 | c = Changeset.new(:repository => @repository, |
|
470 | 553 | :committed_on => Time.now, |
@@ -523,6 +606,27 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
523 | 606 | end |
|
524 | 607 | end |
|
525 | 608 | |
|
609 | def test_scmid_for_inserting_db_short_id | |
|
610 | assert_equal 0, @repository.changesets.count | |
|
611 | create_rev0_short_id | |
|
612 | assert_equal 1, @repository.changesets.count | |
|
613 | rev = "0123456789012345678901234567890123456789" | |
|
614 | assert_equal 12, @repository.scmid_for_inserting_db(rev).length | |
|
615 | end | |
|
616 | ||
|
617 | def test_scmid_for_inserting_db_long_id | |
|
618 | rev = "0123456789012345678901234567890123456789" | |
|
619 | assert_equal 0, @repository.changesets.count | |
|
620 | assert_equal 40, @repository.scmid_for_inserting_db(rev).length | |
|
621 | Changeset.create!(:repository => @repository, | |
|
622 | :committed_on => Time.now, | |
|
623 | :revision => '0', | |
|
624 | :scmid => rev, | |
|
625 | :comments => 'test') | |
|
626 | assert_equal 1, @repository.changesets.count | |
|
627 | assert_equal 40, @repository.scmid_for_inserting_db(rev).length | |
|
628 | end | |
|
629 | ||
|
526 | 630 | def test_scmid_for_assert |
|
527 | 631 | rev = "0123456789012345678901234567890123456789" |
|
528 | 632 | assert_equal rev, scmid_for_assert(rev, false) |
@@ -534,6 +638,14 class RepositoryMercurialTest < ActiveSupport::TestCase | |||
|
534 | 638 | def scmid_for_assert(hex, is_short=true) |
|
535 | 639 | is_short ? hex[0, 12] : hex |
|
536 | 640 | end |
|
641 | ||
|
642 | def create_rev0_short_id | |
|
643 | Changeset.create!(:repository => @repository, | |
|
644 | :committed_on => Time.now, | |
|
645 | :revision => '0', | |
|
646 | :scmid => '0885933ad4f6', | |
|
647 | :comments => 'test') | |
|
648 | end | |
|
537 | 649 | else |
|
538 | 650 | puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" |
|
539 | 651 | def test_fake; assert true end |
General Comments 0
You need to be logged in to leave comments.
Login now