Mercurial > hg > soundsoftware-site
comparison test/unit/lib/redmine/scm/adapters/mercurial_adapter_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 |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 require File.expand_path('../../../../../../test_helper', __FILE__) | 1 require File.expand_path('../../../../../../test_helper', __FILE__) |
2 begin | 2 begin |
3 require 'mocha' | 3 require 'mocha' |
4 | 4 |
5 class MercurialAdapterTest < ActiveSupport::TestCase | 5 class MercurialAdapterTest < ActiveSupport::TestCase |
6 | |
7 HELPERS_DIR = Redmine::Scm::Adapters::MercurialAdapter::HELPERS_DIR | 6 HELPERS_DIR = Redmine::Scm::Adapters::MercurialAdapter::HELPERS_DIR |
8 TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME | 7 TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME |
9 TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION | 8 TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION |
10 | 9 |
11 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + | 10 REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s |
12 '/tmp/test/mercurial_repository' | |
13 | |
14 CHAR_1_HEX = "\xc3\x9c" | 11 CHAR_1_HEX = "\xc3\x9c" |
15 | 12 |
16 if File.directory?(REPOSITORY_PATH) | 13 if File.directory?(REPOSITORY_PATH) |
17 def setup | 14 def setup |
18 adapter_class = Redmine::Scm::Adapters::MercurialAdapter | 15 adapter_class = Redmine::Scm::Adapters::MercurialAdapter |
54 test_hgversion_for(s, v) | 51 test_hgversion_for(s, v) |
55 end | 52 end |
56 end | 53 end |
57 | 54 |
58 def test_template_path | 55 def test_template_path |
59 to_test = { [0,9,5] => "0.9.5", | 56 to_test = { |
60 [1,0] => "1.0", | 57 [1,2] => "1.0", |
61 [] => "1.0", | 58 [] => "1.0", |
62 [1,0,1] => "1.0", | 59 [1,2,1] => "1.0", |
63 [1,7] => "1.0", | 60 [1,7] => "1.0", |
64 [1,7,1] => "1.0" } | 61 [1,7,1] => "1.0", |
62 [2,0] => "1.0", | |
63 } | |
65 to_test.each do |v, template| | 64 to_test.each do |v, template| |
66 test_template_path_for(v, template) | 65 test_template_path_for(v, template) |
67 end | 66 end |
68 end | 67 end |
69 | 68 |
71 [REPOSITORY_PATH, REPOSITORY_PATH + "/", | 70 [REPOSITORY_PATH, REPOSITORY_PATH + "/", |
72 REPOSITORY_PATH + "//"].each do |repo| | 71 REPOSITORY_PATH + "//"].each do |repo| |
73 adp = Redmine::Scm::Adapters::MercurialAdapter.new(repo) | 72 adp = Redmine::Scm::Adapters::MercurialAdapter.new(repo) |
74 repo_path = adp.info.root_url.gsub(/\\/, "/") | 73 repo_path = adp.info.root_url.gsub(/\\/, "/") |
75 assert_equal REPOSITORY_PATH, repo_path | 74 assert_equal REPOSITORY_PATH, repo_path |
76 assert_equal '28', adp.info.lastrev.revision | 75 assert_equal '31', adp.info.lastrev.revision |
77 assert_equal '3ae45e2d177d',adp.info.lastrev.scmid | 76 assert_equal '31eeee7395c8',adp.info.lastrev.scmid |
78 end | 77 end |
79 end | 78 end |
80 | 79 |
81 def test_revisions | 80 def test_revisions |
82 revisions = @adapter.revisions(nil, 2, 4) | 81 revisions = @adapter.revisions(nil, 2, 4) |
88 | 87 |
89 revisions = @adapter.revisions(nil, 2, 4, {:limit => 2}) | 88 revisions = @adapter.revisions(nil, 2, 4, {:limit => 2}) |
90 assert_equal 2, revisions.size | 89 assert_equal 2, revisions.size |
91 assert_equal '2', revisions[0].revision | 90 assert_equal '2', revisions[0].revision |
92 assert_equal '400bb8672109', revisions[0].scmid | 91 assert_equal '400bb8672109', revisions[0].scmid |
92 end | |
93 | |
94 def test_parents | |
95 revs1 = @adapter.revisions(nil, 0, 0) | |
96 assert_equal 1, revs1.size | |
97 assert_equal [], revs1[0].parents | |
98 revs2 = @adapter.revisions(nil, 1, 1) | |
99 assert_equal 1, revs2.size | |
100 assert_equal 1, revs2[0].parents.size | |
101 assert_equal "0885933ad4f6", revs2[0].parents[0] | |
102 revs3 = @adapter.revisions(nil, 30, 30) | |
103 assert_equal 1, revs3.size | |
104 assert_equal 2, revs3[0].parents.size | |
105 assert_equal "a94b0528f24f", revs3[0].parents[0] | |
106 assert_equal "3a330eb32958", revs3[0].parents[1] | |
93 end | 107 end |
94 | 108 |
95 def test_diff | 109 def test_diff |
96 if @adapter.class.client_version_above?([1, 2]) | 110 if @adapter.class.client_version_above?([1, 2]) |
97 assert_nil @adapter.diff(nil, '100000') | 111 assert_nil @adapter.diff(nil, '100000') |
254 } | 268 } |
255 assert_equal tm, @adapter.tagmap | 269 assert_equal tm, @adapter.tagmap |
256 end | 270 end |
257 | 271 |
258 def test_branches | 272 def test_branches |
259 assert_equal [ | 273 brs = [] |
260 'default', | 274 @adapter.branches.each do |b| |
261 @branch_char_1, | 275 brs << b |
262 'branch (1)[2]&,%.-3_4', | 276 end |
263 @branch_char_0, | 277 assert_equal 7, brs.length |
264 'test_branch.latin-1', | 278 assert_equal 'default', brs[0].to_s |
265 'test-branch-00', | 279 assert_equal '31', brs[0].revision |
266 ], @adapter.branches | 280 assert_equal '31eeee7395c8', brs[0].scmid |
281 assert_equal 'test-branch-01', brs[1].to_s | |
282 assert_equal '30', brs[1].revision | |
283 assert_equal 'ad4dc4f80284', brs[1].scmid | |
284 assert_equal @branch_char_1, brs[2].to_s | |
285 assert_equal '27', brs[2].revision | |
286 assert_equal '7bbf4c738e71', brs[2].scmid | |
287 assert_equal 'branch (1)[2]&,%.-3_4', brs[3].to_s | |
288 assert_equal '25', brs[3].revision | |
289 assert_equal 'afc61e85bde7', brs[3].scmid | |
290 assert_equal @branch_char_0, brs[4].to_s | |
291 assert_equal '23', brs[4].revision | |
292 assert_equal 'c8d3e4887474', brs[4].scmid | |
293 assert_equal 'test_branch.latin-1', brs[5].to_s | |
294 assert_equal '22', brs[5].revision | |
295 assert_equal 'c2ffe7da686a', brs[5].scmid | |
296 assert_equal 'test-branch-00', brs[6].to_s | |
297 assert_equal '13', brs[6].revision | |
298 assert_equal '3a330eb32958', brs[6].scmid | |
267 end | 299 end |
268 | 300 |
269 def test_branchmap | 301 def test_branchmap |
270 bm = { | 302 bm = { |
271 'default' => '3ae45e2d177d', | 303 'default' => '31eeee7395c8', |
272 'test_branch.latin-1' => 'c2ffe7da686a', | 304 'test_branch.latin-1' => 'c2ffe7da686a', |
273 'branch (1)[2]&,%.-3_4' => 'afc61e85bde7', | 305 'branch (1)[2]&,%.-3_4' => 'afc61e85bde7', |
274 'test-branch-00' => '3a330eb32958', | 306 'test-branch-00' => '3a330eb32958', |
307 "test-branch-01" => 'ad4dc4f80284', | |
275 @branch_char_0 => 'c8d3e4887474', | 308 @branch_char_0 => 'c8d3e4887474', |
276 @branch_char_1 => '7bbf4c738e71', | 309 @branch_char_1 => '7bbf4c738e71', |
277 } | 310 } |
278 assert_equal bm, @adapter.branchmap | 311 assert_equal bm, @adapter.branchmap |
279 end | 312 end |
315 assert nib0 | 348 assert nib0 |
316 nib1 = @adapter.nodes_in_branch(bra, :limit => 1) | 349 nib1 = @adapter.nodes_in_branch(bra, :limit => 1) |
317 assert_equal 1, nib1.size | 350 assert_equal 1, nib1.size |
318 case bra | 351 case bra |
319 when 'branch (1)[2]&,%.-3_4' | 352 when 'branch (1)[2]&,%.-3_4' |
320 assert_equal 3, nib0.size | 353 if @adapter.class.client_version_above?([1, 6]) |
321 assert_equal nib0[0], 'afc61e85bde7' | 354 assert_equal 3, nib0.size |
322 nib2 = @adapter.nodes_in_branch(bra, :limit => 2) | 355 assert_equal nib0[0], 'afc61e85bde7' |
323 assert_equal 2, nib2.size | 356 nib2 = @adapter.nodes_in_branch(bra, :limit => 2) |
324 assert_equal nib2[1], '933ca60293d7' | 357 assert_equal 2, nib2.size |
358 assert_equal nib2[1], '933ca60293d7' | |
359 end | |
325 when @branch_char_1 | 360 when @branch_char_1 |
326 assert_equal 2, nib0.size | 361 if @adapter.class.client_version_above?([1, 6]) |
327 assert_equal nib0[1], '08ff3227303e' | 362 assert_equal 2, nib0.size |
328 nib2 = @adapter.nodes_in_branch(bra, :limit => 1) | 363 assert_equal nib0[1], '08ff3227303e' |
329 assert_equal 1, nib2.size | 364 nib2 = @adapter.nodes_in_branch(bra, :limit => 1) |
330 assert_equal nib2[0], '7bbf4c738e71' | 365 assert_equal 1, nib2.size |
366 assert_equal nib2[0], '7bbf4c738e71' | |
367 end | |
331 end | 368 end |
332 end | 369 end |
333 end | 370 end |
334 | 371 |
335 def test_path_encoding_default_utf8 | 372 def test_path_encoding_default_utf8 |