##// END OF EJS Templates
scm: git: use block to call revisions() in unit adapter test_revisions_invalid_rev() (#7146)....
Toshi MARUYAMA -
r5667:b0f5d3cd8846
parent child
Show More
@@ -1,352 +1,354
1 # encoding: utf-8
1 # encoding: utf-8
2
2
3 # This file includes UTF-8 "Felix Schäfer".
3 # This file includes UTF-8 "Felix Schäfer".
4 # We need to consider Ruby 1.9 compatibility.
4 # We need to consider Ruby 1.9 compatibility.
5
5
6 require File.expand_path('../../../../../../test_helper', __FILE__)
6 require File.expand_path('../../../../../../test_helper', __FILE__)
7 begin
7 begin
8 require 'mocha'
8 require 'mocha'
9
9
10 class GitAdapterTest < ActiveSupport::TestCase
10 class GitAdapterTest < ActiveSupport::TestCase
11 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
11 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
12
12
13 FELIX_UTF8 = "Felix Schäfer"
13 FELIX_UTF8 = "Felix Schäfer"
14 FELIX_HEX = "Felix Sch\xC3\xA4fer"
14 FELIX_HEX = "Felix Sch\xC3\xA4fer"
15 CHAR_1_HEX = "\xc3\x9c"
15 CHAR_1_HEX = "\xc3\x9c"
16
16
17 ## Ruby uses ANSI api to fork a process on Windows.
17 ## Ruby uses ANSI api to fork a process on Windows.
18 ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem
18 ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem
19 ## and these are incompatible with ASCII.
19 ## and these are incompatible with ASCII.
20 # WINDOWS_PASS = Redmine::Platform.mswin?
20 # WINDOWS_PASS = Redmine::Platform.mswin?
21 WINDOWS_PASS = false
21 WINDOWS_PASS = false
22
22
23 if File.directory?(REPOSITORY_PATH)
23 if File.directory?(REPOSITORY_PATH)
24 def setup
24 def setup
25 adapter_class = Redmine::Scm::Adapters::GitAdapter
25 adapter_class = Redmine::Scm::Adapters::GitAdapter
26 assert adapter_class
26 assert adapter_class
27 assert adapter_class.client_command
27 assert adapter_class.client_command
28 assert_equal true, adapter_class.client_available
28 assert_equal true, adapter_class.client_available
29 assert_equal true, adapter_class.client_version_above?([1])
29 assert_equal true, adapter_class.client_version_above?([1])
30 assert_equal true, adapter_class.client_version_above?([1, 0])
30 assert_equal true, adapter_class.client_version_above?([1, 0])
31
31
32 @adapter = Redmine::Scm::Adapters::GitAdapter.new(
32 @adapter = Redmine::Scm::Adapters::GitAdapter.new(
33 REPOSITORY_PATH,
33 REPOSITORY_PATH,
34 nil,
34 nil,
35 nil,
35 nil,
36 nil,
36 nil,
37 'ISO-8859-1'
37 'ISO-8859-1'
38 )
38 )
39 assert @adapter
39 assert @adapter
40 @char_1 = CHAR_1_HEX.dup
40 @char_1 = CHAR_1_HEX.dup
41 if @char_1.respond_to?(:force_encoding)
41 if @char_1.respond_to?(:force_encoding)
42 @char_1.force_encoding('UTF-8')
42 @char_1.force_encoding('UTF-8')
43 end
43 end
44 end
44 end
45
45
46 def test_scm_version
46 def test_scm_version
47 to_test = { "git version 1.7.3.4\n" => [1,7,3,4],
47 to_test = { "git version 1.7.3.4\n" => [1,7,3,4],
48 "1.6.1\n1.7\n1.8" => [1,6,1],
48 "1.6.1\n1.7\n1.8" => [1,6,1],
49 "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
49 "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
50 to_test.each do |s, v|
50 to_test.each do |s, v|
51 test_scm_version_for(s, v)
51 test_scm_version_for(s, v)
52 end
52 end
53 end
53 end
54
54
55 def test_branches
55 def test_branches
56 assert_equal [
56 assert_equal [
57 'latin-1-path-encoding',
57 'latin-1-path-encoding',
58 'master',
58 'master',
59 'test-latin-1',
59 'test-latin-1',
60 'test_branch',
60 'test_branch',
61 ], @adapter.branches
61 ], @adapter.branches
62 end
62 end
63
63
64 def test_tags
64 def test_tags
65 assert_equal [
65 assert_equal [
66 "tag00.lightweight",
66 "tag00.lightweight",
67 "tag01.annotated",
67 "tag01.annotated",
68 ], @adapter.tags
68 ], @adapter.tags
69 end
69 end
70
70
71 def test_getting_all_revisions
71 def test_getting_all_revisions
72 assert_equal 21, @adapter.revisions('',nil,nil,:all => true).length
72 assert_equal 21, @adapter.revisions('',nil,nil,:all => true).length
73 end
73 end
74
74
75 def test_getting_certain_revisions
75 def test_getting_certain_revisions
76 assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
76 assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
77 end
77 end
78
78
79 def test_revisions_reverse
79 def test_revisions_reverse
80 revs1 = @adapter.revisions('',nil,nil,{:all => true, :reverse => true })
80 revs1 = @adapter.revisions('',nil,nil,{:all => true, :reverse => true })
81 assert_equal 21, revs1.length
81 assert_equal 21, revs1.length
82 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[0].identifier
82 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[0].identifier
83 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[20].identifier
83 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[20].identifier
84 end
84 end
85
85
86 def test_revisions_reverse_with_time
86 def test_revisions_reverse_with_time
87 since2 = Time.gm(2010, 9, 30, 0, 0, 0)
87 since2 = Time.gm(2010, 9, 30, 0, 0, 0)
88 revs2 = @adapter.revisions('', nil, nil,
88 revs2 = @adapter.revisions('', nil, nil,
89 {:all => true, :since => since2, :reverse => true})
89 {:all => true, :since => since2, :reverse => true})
90 assert_equal 6, revs2.length
90 assert_equal 6, revs2.length
91 assert_equal '67e7792ce20ccae2e4bb73eed09bb397819c8834', revs2[0].identifier
91 assert_equal '67e7792ce20ccae2e4bb73eed09bb397819c8834', revs2[0].identifier
92 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[5].identifier
92 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[5].identifier
93 end
93 end
94
94
95 def test_revisions_master_all
95 def test_revisions_master_all
96 revs1 = []
96 revs1 = []
97 @adapter.revisions('', nil, "master",{}) do |rev|
97 @adapter.revisions('', nil, "master",{}) do |rev|
98 revs1 << rev
98 revs1 << rev
99 end
99 end
100 assert_equal 15, revs1.length
100 assert_equal 15, revs1.length
101 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[ 0].identifier
101 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[ 0].identifier
102 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[-1].identifier
102 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[-1].identifier
103
103
104 revs2 = []
104 revs2 = []
105 @adapter.revisions('', nil, "master",
105 @adapter.revisions('', nil, "master",
106 {:reverse => true}) do |rev|
106 {:reverse => true}) do |rev|
107 revs2 << rev
107 revs2 << rev
108 end
108 end
109 assert_equal 15, revs2.length
109 assert_equal 15, revs2.length
110 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs2[-1].identifier
110 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs2[-1].identifier
111 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs2[ 0].identifier
111 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs2[ 0].identifier
112 end
112 end
113
113
114 def test_revisions_master_merged_rev
114 def test_revisions_master_merged_rev
115 revs1 = []
115 revs1 = []
116 @adapter.revisions('',
116 @adapter.revisions('',
117 "713f4944648826f558cf548222f813dabe7cbb04",
117 "713f4944648826f558cf548222f813dabe7cbb04",
118 "master",
118 "master",
119 {:reverse => true}) do |rev|
119 {:reverse => true}) do |rev|
120 revs1 << rev
120 revs1 << rev
121 end
121 end
122 assert_equal 8, revs1.length
122 assert_equal 8, revs1.length
123 assert_equal 'fba357b886984ee71185ad2065e65fc0417d9b92', revs1[ 0].identifier
123 assert_equal 'fba357b886984ee71185ad2065e65fc0417d9b92', revs1[ 0].identifier
124 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs1[ 1].identifier
124 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs1[ 1].identifier
125 # 4a07fe31b is not a child of 713f49446
125 # 4a07fe31b is not a child of 713f49446
126 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs1[ 2].identifier
126 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs1[ 2].identifier
127 # Merged revision
127 # Merged revision
128 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs1[ 3].identifier
128 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs1[ 3].identifier
129 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[-1].identifier
129 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs1[-1].identifier
130
130
131 revs2 = []
131 revs2 = []
132 @adapter.revisions('',
132 @adapter.revisions('',
133 "fba357b886984ee71185ad2065e65fc0417d9b92",
133 "fba357b886984ee71185ad2065e65fc0417d9b92",
134 "master",
134 "master",
135 {:reverse => true}) do |rev|
135 {:reverse => true}) do |rev|
136 revs2 << rev
136 revs2 << rev
137 end
137 end
138 assert_equal 7, revs2.length
138 assert_equal 7, revs2.length
139 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs2[ 0].identifier
139 assert_equal '7e61ac704deecde634b51e59daa8110435dcb3da', revs2[ 0].identifier
140 # 4a07fe31b is not a child of fba357b8869
140 # 4a07fe31b is not a child of fba357b8869
141 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs2[ 1].identifier
141 assert_equal '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8', revs2[ 1].identifier
142 # Merged revision
142 # Merged revision
143 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs2[ 2].identifier
143 assert_equal '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf', revs2[ 2].identifier
144 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs2[-1].identifier
144 assert_equal '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c', revs2[-1].identifier
145 end
145 end
146
146
147 def test_revisions_branch_latin_1_path_encoding_all
147 def test_revisions_branch_latin_1_path_encoding_all
148 revs1 = []
148 revs1 = []
149 @adapter.revisions('', nil, "latin-1-path-encoding",{}) do |rev|
149 @adapter.revisions('', nil, "latin-1-path-encoding",{}) do |rev|
150 revs1 << rev
150 revs1 << rev
151 end
151 end
152 assert_equal 8, revs1.length
152 assert_equal 8, revs1.length
153 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[ 0].identifier
153 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[ 0].identifier
154 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[-1].identifier
154 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs1[-1].identifier
155
155
156 revs2 = []
156 revs2 = []
157 @adapter.revisions('', nil, "latin-1-path-encoding",
157 @adapter.revisions('', nil, "latin-1-path-encoding",
158 {:reverse => true}) do |rev|
158 {:reverse => true}) do |rev|
159 revs2 << rev
159 revs2 << rev
160 end
160 end
161 assert_equal 8, revs2.length
161 assert_equal 8, revs2.length
162 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
162 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
163 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs2[ 0].identifier
163 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518', revs2[ 0].identifier
164 end
164 end
165
165
166 def test_revisions_branch_latin_1_path_encoding_with_rev
166 def test_revisions_branch_latin_1_path_encoding_with_rev
167 revs1 = []
167 revs1 = []
168 @adapter.revisions('',
168 @adapter.revisions('',
169 '7234cb2750b63f47bff735edc50a1c0a433c2518',
169 '7234cb2750b63f47bff735edc50a1c0a433c2518',
170 "latin-1-path-encoding",
170 "latin-1-path-encoding",
171 {:reverse => true}) do |rev|
171 {:reverse => true}) do |rev|
172 revs1 << rev
172 revs1 << rev
173 end
173 end
174 assert_equal 7, revs1.length
174 assert_equal 7, revs1.length
175 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', revs1[ 0].identifier
175 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', revs1[ 0].identifier
176 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[-1].identifier
176 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[-1].identifier
177
177
178 revs2 = []
178 revs2 = []
179 @adapter.revisions('',
179 @adapter.revisions('',
180 '57ca437c0acbbcb749821fdf3726a1367056d364',
180 '57ca437c0acbbcb749821fdf3726a1367056d364',
181 "latin-1-path-encoding",
181 "latin-1-path-encoding",
182 {:reverse => true}) do |rev|
182 {:reverse => true}) do |rev|
183 revs2 << rev
183 revs2 << rev
184 end
184 end
185 assert_equal 3, revs2.length
185 assert_equal 3, revs2.length
186 assert_equal '4fc55c43bf3d3dc2efb66145365ddc17639ce81e', revs2[ 0].identifier
186 assert_equal '4fc55c43bf3d3dc2efb66145365ddc17639ce81e', revs2[ 0].identifier
187 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
187 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
188 end
188 end
189
189
190 def test_revisions_invalid_rev
190 def test_revisions_invalid_rev
191 revs1 = nil
191 revs1 = []
192 revs1 = @adapter.revisions('',
192 @adapter.revisions('',
193 '1234abcd',
193 '1234abcd',
194 "master",
194 "master",
195 {:reverse => true})
195 {:reverse => true}) do |rev|
196 revs1 << rev
197 end
196 assert_equal [], revs1
198 assert_equal [], revs1
197 end
199 end
198
200
199 def test_getting_revisions_with_spaces_in_filename
201 def test_getting_revisions_with_spaces_in_filename
200 assert_equal 1, @adapter.revisions("filemane with spaces.txt",
202 assert_equal 1, @adapter.revisions("filemane with spaces.txt",
201 nil, nil, :all => true).length
203 nil, nil, :all => true).length
202 end
204 end
203
205
204 def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
206 def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
205 assert_equal " filename with a leading space.txt ",
207 assert_equal " filename with a leading space.txt ",
206 @adapter.revisions(" filename with a leading space.txt ",
208 @adapter.revisions(" filename with a leading space.txt ",
207 nil, nil, :all => true)[0].paths[0][:path]
209 nil, nil, :all => true)[0].paths[0][:path]
208 end
210 end
209
211
210 def test_getting_entries_with_leading_and_trailing_spaces_in_filename
212 def test_getting_entries_with_leading_and_trailing_spaces_in_filename
211 assert_equal " filename with a leading space.txt ",
213 assert_equal " filename with a leading space.txt ",
212 @adapter.entries('',
214 @adapter.entries('',
213 '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
215 '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
214 end
216 end
215
217
216 def test_annotate
218 def test_annotate
217 annotate = @adapter.annotate('sources/watchers_controller.rb')
219 annotate = @adapter.annotate('sources/watchers_controller.rb')
218 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
220 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
219 assert_equal 41, annotate.lines.size
221 assert_equal 41, annotate.lines.size
220 assert_equal "# This program is free software; you can redistribute it and/or",
222 assert_equal "# This program is free software; you can redistribute it and/or",
221 annotate.lines[4].strip
223 annotate.lines[4].strip
222 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
224 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
223 annotate.revisions[4].identifier
225 annotate.revisions[4].identifier
224 assert_equal "jsmith", annotate.revisions[4].author
226 assert_equal "jsmith", annotate.revisions[4].author
225 end
227 end
226
228
227 def test_annotate_moved_file
229 def test_annotate_moved_file
228 annotate = @adapter.annotate('renamed_test.txt')
230 annotate = @adapter.annotate('renamed_test.txt')
229 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
231 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
230 assert_equal 2, annotate.lines.size
232 assert_equal 2, annotate.lines.size
231 end
233 end
232
234
233 def test_last_rev
235 def test_last_rev
234 last_rev = @adapter.lastrev("README",
236 last_rev = @adapter.lastrev("README",
235 "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
237 "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
236 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
238 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
237 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
239 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
238 assert_equal "Adam Soltys <asoltys@gmail.com>", last_rev.author
240 assert_equal "Adam Soltys <asoltys@gmail.com>", last_rev.author
239 assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
241 assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
240 end
242 end
241
243
242 def test_last_rev_with_spaces_in_filename
244 def test_last_rev_with_spaces_in_filename
243 last_rev = @adapter.lastrev("filemane with spaces.txt",
245 last_rev = @adapter.lastrev("filemane with spaces.txt",
244 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
246 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
245 str_felix_utf8 = FELIX_UTF8.dup
247 str_felix_utf8 = FELIX_UTF8.dup
246 str_felix_hex = FELIX_HEX.dup
248 str_felix_hex = FELIX_HEX.dup
247 last_rev_author = last_rev.author
249 last_rev_author = last_rev.author
248 if last_rev_author.respond_to?(:force_encoding)
250 if last_rev_author.respond_to?(:force_encoding)
249 last_rev_author.force_encoding('UTF-8')
251 last_rev_author.force_encoding('UTF-8')
250 end
252 end
251 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
253 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
252 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
254 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
253 assert_equal "#{str_felix_utf8} <felix@fachschaften.org>",
255 assert_equal "#{str_felix_utf8} <felix@fachschaften.org>",
254 last_rev.author
256 last_rev.author
255 assert_equal "#{str_felix_hex} <felix@fachschaften.org>",
257 assert_equal "#{str_felix_hex} <felix@fachschaften.org>",
256 last_rev.author
258 last_rev.author
257 assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
259 assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
258 end
260 end
259
261
260 def test_latin_1_path
262 def test_latin_1_path
261 if WINDOWS_PASS
263 if WINDOWS_PASS
262 #
264 #
263 else
265 else
264 p2 = "latin-1-dir/test-#{@char_1}-2.txt"
266 p2 = "latin-1-dir/test-#{@char_1}-2.txt"
265 ['4fc55c43bf3d3dc2efb66145365ddc17639ce81e', '4fc55c43bf3'].each do |r1|
267 ['4fc55c43bf3d3dc2efb66145365ddc17639ce81e', '4fc55c43bf3'].each do |r1|
266 assert @adapter.diff(p2, r1)
268 assert @adapter.diff(p2, r1)
267 assert @adapter.cat(p2, r1)
269 assert @adapter.cat(p2, r1)
268 assert_equal 1, @adapter.annotate(p2, r1).lines.length
270 assert_equal 1, @adapter.annotate(p2, r1).lines.length
269 ['64f1f3e89ad1cb57976ff0ad99a107012ba3481d', '64f1f3e89ad1cb5797'].each do |r2|
271 ['64f1f3e89ad1cb57976ff0ad99a107012ba3481d', '64f1f3e89ad1cb5797'].each do |r2|
270 assert @adapter.diff(p2, r1, r2)
272 assert @adapter.diff(p2, r1, r2)
271 end
273 end
272 end
274 end
273 end
275 end
274 end
276 end
275
277
276 def test_entries_tag
278 def test_entries_tag
277 entries1 = @adapter.entries(nil, 'tag01.annotated',
279 entries1 = @adapter.entries(nil, 'tag01.annotated',
278 options = {:report_last_commit => true})
280 options = {:report_last_commit => true})
279 assert entries1
281 assert entries1
280 assert_equal 3, entries1.size
282 assert_equal 3, entries1.size
281 assert_equal 'sources', entries1[1].name
283 assert_equal 'sources', entries1[1].name
282 assert_equal 'sources', entries1[1].path
284 assert_equal 'sources', entries1[1].path
283 assert_equal 'dir', entries1[1].kind
285 assert_equal 'dir', entries1[1].kind
284 readme = entries1[2]
286 readme = entries1[2]
285 assert_equal 'README', readme.name
287 assert_equal 'README', readme.name
286 assert_equal 'README', readme.path
288 assert_equal 'README', readme.path
287 assert_equal 'file', readme.kind
289 assert_equal 'file', readme.kind
288 assert_equal 27, readme.size
290 assert_equal 27, readme.size
289 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', readme.lastrev.identifier
291 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', readme.lastrev.identifier
290 assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
292 assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
291 end
293 end
292
294
293 def test_entries_branch
295 def test_entries_branch
294 entries1 = @adapter.entries(nil, 'test_branch',
296 entries1 = @adapter.entries(nil, 'test_branch',
295 options = {:report_last_commit => true})
297 options = {:report_last_commit => true})
296 assert entries1
298 assert entries1
297 assert_equal 4, entries1.size
299 assert_equal 4, entries1.size
298 assert_equal 'sources', entries1[1].name
300 assert_equal 'sources', entries1[1].name
299 assert_equal 'sources', entries1[1].path
301 assert_equal 'sources', entries1[1].path
300 assert_equal 'dir', entries1[1].kind
302 assert_equal 'dir', entries1[1].kind
301 readme = entries1[2]
303 readme = entries1[2]
302 assert_equal 'README', readme.name
304 assert_equal 'README', readme.name
303 assert_equal 'README', readme.path
305 assert_equal 'README', readme.path
304 assert_equal 'file', readme.kind
306 assert_equal 'file', readme.kind
305 assert_equal 159, readme.size
307 assert_equal 159, readme.size
306 assert_equal '713f4944648826f558cf548222f813dabe7cbb04', readme.lastrev.identifier
308 assert_equal '713f4944648826f558cf548222f813dabe7cbb04', readme.lastrev.identifier
307 assert_equal Time.gm(2009, 6, 19, 4, 37, 23), readme.lastrev.time
309 assert_equal Time.gm(2009, 6, 19, 4, 37, 23), readme.lastrev.time
308 end
310 end
309
311
310 def test_entries_latin_1_files
312 def test_entries_latin_1_files
311 entries1 = @adapter.entries('latin-1-dir', '64f1f3e8')
313 entries1 = @adapter.entries('latin-1-dir', '64f1f3e8')
312 assert entries1
314 assert entries1
313 assert_equal 3, entries1.size
315 assert_equal 3, entries1.size
314 f1 = entries1[1]
316 f1 = entries1[1]
315 assert_equal "test-#{@char_1}-2.txt", f1.name
317 assert_equal "test-#{@char_1}-2.txt", f1.name
316 assert_equal "latin-1-dir/test-#{@char_1}-2.txt", f1.path
318 assert_equal "latin-1-dir/test-#{@char_1}-2.txt", f1.path
317 assert_equal 'file', f1.kind
319 assert_equal 'file', f1.kind
318 end
320 end
319
321
320 def test_entries_latin_1_dir
322 def test_entries_latin_1_dir
321 if WINDOWS_PASS
323 if WINDOWS_PASS
322 #
324 #
323 else
325 else
324 entries1 = @adapter.entries("latin-1-dir/test-#{@char_1}-subdir",
326 entries1 = @adapter.entries("latin-1-dir/test-#{@char_1}-subdir",
325 '1ca7f5ed')
327 '1ca7f5ed')
326 assert entries1
328 assert entries1
327 assert_equal 3, entries1.size
329 assert_equal 3, entries1.size
328 f1 = entries1[1]
330 f1 = entries1[1]
329 assert_equal "test-#{@char_1}-2.txt", f1.name
331 assert_equal "test-#{@char_1}-2.txt", f1.name
330 assert_equal "latin-1-dir/test-#{@char_1}-subdir/test-#{@char_1}-2.txt", f1.path
332 assert_equal "latin-1-dir/test-#{@char_1}-subdir/test-#{@char_1}-2.txt", f1.path
331 assert_equal 'file', f1.kind
333 assert_equal 'file', f1.kind
332 end
334 end
333 end
335 end
334
336
335 private
337 private
336
338
337 def test_scm_version_for(scm_command_version, version)
339 def test_scm_version_for(scm_command_version, version)
338 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
340 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
339 assert_equal version, @adapter.class.scm_command_version
341 assert_equal version, @adapter.class.scm_command_version
340 end
342 end
341
343
342 else
344 else
343 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
345 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
344 def test_fake; assert true end
346 def test_fake; assert true end
345 end
347 end
346 end
348 end
347
349
348 rescue LoadError
350 rescue LoadError
349 class GitMochaFake < ActiveSupport::TestCase
351 class GitMochaFake < ActiveSupport::TestCase
350 def test_fake; assert(false, "Requires mocha to run those tests") end
352 def test_fake; assert(false, "Requires mocha to run those tests") end
351 end
353 end
352 end
354 end
General Comments 0
You need to be logged in to leave comments. Login now