##// END OF EJS Templates
scm: git: fix test revision value of unit lib test...
Toshi MARUYAMA -
r9359:6fcea5ef9da5
parent child
Show More
@@ -1,531 +1,531
1 1 # encoding: utf-8
2 2
3 3 require File.expand_path('../../../../../../test_helper', __FILE__)
4 4 begin
5 5 require 'mocha'
6 6
7 7 class GitAdapterTest < ActiveSupport::TestCase
8 8 REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s
9 9
10 10 FELIX_HEX = "Felix Sch\xC3\xA4fer"
11 11 CHAR_1_HEX = "\xc3\x9c"
12 12
13 13 ## Ruby uses ANSI api to fork a process on Windows.
14 14 ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem
15 15 ## and these are incompatible with ASCII.
16 16 # WINDOWS_PASS = Redmine::Platform.mswin?
17 17 WINDOWS_PASS = false
18 18
19 19 ## Git, Mercurial and CVS path encodings are binary.
20 20 ## Subversion supports URL encoding for path.
21 21 ## Redmine Mercurial adapter and extension use URL encoding.
22 22 ## Git accepts only binary path in command line parameter.
23 23 ## So, there is no way to use binary command line parameter in JRuby.
24 24 JRUBY_SKIP = (RUBY_PLATFORM == 'java')
25 25 JRUBY_SKIP_STR = "TODO: This test fails in JRuby"
26 26
27 27 if File.directory?(REPOSITORY_PATH)
28 28 def setup
29 29 adapter_class = Redmine::Scm::Adapters::GitAdapter
30 30 assert adapter_class
31 31 assert adapter_class.client_command
32 32 assert_equal true, adapter_class.client_available
33 33 assert_equal true, adapter_class.client_version_above?([1])
34 34 assert_equal true, adapter_class.client_version_above?([1, 0])
35 35
36 36 @adapter = Redmine::Scm::Adapters::GitAdapter.new(
37 37 REPOSITORY_PATH,
38 38 nil,
39 39 nil,
40 40 nil,
41 41 'ISO-8859-1'
42 42 )
43 43 assert @adapter
44 44 @char_1 = CHAR_1_HEX.dup
45 45 if @char_1.respond_to?(:force_encoding)
46 46 @char_1.force_encoding('UTF-8')
47 47 end
48 48 end
49 49
50 50 def test_scm_version
51 51 to_test = { "git version 1.7.3.4\n" => [1,7,3,4],
52 52 "1.6.1\n1.7\n1.8" => [1,6,1],
53 53 "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
54 54 to_test.each do |s, v|
55 55 test_scm_version_for(s, v)
56 56 end
57 57 end
58 58
59 59 def test_branches
60 60 brs = []
61 61 @adapter.branches.each do |b|
62 62 brs << b
63 63 end
64 64 assert_equal 6, brs.length
65 65 br_issue_8857 = brs[0]
66 66 assert_equal 'issue-8857', br_issue_8857.to_s
67 67 assert_equal '2a682156a3b6e77a8bf9cd4590e8db757f3c6c78', br_issue_8857.revision
68 68 assert_equal br_issue_8857.scmid, br_issue_8857.revision
69 69 assert_equal false, br_issue_8857.is_default
70 70 br_latin_1_path = brs[1]
71 71 assert_equal 'latin-1-path-encoding', br_latin_1_path.to_s
72 72 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', br_latin_1_path.revision
73 73 assert_equal br_latin_1_path.scmid, br_latin_1_path.revision
74 74 assert_equal false, br_latin_1_path.is_default
75 75 br_master = brs[2]
76 76 assert_equal 'master', br_master.to_s
77 77 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', br_master.revision
78 78 assert_equal br_master.scmid, br_master.revision
79 79 assert_equal false, br_master.is_default
80 80 br_master_20120212 = brs[3]
81 81 assert_equal 'master-20120212', br_master_20120212.to_s
82 82 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', br_master_20120212.revision
83 83 assert_equal br_master_20120212.scmid, br_master_20120212.revision
84 84 assert_equal true, br_master_20120212.is_default
85 85 br_latin_1 = brs[-2]
86 86 assert_equal 'test-latin-1', br_latin_1.to_s
87 87 assert_equal '67e7792ce20ccae2e4bb73eed09bb397819c8834', br_latin_1.revision
88 88 assert_equal br_latin_1.scmid, br_latin_1.revision
89 89 assert_equal false, br_latin_1.is_default
90 90 br_test = brs[-1]
91 91 assert_equal 'test_branch', br_test.to_s
92 92 assert_equal 'fba357b886984ee71185ad2065e65fc0417d9b92', br_test.revision
93 93 assert_equal br_test.scmid, br_test.revision
94 94 assert_equal false, br_test.is_default
95 95 end
96 96
97 97 def test_default_branch
98 98 assert_equal 'master-20120212', @adapter.default_branch
99 99 end
100 100
101 101 def test_tags
102 102 assert_equal [
103 103 "tag00.lightweight",
104 104 "tag01.annotated",
105 105 ], @adapter.tags
106 106 end
107 107
108 108 def test_revisions_master_all
109 109 revs1 = []
110 110 @adapter.revisions('', nil, "master",{}) do |rev|
111 111 revs1 << rev
112 112 end
113 113 assert_equal 15, revs1.length
114 114 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[ 0].identifier
115 115 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[-1].identifier
116 116
117 117 revs2 = []
118 118 @adapter.revisions('', nil, "master",
119 119 {:reverse => true}) do |rev|
120 120 revs2 << rev
121 121 end
122 122 assert_equal 15, revs2.length
123 123 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs2[-1].identifier
124 124 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs2[ 0].identifier
125 125 end
126 126
127 127 def test_revisions_master_merged_rev
128 128 revs1 = []
129 129 @adapter.revisions('',
130 130 "713f4944648826f558cf548222f813dabe7cbb04",
131 131 "master",
132 132 {:reverse => true}) do |rev|
133 133 revs1 << rev
134 134 end
135 135 assert_equal 8, revs1.length
136 136 assert_equal 'fba357b886984ee71185ad2065e65fc0417d9b92', revs1[ 0].identifier
137 137 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs1[ 1].identifier
138 138 # 4a07fe31b is not a child of 713f49446
139 139 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs1[ 2].identifier
140 140 # Merged revision
141 141 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs1[ 3].identifier
142 142 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[-1].identifier
143 143
144 144 revs2 = []
145 145 @adapter.revisions('',
146 146 "fba357b886984ee71185ad2065e65fc0417d9b92",
147 147 "master",
148 148 {:reverse => true}) do |rev|
149 149 revs2 << rev
150 150 end
151 151 assert_equal 7, revs2.length
152 152 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs2[ 0].identifier
153 153 # 4a07fe31b is not a child of fba357b8869
154 154 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs2[ 1].identifier
155 155 # Merged revision
156 156 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs2[ 2].identifier
157 157 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs2[-1].identifier
158 158 end
159 159
160 160 def test_revisions_branch_latin_1_path_encoding_all
161 161 revs1 = []
162 162 @adapter.revisions('', nil, "latin-1-path-encoding",{}) do |rev|
163 163 revs1 << rev
164 164 end
165 165 assert_equal 8, revs1.length
166 166 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[ 0].identifier
167 167 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[-1].identifier
168 168
169 169 revs2 = []
170 170 @adapter.revisions('', nil, "latin-1-path-encoding",
171 171 {:reverse => true}) do |rev|
172 172 revs2 << rev
173 173 end
174 174 assert_equal 8, revs2.length
175 175 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
176 176 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs2[ 0].identifier
177 177 end
178 178
179 179 def test_revisions_branch_latin_1_path_encoding_with_rev
180 180 revs1 = []
181 181 @adapter.revisions('',
182 182 '7234cb2750b63f47bff735edc50a1c0a433c2518',
183 183 "latin-1-path-encoding",
184 184 {:reverse => true}) do |rev|
185 185 revs1 << rev
186 186 end
187 187 assert_equal 7, revs1.length
188 188 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', revs1[ 0].identifier
189 189 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[-1].identifier
190 190
191 191 revs2 = []
192 192 @adapter.revisions('',
193 193 '57ca437c0acbbcb749821fdf3726a1367056d364',
194 194 "latin-1-path-encoding",
195 195 {:reverse => true}) do |rev|
196 196 revs2 << rev
197 197 end
198 198 assert_equal 3, revs2.length
199 199 assert_equal '4fc55c43bf3d3dc2efb66145365ddc17639ce81e', revs2[ 0].identifier
200 200 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
201 201 end
202 202
203 203 def test_revisions_invalid_rev
204 204 assert_equal [], @adapter.revisions('', '1234abcd', "master")
205 205 assert_raise Redmine::Scm::Adapters::CommandFailed do
206 206 revs1 = []
207 207 @adapter.revisions('',
208 208 '1234abcd',
209 209 "master",
210 210 {:reverse => true}) do |rev|
211 211 revs1 << rev
212 212 end
213 213 end
214 214 end
215 215
216 216 def test_revisions_includes_master_two_revs
217 217 revs1 = []
218 218 @adapter.revisions('', nil, nil,
219 219 {:reverse => true,
220 220 :includes => ['83ca5fd546063a3c7dc2e568ba3355661a9e2b2c'],
221 221 :excludes => ['4f26664364207fa8b1af9f8722647ab2d4ac5d43']}) do |rev|
222 222 revs1 << rev
223 223 end
224 224 assert_equal 2, revs1.length
225 225 assert_equal 'ed5bb786bbda2dee66a2d50faf51429dbc043a7b', revs1[ 0].identifier
226 226 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[-1].identifier
227 227 end
228 228
229 229 def test_revisions_includes_master_two_revs_from_origin
230 230 revs1 = []
231 231 @adapter.revisions('', nil, nil,
232 232 {:reverse => true,
233 233 :includes => ['899a15dba03a3b350b89c3f537e4bbe02a03cdc9'],
234 234 :excludes => []}) do |rev|
235 235 revs1 << rev
236 236 end
237 237 assert_equal 2, revs1.length
238 238 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[ 0].identifier
239 239 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', revs1[ 1].identifier
240 240 end
241 241
242 242 def test_revisions_includes_merged_revs
243 243 revs1 = []
244 244 @adapter.revisions('', nil, nil,
245 245 {:reverse => true,
246 246 :includes => ['83ca5fd546063a3c7dc2e568ba3355661a9e2b2c'],
247 247 :excludes => ['fba357b886984ee71185ad2065e65fc0417d9b92']}) do |rev|
248 248 revs1 << rev
249 249 end
250 250 assert_equal 7, revs1.length
251 251 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs1[ 0].identifier
252 252 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs1[ 1].identifier
253 253 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs1[ 2].identifier
254 254 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[-1].identifier
255 255 end
256 256
257 257 def test_revisions_includes_two_heads
258 258 revs1 = []
259 259 @adapter.revisions('', nil, nil,
260 260 {:reverse => true,
261 261 :includes => ['83ca5fd546063a3c7dc2e568ba3355661a9e2b2c',
262 262 '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127'],
263 263 :excludes => ['4f26664364207fa8b1af9f8722647ab2d4ac5d43',
264 264 '4fc55c43bf3d3dc2efb66145365ddc17639ce81e']}) do |rev|
265 265 revs1 << rev
266 266 end
267 267 assert_equal 4, revs1.length
268 268 assert_equal 'ed5bb786bbda2dee66a2d50faf51429dbc043a7b', revs1[ 0].identifier
269 269 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[ 1].identifier
270 270 assert_equal '64f1f3e89ad1cb57976ff0ad99a107012ba3481d', revs1[-2].identifier
271 271 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[-1].identifier
272 272 end
273 273
274 274 def test_revisions_disjointed_histories_revisions
275 275 revs1 = []
276 276 @adapter.revisions('', nil, nil,
277 277 {:reverse => true,
278 278 :includes => ['83ca5fd546063a3c7dc2e568ba3355661a9e2b2c',
279 279 '92397af84d22f27389c822848ecd5b463c181583'],
280 280 :excludes => ['95488a44bc25f7d1f97d775a31359539ff333a63',
281 281 '4f26664364207fa8b1af9f8722647ab2d4ac5d43'] }) do |rev|
282 282 revs1 << rev
283 283 end
284 284 assert_equal 4, revs1.length
285 285 assert_equal 'ed5bb786bbda2dee66a2d50faf51429dbc043a7b', revs1[ 0].identifier
286 286 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[ 1].identifier
287 287 assert_equal 'bc201c95999c4f10d018b0aa03b541cd6a2ff0ee', revs1[-2].identifier
288 288 assert_equal '92397af84d22f27389c822848ecd5b463c181583', revs1[-1].identifier
289 289 end
290 290
291 291 def test_revisions_invalid_rev_excludes
292 292 assert_equal [],
293 293 @adapter.revisions('', nil, nil,
294 294 {:reverse => true,
295 295 :includes => ['83ca5fd546063a3c7dc2e568ba3355661a9e2b2c'],
296 296 :excludes => ['0123abcd4567']})
297 297 assert_raise Redmine::Scm::Adapters::CommandFailed do
298 298 revs1 = []
299 299 @adapter.revisions('', nil, nil,
300 300 {:reverse => true,
301 301 :includes => ['83ca5fd546063a3c7dc2e568ba3355661a9e2b2c'],
302 302 :excludes => ['0123abcd4567']}) do |rev|
303 303 revs1 << rev
304 304 end
305 305 end
306 306 end
307 307
308 308 def test_getting_revisions_with_spaces_in_filename
309 309 assert_equal 1, @adapter.revisions("filemane with spaces.txt",
310 310 nil, "master").length
311 311 end
312 312
313 313 def test_parents
314 314 revs1 = []
315 315 @adapter.revisions('',
316 316 nil,
317 317 "master",
318 318 {:reverse => true}) do |rev|
319 319 revs1 << rev
320 320 end
321 321 assert_equal 15, revs1.length
322 322 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
323 323 revs1[0].identifier
324 324 assert_equal nil, revs1[0].parents
325 325 assert_equal "899a15dba03a3b350b89c3f537e4bbe02a03cdc9",
326 326 revs1[1].identifier
327 327 assert_equal 1, revs1[1].parents.length
328 328 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
329 329 revs1[1].parents[0]
330 330 assert_equal "32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf",
331 331 revs1[10].identifier
332 332 assert_equal 2, revs1[10].parents.length
333 333 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8",
334 334 revs1[10].parents[0]
335 335 assert_equal "7e61ac704deecde634b51e59daa8110435dcb3da",
336 336 revs1[10].parents[1]
337 337 end
338 338
339 339 def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
340 340 assert_equal " filename with a leading space.txt ",
341 341 @adapter.revisions(" filename with a leading space.txt ",
342 342 nil, "master")[0].paths[0][:path]
343 343 end
344 344
345 345 def test_getting_entries_with_leading_and_trailing_spaces_in_filename
346 346 assert_equal " filename with a leading space.txt ",
347 347 @adapter.entries('',
348 348 '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
349 349 end
350 350
351 351 def test_annotate
352 352 annotate = @adapter.annotate('sources/watchers_controller.rb')
353 353 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
354 354 assert_equal 41, annotate.lines.size
355 355 assert_equal "# This program is free software; you can redistribute it and/or",
356 356 annotate.lines[4].strip
357 357 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
358 358 annotate.revisions[4].identifier
359 359 assert_equal "jsmith", annotate.revisions[4].author
360 360 end
361 361
362 362 def test_annotate_moved_file
363 363 annotate = @adapter.annotate('renamed_test.txt')
364 364 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
365 365 assert_equal 2, annotate.lines.size
366 366 end
367 367
368 368 def test_last_rev
369 369 last_rev = @adapter.lastrev("README",
370 370 "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
371 371 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
372 372 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
373 373 assert_equal "Adam Soltys <asoltys@gmail.com>", last_rev.author
374 374 assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
375 375 end
376 376
377 377 def test_last_rev_with_spaces_in_filename
378 378 last_rev = @adapter.lastrev("filemane with spaces.txt",
379 379 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
380 380 str_felix_hex = FELIX_HEX.dup
381 381 last_rev_author = last_rev.author
382 382 if last_rev_author.respond_to?(:force_encoding)
383 383 last_rev_author.force_encoding('UTF-8')
384 384 end
385 385 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
386 386 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
387 387 assert_equal "#{str_felix_hex} <felix@fachschaften.org>",
388 388 last_rev.author
389 389 assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
390 390 end
391 391
392 392 def test_latin_1_path
393 393 if WINDOWS_PASS
394 394 #
395 395 elsif JRUBY_SKIP
396 396 puts JRUBY_SKIP_STR
397 397 else
398 398 p2 = "latin-1-dir/test-#{@char_1}-2.txt"
399 399 ['4fc55c43bf3d3dc2efb66145365ddc17639ce81e', '4fc55c43bf3'].each do |r1|
400 400 assert @adapter.diff(p2, r1)
401 401 assert @adapter.cat(p2, r1)
402 402 assert_equal 1, @adapter.annotate(p2, r1).lines.length
403 403 ['64f1f3e89ad1cb57976ff0ad99a107012ba3481d', '64f1f3e89ad1cb5797'].each do |r2|
404 404 assert @adapter.diff(p2, r1, r2)
405 405 end
406 406 end
407 407 end
408 408 end
409 409
410 410 def test_entries_tag
411 411 entries1 = @adapter.entries(nil, 'tag01.annotated',
412 412 options = {:report_last_commit => true})
413 413 assert entries1
414 414 assert_equal 3, entries1.size
415 415 assert_equal 'sources', entries1[1].name
416 416 assert_equal 'sources', entries1[1].path
417 417 assert_equal 'dir', entries1[1].kind
418 418 readme = entries1[2]
419 419 assert_equal 'README', readme.name
420 420 assert_equal 'README', readme.path
421 421 assert_equal 'file', readme.kind
422 422 assert_equal 27, readme.size
423 423 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', readme.lastrev.identifier
424 424 assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
425 425 end
426 426
427 427 def test_entries_branch
428 428 entries1 = @adapter.entries(nil, 'test_branch',
429 429 options = {:report_last_commit => true})
430 430 assert entries1
431 431 assert_equal 4, entries1.size
432 432 assert_equal 'sources', entries1[1].name
433 433 assert_equal 'sources', entries1[1].path
434 434 assert_equal 'dir', entries1[1].kind
435 435 readme = entries1[2]
436 436 assert_equal 'README', readme.name
437 437 assert_equal 'README', readme.path
438 438 assert_equal 'file', readme.kind
439 439 assert_equal 159, readme.size
440 440 assert_equal '713f4944648826f558cf548222f813dabe7cbb04', readme.lastrev.identifier
441 441 assert_equal Time.gm(2009, 6, 19, 4, 37, 23), readme.lastrev.time
442 442 end
443 443
444 444 def test_entries_latin_1_files
445 445 entries1 = @adapter.entries('latin-1-dir', '64f1f3e8')
446 446 assert entries1
447 447 assert_equal 3, entries1.size
448 448 f1 = entries1[1]
449 449 assert_equal "test-#{@char_1}-2.txt", f1.name
450 450 assert_equal "latin-1-dir/test-#{@char_1}-2.txt", f1.path
451 451 assert_equal 'file', f1.kind
452 452 end
453 453
454 454 def test_entries_latin_1_dir
455 455 if WINDOWS_PASS
456 456 #
457 457 elsif JRUBY_SKIP
458 458 puts JRUBY_SKIP_STR
459 459 else
460 460 entries1 = @adapter.entries("latin-1-dir/test-#{@char_1}-subdir",
461 461 '1ca7f5ed')
462 462 assert entries1
463 463 assert_equal 3, entries1.size
464 464 f1 = entries1[1]
465 465 assert_equal "test-#{@char_1}-2.txt", f1.name
466 466 assert_equal "latin-1-dir/test-#{@char_1}-subdir/test-#{@char_1}-2.txt", f1.path
467 467 assert_equal 'file', f1.kind
468 468 end
469 469 end
470 470
471 471 def test_path_encoding_default_utf8
472 472 adpt1 = Redmine::Scm::Adapters::GitAdapter.new(
473 473 REPOSITORY_PATH
474 474 )
475 475 assert_equal "UTF-8", adpt1.path_encoding
476 476 adpt2 = Redmine::Scm::Adapters::GitAdapter.new(
477 477 REPOSITORY_PATH,
478 478 nil,
479 479 nil,
480 480 nil,
481 481 ""
482 482 )
483 483 assert_equal "UTF-8", adpt2.path_encoding
484 484 end
485 485
486 486 def test_cat_path_invalid
487 487 assert_nil @adapter.cat('invalid')
488 488 end
489 489
490 490 def test_cat_revision_invalid
491 491 assert @adapter.cat('README')
492 assert_nil @adapter.cat('README', 'abcd1234efgh')
492 assert_nil @adapter.cat('README', '1234abcd5678')
493 493 end
494 494
495 495 def test_diff_path_invalid
496 496 assert_equal [], @adapter.diff('invalid', '713f4944648826f5')
497 497 end
498 498
499 499 def test_diff_revision_invalid
500 assert_nil @adapter.diff(nil, 'abcd1234efgh')
501 assert_nil @adapter.diff(nil, '713f4944648826f5', 'abcd1234efgh')
502 assert_nil @adapter.diff(nil, 'abcd1234efgh', '713f4944648826f5')
500 assert_nil @adapter.diff(nil, '1234abcd5678')
501 assert_nil @adapter.diff(nil, '713f4944648826f5', '1234abcd5678')
502 assert_nil @adapter.diff(nil, '1234abcd5678', '713f4944648826f5')
503 503 end
504 504
505 505 def test_annotate_path_invalid
506 506 assert_nil @adapter.annotate('invalid')
507 507 end
508 508
509 509 def test_annotate_revision_invalid
510 510 assert @adapter.annotate('README')
511 assert_nil @adapter.annotate('README', 'abcd1234efgh')
511 assert_nil @adapter.annotate('README', '1234abcd5678')
512 512 end
513 513
514 514 private
515 515
516 516 def test_scm_version_for(scm_command_version, version)
517 517 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
518 518 assert_equal version, @adapter.class.scm_command_version
519 519 end
520 520
521 521 else
522 522 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
523 523 def test_fake; assert true end
524 524 end
525 525 end
526 526
527 527 rescue LoadError
528 528 class GitMochaFake < ActiveSupport::TestCase
529 529 def test_fake; assert(false, "Requires mocha to run those tests") end
530 530 end
531 531 end
General Comments 0
You need to be logged in to leave comments. Login now