##// END OF EJS Templates
scm: git: use block to call revisions() in unit adapter test_revisions_branch_latin_1_path_encoding_with_rev() (#7146)....
Toshi MARUYAMA -
r5666:39930c3f4d60
parent child
Show More
@@ -1,346 +1,352
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 = @adapter.revisions('',
167 revs1 = []
168 @adapter.revisions('',
168 '7234cb2750b63f47bff735edc50a1c0a433c2518',
169 '7234cb2750b63f47bff735edc50a1c0a433c2518',
169 "latin-1-path-encoding",
170 "latin-1-path-encoding",
170 {:reverse => true})
171 {:reverse => true}) do |rev|
172 revs1 << rev
173 end
171 assert_equal 7, revs1.length
174 assert_equal 7, revs1.length
172 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', revs1[ 0].identifier
175 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', revs1[ 0].identifier
173 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[-1].identifier
176 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs1[-1].identifier
174
177
175 revs2 = @adapter.revisions('',
178 revs2 = []
179 @adapter.revisions('',
176 '57ca437c0acbbcb749821fdf3726a1367056d364',
180 '57ca437c0acbbcb749821fdf3726a1367056d364',
177 "latin-1-path-encoding",
181 "latin-1-path-encoding",
178 {:reverse => true})
182 {:reverse => true}) do |rev|
183 revs2 << rev
184 end
179 assert_equal 3, revs2.length
185 assert_equal 3, revs2.length
180 assert_equal '4fc55c43bf3d3dc2efb66145365ddc17639ce81e', revs2[ 0].identifier
186 assert_equal '4fc55c43bf3d3dc2efb66145365ddc17639ce81e', revs2[ 0].identifier
181 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
187 assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', revs2[-1].identifier
182 end
188 end
183
189
184 def test_revisions_invalid_rev
190 def test_revisions_invalid_rev
185 revs1 = nil
191 revs1 = nil
186 revs1 = @adapter.revisions('',
192 revs1 = @adapter.revisions('',
187 '1234abcd',
193 '1234abcd',
188 "master",
194 "master",
189 {:reverse => true})
195 {:reverse => true})
190 assert_equal [], revs1
196 assert_equal [], revs1
191 end
197 end
192
198
193 def test_getting_revisions_with_spaces_in_filename
199 def test_getting_revisions_with_spaces_in_filename
194 assert_equal 1, @adapter.revisions("filemane with spaces.txt",
200 assert_equal 1, @adapter.revisions("filemane with spaces.txt",
195 nil, nil, :all => true).length
201 nil, nil, :all => true).length
196 end
202 end
197
203
198 def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
204 def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
199 assert_equal " filename with a leading space.txt ",
205 assert_equal " filename with a leading space.txt ",
200 @adapter.revisions(" filename with a leading space.txt ",
206 @adapter.revisions(" filename with a leading space.txt ",
201 nil, nil, :all => true)[0].paths[0][:path]
207 nil, nil, :all => true)[0].paths[0][:path]
202 end
208 end
203
209
204 def test_getting_entries_with_leading_and_trailing_spaces_in_filename
210 def test_getting_entries_with_leading_and_trailing_spaces_in_filename
205 assert_equal " filename with a leading space.txt ",
211 assert_equal " filename with a leading space.txt ",
206 @adapter.entries('',
212 @adapter.entries('',
207 '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
213 '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
208 end
214 end
209
215
210 def test_annotate
216 def test_annotate
211 annotate = @adapter.annotate('sources/watchers_controller.rb')
217 annotate = @adapter.annotate('sources/watchers_controller.rb')
212 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
218 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
213 assert_equal 41, annotate.lines.size
219 assert_equal 41, annotate.lines.size
214 assert_equal "# This program is free software; you can redistribute it and/or",
220 assert_equal "# This program is free software; you can redistribute it and/or",
215 annotate.lines[4].strip
221 annotate.lines[4].strip
216 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
222 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
217 annotate.revisions[4].identifier
223 annotate.revisions[4].identifier
218 assert_equal "jsmith", annotate.revisions[4].author
224 assert_equal "jsmith", annotate.revisions[4].author
219 end
225 end
220
226
221 def test_annotate_moved_file
227 def test_annotate_moved_file
222 annotate = @adapter.annotate('renamed_test.txt')
228 annotate = @adapter.annotate('renamed_test.txt')
223 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
229 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
224 assert_equal 2, annotate.lines.size
230 assert_equal 2, annotate.lines.size
225 end
231 end
226
232
227 def test_last_rev
233 def test_last_rev
228 last_rev = @adapter.lastrev("README",
234 last_rev = @adapter.lastrev("README",
229 "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
235 "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
230 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
236 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
231 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
237 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
232 assert_equal "Adam Soltys <asoltys@gmail.com>", last_rev.author
238 assert_equal "Adam Soltys <asoltys@gmail.com>", last_rev.author
233 assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
239 assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
234 end
240 end
235
241
236 def test_last_rev_with_spaces_in_filename
242 def test_last_rev_with_spaces_in_filename
237 last_rev = @adapter.lastrev("filemane with spaces.txt",
243 last_rev = @adapter.lastrev("filemane with spaces.txt",
238 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
244 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
239 str_felix_utf8 = FELIX_UTF8.dup
245 str_felix_utf8 = FELIX_UTF8.dup
240 str_felix_hex = FELIX_HEX.dup
246 str_felix_hex = FELIX_HEX.dup
241 last_rev_author = last_rev.author
247 last_rev_author = last_rev.author
242 if last_rev_author.respond_to?(:force_encoding)
248 if last_rev_author.respond_to?(:force_encoding)
243 last_rev_author.force_encoding('UTF-8')
249 last_rev_author.force_encoding('UTF-8')
244 end
250 end
245 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
251 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
246 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
252 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
247 assert_equal "#{str_felix_utf8} <felix@fachschaften.org>",
253 assert_equal "#{str_felix_utf8} <felix@fachschaften.org>",
248 last_rev.author
254 last_rev.author
249 assert_equal "#{str_felix_hex} <felix@fachschaften.org>",
255 assert_equal "#{str_felix_hex} <felix@fachschaften.org>",
250 last_rev.author
256 last_rev.author
251 assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
257 assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
252 end
258 end
253
259
254 def test_latin_1_path
260 def test_latin_1_path
255 if WINDOWS_PASS
261 if WINDOWS_PASS
256 #
262 #
257 else
263 else
258 p2 = "latin-1-dir/test-#{@char_1}-2.txt"
264 p2 = "latin-1-dir/test-#{@char_1}-2.txt"
259 ['4fc55c43bf3d3dc2efb66145365ddc17639ce81e', '4fc55c43bf3'].each do |r1|
265 ['4fc55c43bf3d3dc2efb66145365ddc17639ce81e', '4fc55c43bf3'].each do |r1|
260 assert @adapter.diff(p2, r1)
266 assert @adapter.diff(p2, r1)
261 assert @adapter.cat(p2, r1)
267 assert @adapter.cat(p2, r1)
262 assert_equal 1, @adapter.annotate(p2, r1).lines.length
268 assert_equal 1, @adapter.annotate(p2, r1).lines.length
263 ['64f1f3e89ad1cb57976ff0ad99a107012ba3481d', '64f1f3e89ad1cb5797'].each do |r2|
269 ['64f1f3e89ad1cb57976ff0ad99a107012ba3481d', '64f1f3e89ad1cb5797'].each do |r2|
264 assert @adapter.diff(p2, r1, r2)
270 assert @adapter.diff(p2, r1, r2)
265 end
271 end
266 end
272 end
267 end
273 end
268 end
274 end
269
275
270 def test_entries_tag
276 def test_entries_tag
271 entries1 = @adapter.entries(nil, 'tag01.annotated',
277 entries1 = @adapter.entries(nil, 'tag01.annotated',
272 options = {:report_last_commit => true})
278 options = {:report_last_commit => true})
273 assert entries1
279 assert entries1
274 assert_equal 3, entries1.size
280 assert_equal 3, entries1.size
275 assert_equal 'sources', entries1[1].name
281 assert_equal 'sources', entries1[1].name
276 assert_equal 'sources', entries1[1].path
282 assert_equal 'sources', entries1[1].path
277 assert_equal 'dir', entries1[1].kind
283 assert_equal 'dir', entries1[1].kind
278 readme = entries1[2]
284 readme = entries1[2]
279 assert_equal 'README', readme.name
285 assert_equal 'README', readme.name
280 assert_equal 'README', readme.path
286 assert_equal 'README', readme.path
281 assert_equal 'file', readme.kind
287 assert_equal 'file', readme.kind
282 assert_equal 27, readme.size
288 assert_equal 27, readme.size
283 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', readme.lastrev.identifier
289 assert_equal '899a15dba03a3b350b89c3f537e4bbe02a03cdc9', readme.lastrev.identifier
284 assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
290 assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
285 end
291 end
286
292
287 def test_entries_branch
293 def test_entries_branch
288 entries1 = @adapter.entries(nil, 'test_branch',
294 entries1 = @adapter.entries(nil, 'test_branch',
289 options = {:report_last_commit => true})
295 options = {:report_last_commit => true})
290 assert entries1
296 assert entries1
291 assert_equal 4, entries1.size
297 assert_equal 4, entries1.size
292 assert_equal 'sources', entries1[1].name
298 assert_equal 'sources', entries1[1].name
293 assert_equal 'sources', entries1[1].path
299 assert_equal 'sources', entries1[1].path
294 assert_equal 'dir', entries1[1].kind
300 assert_equal 'dir', entries1[1].kind
295 readme = entries1[2]
301 readme = entries1[2]
296 assert_equal 'README', readme.name
302 assert_equal 'README', readme.name
297 assert_equal 'README', readme.path
303 assert_equal 'README', readme.path
298 assert_equal 'file', readme.kind
304 assert_equal 'file', readme.kind
299 assert_equal 159, readme.size
305 assert_equal 159, readme.size
300 assert_equal '713f4944648826f558cf548222f813dabe7cbb04', readme.lastrev.identifier
306 assert_equal '713f4944648826f558cf548222f813dabe7cbb04', readme.lastrev.identifier
301 assert_equal Time.gm(2009, 6, 19, 4, 37, 23), readme.lastrev.time
307 assert_equal Time.gm(2009, 6, 19, 4, 37, 23), readme.lastrev.time
302 end
308 end
303
309
304 def test_entries_latin_1_files
310 def test_entries_latin_1_files
305 entries1 = @adapter.entries('latin-1-dir', '64f1f3e8')
311 entries1 = @adapter.entries('latin-1-dir', '64f1f3e8')
306 assert entries1
312 assert entries1
307 assert_equal 3, entries1.size
313 assert_equal 3, entries1.size
308 f1 = entries1[1]
314 f1 = entries1[1]
309 assert_equal "test-#{@char_1}-2.txt", f1.name
315 assert_equal "test-#{@char_1}-2.txt", f1.name
310 assert_equal "latin-1-dir/test-#{@char_1}-2.txt", f1.path
316 assert_equal "latin-1-dir/test-#{@char_1}-2.txt", f1.path
311 assert_equal 'file', f1.kind
317 assert_equal 'file', f1.kind
312 end
318 end
313
319
314 def test_entries_latin_1_dir
320 def test_entries_latin_1_dir
315 if WINDOWS_PASS
321 if WINDOWS_PASS
316 #
322 #
317 else
323 else
318 entries1 = @adapter.entries("latin-1-dir/test-#{@char_1}-subdir",
324 entries1 = @adapter.entries("latin-1-dir/test-#{@char_1}-subdir",
319 '1ca7f5ed')
325 '1ca7f5ed')
320 assert entries1
326 assert entries1
321 assert_equal 3, entries1.size
327 assert_equal 3, entries1.size
322 f1 = entries1[1]
328 f1 = entries1[1]
323 assert_equal "test-#{@char_1}-2.txt", f1.name
329 assert_equal "test-#{@char_1}-2.txt", f1.name
324 assert_equal "latin-1-dir/test-#{@char_1}-subdir/test-#{@char_1}-2.txt", f1.path
330 assert_equal "latin-1-dir/test-#{@char_1}-subdir/test-#{@char_1}-2.txt", f1.path
325 assert_equal 'file', f1.kind
331 assert_equal 'file', f1.kind
326 end
332 end
327 end
333 end
328
334
329 private
335 private
330
336
331 def test_scm_version_for(scm_command_version, version)
337 def test_scm_version_for(scm_command_version, version)
332 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
338 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
333 assert_equal version, @adapter.class.scm_command_version
339 assert_equal version, @adapter.class.scm_command_version
334 end
340 end
335
341
336 else
342 else
337 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
343 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
338 def test_fake; assert true end
344 def test_fake; assert true end
339 end
345 end
340 end
346 end
341
347
342 rescue LoadError
348 rescue LoadError
343 class GitMochaFake < ActiveSupport::TestCase
349 class GitMochaFake < ActiveSupport::TestCase
344 def test_fake; assert(false, "Requires mocha to run those tests") end
350 def test_fake; assert(false, "Requires mocha to run those tests") end
345 end
351 end
346 end
352 end
General Comments 0
You need to be logged in to leave comments. Login now