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