##// END OF EJS Templates
remove redundant empty line from RepositoryMercurialTest...
Toshi MARUYAMA -
r12472:31af31eef7ea
parent child
Show More
@@ -1,378 +1,377
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2014 Jean-Philippe Lang
2 # Copyright (C) 2006-2014 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.expand_path('../../test_helper', __FILE__)
18 require File.expand_path('../../test_helper', __FILE__)
19
19
20 class RepositoryMercurialTest < ActiveSupport::TestCase
20 class RepositoryMercurialTest < ActiveSupport::TestCase
21 fixtures :projects
21 fixtures :projects
22
22
23 include Redmine::I18n
23 include Redmine::I18n
24
24
25 REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
25 REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
26 NUM_REV = 32
26 NUM_REV = 32
27 CHAR_1_HEX = "\xc3\x9c"
27 CHAR_1_HEX = "\xc3\x9c"
28
28
29 def setup
29 def setup
30 @project = Project.find(3)
30 @project = Project.find(3)
31 @repository = Repository::Mercurial.create(
31 @repository = Repository::Mercurial.create(
32 :project => @project,
32 :project => @project,
33 :url => REPOSITORY_PATH,
33 :url => REPOSITORY_PATH,
34 :path_encoding => 'ISO-8859-1'
34 :path_encoding => 'ISO-8859-1'
35 )
35 )
36 assert @repository
36 assert @repository
37 @char_1 = CHAR_1_HEX.dup
37 @char_1 = CHAR_1_HEX.dup
38 @tag_char_1 = "tag-#{CHAR_1_HEX}-00"
38 @tag_char_1 = "tag-#{CHAR_1_HEX}-00"
39 @branch_char_0 = "branch-#{CHAR_1_HEX}-00"
39 @branch_char_0 = "branch-#{CHAR_1_HEX}-00"
40 @branch_char_1 = "branch-#{CHAR_1_HEX}-01"
40 @branch_char_1 = "branch-#{CHAR_1_HEX}-01"
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 @tag_char_1.force_encoding('UTF-8')
43 @tag_char_1.force_encoding('UTF-8')
44 @branch_char_0.force_encoding('UTF-8')
44 @branch_char_0.force_encoding('UTF-8')
45 @branch_char_1.force_encoding('UTF-8')
45 @branch_char_1.force_encoding('UTF-8')
46 end
46 end
47 end
47 end
48
48
49
50 def test_blank_path_to_repository_error_message
49 def test_blank_path_to_repository_error_message
51 set_language_if_valid 'en'
50 set_language_if_valid 'en'
52 repo = Repository::Mercurial.new(
51 repo = Repository::Mercurial.new(
53 :project => @project,
52 :project => @project,
54 :identifier => 'test'
53 :identifier => 'test'
55 )
54 )
56 assert !repo.save
55 assert !repo.save
57 assert_include "Path to repository can't be blank",
56 assert_include "Path to repository can't be blank",
58 repo.errors.full_messages
57 repo.errors.full_messages
59 end
58 end
60
59
61 def test_blank_path_to_repository_error_message_fr
60 def test_blank_path_to_repository_error_message_fr
62 set_language_if_valid 'fr'
61 set_language_if_valid 'fr'
63 str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)"
62 str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)"
64 str.force_encoding('UTF-8') if str.respond_to?(:force_encoding)
63 str.force_encoding('UTF-8') if str.respond_to?(:force_encoding)
65 repo = Repository::Mercurial.new(
64 repo = Repository::Mercurial.new(
66 :project => @project,
65 :project => @project,
67 :url => "",
66 :url => "",
68 :identifier => 'test',
67 :identifier => 'test',
69 :path_encoding => ''
68 :path_encoding => ''
70 )
69 )
71 assert !repo.save
70 assert !repo.save
72 assert_include str, repo.errors.full_messages
71 assert_include str, repo.errors.full_messages
73 end
72 end
74
73
75 if File.directory?(REPOSITORY_PATH)
74 if File.directory?(REPOSITORY_PATH)
76 def test_scm_available
75 def test_scm_available
77 klass = Repository::Mercurial
76 klass = Repository::Mercurial
78 assert_equal "Mercurial", klass.scm_name
77 assert_equal "Mercurial", klass.scm_name
79 assert klass.scm_adapter_class
78 assert klass.scm_adapter_class
80 assert_not_equal "", klass.scm_command
79 assert_not_equal "", klass.scm_command
81 assert_equal true, klass.scm_available
80 assert_equal true, klass.scm_available
82 end
81 end
83
82
84 def test_entries
83 def test_entries
85 entries = @repository.entries
84 entries = @repository.entries
86 assert_kind_of Redmine::Scm::Adapters::Entries, entries
85 assert_kind_of Redmine::Scm::Adapters::Entries, entries
87 end
86 end
88
87
89 def test_fetch_changesets_from_scratch
88 def test_fetch_changesets_from_scratch
90 assert_equal 0, @repository.changesets.count
89 assert_equal 0, @repository.changesets.count
91 @repository.fetch_changesets
90 @repository.fetch_changesets
92 @project.reload
91 @project.reload
93 assert_equal NUM_REV, @repository.changesets.count
92 assert_equal NUM_REV, @repository.changesets.count
94 assert_equal 46, @repository.filechanges.count
93 assert_equal 46, @repository.filechanges.count
95 assert_equal "Initial import.\nThe repository contains 3 files.",
94 assert_equal "Initial import.\nThe repository contains 3 files.",
96 @repository.changesets.find_by_revision('0').comments
95 @repository.changesets.find_by_revision('0').comments
97 end
96 end
98
97
99 def test_fetch_changesets_incremental
98 def test_fetch_changesets_incremental
100 assert_equal 0, @repository.changesets.count
99 assert_equal 0, @repository.changesets.count
101 @repository.fetch_changesets
100 @repository.fetch_changesets
102 @project.reload
101 @project.reload
103 assert_equal NUM_REV, @repository.changesets.count
102 assert_equal NUM_REV, @repository.changesets.count
104 # Remove changesets with revision > 2
103 # Remove changesets with revision > 2
105 @repository.changesets.each {|c| c.destroy if c.revision.to_i > 2}
104 @repository.changesets.each {|c| c.destroy if c.revision.to_i > 2}
106 @project.reload
105 @project.reload
107 @repository.reload
106 @repository.reload
108 assert_equal 3, @repository.changesets.count
107 assert_equal 3, @repository.changesets.count
109
108
110 @repository.fetch_changesets
109 @repository.fetch_changesets
111 @project.reload
110 @project.reload
112 assert_equal NUM_REV, @repository.changesets.count
111 assert_equal NUM_REV, @repository.changesets.count
113 end
112 end
114
113
115 def test_isodatesec
114 def test_isodatesec
116 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
115 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
117 if @repository.scm.class.client_version_above?([1, 0])
116 if @repository.scm.class.client_version_above?([1, 0])
118 assert_equal 0, @repository.changesets.count
117 assert_equal 0, @repository.changesets.count
119 @repository.fetch_changesets
118 @repository.fetch_changesets
120 @project.reload
119 @project.reload
121 assert_equal NUM_REV, @repository.changesets.count
120 assert_equal NUM_REV, @repository.changesets.count
122 rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
121 rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
123 assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
122 assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
124 end
123 end
125 end
124 end
126
125
127 def test_changeset_order_by_revision
126 def test_changeset_order_by_revision
128 assert_equal 0, @repository.changesets.count
127 assert_equal 0, @repository.changesets.count
129 @repository.fetch_changesets
128 @repository.fetch_changesets
130 @project.reload
129 @project.reload
131 assert_equal NUM_REV, @repository.changesets.count
130 assert_equal NUM_REV, @repository.changesets.count
132
131
133 c0 = @repository.latest_changeset
132 c0 = @repository.latest_changeset
134 c1 = @repository.changesets.find_by_revision('0')
133 c1 = @repository.changesets.find_by_revision('0')
135 # sorted by revision (id), not by date
134 # sorted by revision (id), not by date
136 assert c0.revision.to_i > c1.revision.to_i
135 assert c0.revision.to_i > c1.revision.to_i
137 assert c0.committed_on < c1.committed_on
136 assert c0.committed_on < c1.committed_on
138 end
137 end
139
138
140 def test_latest_changesets
139 def test_latest_changesets
141 assert_equal 0, @repository.changesets.count
140 assert_equal 0, @repository.changesets.count
142 @repository.fetch_changesets
141 @repository.fetch_changesets
143 @project.reload
142 @project.reload
144 assert_equal NUM_REV, @repository.changesets.count
143 assert_equal NUM_REV, @repository.changesets.count
145
144
146 # with_limit
145 # with_limit
147 changesets = @repository.latest_changesets('', nil, 2)
146 changesets = @repository.latest_changesets('', nil, 2)
148 assert_equal %w|31 30|, changesets.collect(&:revision)
147 assert_equal %w|31 30|, changesets.collect(&:revision)
149
148
150 # with_filepath
149 # with_filepath
151 changesets = @repository.latest_changesets(
150 changesets = @repository.latest_changesets(
152 '/sql_escape/percent%dir/percent%file1.txt', nil)
151 '/sql_escape/percent%dir/percent%file1.txt', nil)
153 assert_equal %w|30 11 10 9|, changesets.collect(&:revision)
152 assert_equal %w|30 11 10 9|, changesets.collect(&:revision)
154
153
155 changesets = @repository.latest_changesets(
154 changesets = @repository.latest_changesets(
156 '/sql_escape/underscore_dir/understrike_file.txt', nil)
155 '/sql_escape/underscore_dir/understrike_file.txt', nil)
157 assert_equal %w|30 12 9|, changesets.collect(&:revision)
156 assert_equal %w|30 12 9|, changesets.collect(&:revision)
158
157
159 changesets = @repository.latest_changesets('README', nil)
158 changesets = @repository.latest_changesets('README', nil)
160 assert_equal %w|31 30 28 17 8 6 1 0|, changesets.collect(&:revision)
159 assert_equal %w|31 30 28 17 8 6 1 0|, changesets.collect(&:revision)
161
160
162 changesets = @repository.latest_changesets('README','8')
161 changesets = @repository.latest_changesets('README','8')
163 assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
162 assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
164
163
165 changesets = @repository.latest_changesets('README','8', 2)
164 changesets = @repository.latest_changesets('README','8', 2)
166 assert_equal %w|8 6|, changesets.collect(&:revision)
165 assert_equal %w|8 6|, changesets.collect(&:revision)
167
166
168 # with_dirpath
167 # with_dirpath
169 changesets = @repository.latest_changesets('images', nil)
168 changesets = @repository.latest_changesets('images', nil)
170 assert_equal %w|1 0|, changesets.collect(&:revision)
169 assert_equal %w|1 0|, changesets.collect(&:revision)
171
170
172 path = 'sql_escape/percent%dir'
171 path = 'sql_escape/percent%dir'
173 changesets = @repository.latest_changesets(path, nil)
172 changesets = @repository.latest_changesets(path, nil)
174 assert_equal %w|30 13 11 10 9|, changesets.collect(&:revision)
173 assert_equal %w|30 13 11 10 9|, changesets.collect(&:revision)
175
174
176 changesets = @repository.latest_changesets(path, '11')
175 changesets = @repository.latest_changesets(path, '11')
177 assert_equal %w|11 10 9|, changesets.collect(&:revision)
176 assert_equal %w|11 10 9|, changesets.collect(&:revision)
178
177
179 changesets = @repository.latest_changesets(path, '11', 2)
178 changesets = @repository.latest_changesets(path, '11', 2)
180 assert_equal %w|11 10|, changesets.collect(&:revision)
179 assert_equal %w|11 10|, changesets.collect(&:revision)
181
180
182 path = 'sql_escape/underscore_dir'
181 path = 'sql_escape/underscore_dir'
183 changesets = @repository.latest_changesets(path, nil)
182 changesets = @repository.latest_changesets(path, nil)
184 assert_equal %w|30 13 12 9|, changesets.collect(&:revision)
183 assert_equal %w|30 13 12 9|, changesets.collect(&:revision)
185
184
186 changesets = @repository.latest_changesets(path, '12')
185 changesets = @repository.latest_changesets(path, '12')
187 assert_equal %w|12 9|, changesets.collect(&:revision)
186 assert_equal %w|12 9|, changesets.collect(&:revision)
188
187
189 changesets = @repository.latest_changesets(path, '12', 1)
188 changesets = @repository.latest_changesets(path, '12', 1)
190 assert_equal %w|12|, changesets.collect(&:revision)
189 assert_equal %w|12|, changesets.collect(&:revision)
191
190
192 # tag
191 # tag
193 changesets = @repository.latest_changesets('', 'tag_test.00')
192 changesets = @repository.latest_changesets('', 'tag_test.00')
194 assert_equal %w|5 4 3 2 1 0|, changesets.collect(&:revision)
193 assert_equal %w|5 4 3 2 1 0|, changesets.collect(&:revision)
195
194
196 changesets = @repository.latest_changesets('', 'tag_test.00', 2)
195 changesets = @repository.latest_changesets('', 'tag_test.00', 2)
197 assert_equal %w|5 4|, changesets.collect(&:revision)
196 assert_equal %w|5 4|, changesets.collect(&:revision)
198
197
199 changesets = @repository.latest_changesets('sources', 'tag_test.00')
198 changesets = @repository.latest_changesets('sources', 'tag_test.00')
200 assert_equal %w|4 3 2 1 0|, changesets.collect(&:revision)
199 assert_equal %w|4 3 2 1 0|, changesets.collect(&:revision)
201
200
202 changesets = @repository.latest_changesets('sources', 'tag_test.00', 2)
201 changesets = @repository.latest_changesets('sources', 'tag_test.00', 2)
203 assert_equal %w|4 3|, changesets.collect(&:revision)
202 assert_equal %w|4 3|, changesets.collect(&:revision)
204
203
205 # named branch
204 # named branch
206 if @repository.scm.class.client_version_above?([1, 6])
205 if @repository.scm.class.client_version_above?([1, 6])
207 changesets = @repository.latest_changesets('', @branch_char_1)
206 changesets = @repository.latest_changesets('', @branch_char_1)
208 assert_equal %w|27 26|, changesets.collect(&:revision)
207 assert_equal %w|27 26|, changesets.collect(&:revision)
209 end
208 end
210
209
211 changesets = @repository.latest_changesets("latin-1-dir/test-#{@char_1}-subdir", @branch_char_1)
210 changesets = @repository.latest_changesets("latin-1-dir/test-#{@char_1}-subdir", @branch_char_1)
212 assert_equal %w|27|, changesets.collect(&:revision)
211 assert_equal %w|27|, changesets.collect(&:revision)
213 end
212 end
214
213
215 def test_copied_files
214 def test_copied_files
216 assert_equal 0, @repository.changesets.count
215 assert_equal 0, @repository.changesets.count
217 @repository.fetch_changesets
216 @repository.fetch_changesets
218 @project.reload
217 @project.reload
219 assert_equal NUM_REV, @repository.changesets.count
218 assert_equal NUM_REV, @repository.changesets.count
220
219
221 cs1 = @repository.changesets.find_by_revision('13')
220 cs1 = @repository.changesets.find_by_revision('13')
222 assert_not_nil cs1
221 assert_not_nil cs1
223 c1 = cs1.filechanges.sort_by(&:path)
222 c1 = cs1.filechanges.sort_by(&:path)
224 assert_equal 2, c1.size
223 assert_equal 2, c1.size
225
224
226 assert_equal 'A', c1[0].action
225 assert_equal 'A', c1[0].action
227 assert_equal '/sql_escape/percent%dir/percentfile1.txt', c1[0].path
226 assert_equal '/sql_escape/percent%dir/percentfile1.txt', c1[0].path
228 assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path
227 assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path
229 assert_equal '3a330eb32958', c1[0].from_revision
228 assert_equal '3a330eb32958', c1[0].from_revision
230
229
231 assert_equal 'A', c1[1].action
230 assert_equal 'A', c1[1].action
232 assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path
231 assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path
233 assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path
232 assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path
234
233
235 cs2 = @repository.changesets.find_by_revision('15')
234 cs2 = @repository.changesets.find_by_revision('15')
236 c2 = cs2.filechanges
235 c2 = cs2.filechanges
237 assert_equal 1, c2.size
236 assert_equal 1, c2.size
238
237
239 assert_equal 'A', c2[0].action
238 assert_equal 'A', c2[0].action
240 assert_equal '/README (1)[2]&,%.-3_4', c2[0].path
239 assert_equal '/README (1)[2]&,%.-3_4', c2[0].path
241 assert_equal '/README', c2[0].from_path
240 assert_equal '/README', c2[0].from_path
242 assert_equal '933ca60293d7', c2[0].from_revision
241 assert_equal '933ca60293d7', c2[0].from_revision
243
242
244 cs3 = @repository.changesets.find_by_revision('19')
243 cs3 = @repository.changesets.find_by_revision('19')
245 c3 = cs3.filechanges
244 c3 = cs3.filechanges
246 assert_equal 1, c3.size
245 assert_equal 1, c3.size
247 assert_equal 'A', c3[0].action
246 assert_equal 'A', c3[0].action
248 assert_equal "/latin-1-dir/test-#{@char_1}-1.txt", c3[0].path
247 assert_equal "/latin-1-dir/test-#{@char_1}-1.txt", c3[0].path
249 assert_equal "/latin-1-dir/test-#{@char_1}.txt", c3[0].from_path
248 assert_equal "/latin-1-dir/test-#{@char_1}.txt", c3[0].from_path
250 assert_equal '5d9891a1b425', c3[0].from_revision
249 assert_equal '5d9891a1b425', c3[0].from_revision
251 end
250 end
252
251
253 def test_find_changeset_by_name
252 def test_find_changeset_by_name
254 assert_equal 0, @repository.changesets.count
253 assert_equal 0, @repository.changesets.count
255 @repository.fetch_changesets
254 @repository.fetch_changesets
256 @project.reload
255 @project.reload
257 assert_equal NUM_REV, @repository.changesets.count
256 assert_equal NUM_REV, @repository.changesets.count
258 %w|2 400bb8672109 400|.each do |r|
257 %w|2 400bb8672109 400|.each do |r|
259 assert_equal '2', @repository.find_changeset_by_name(r).revision
258 assert_equal '2', @repository.find_changeset_by_name(r).revision
260 end
259 end
261 end
260 end
262
261
263 def test_find_changeset_by_invalid_name
262 def test_find_changeset_by_invalid_name
264 assert_equal 0, @repository.changesets.count
263 assert_equal 0, @repository.changesets.count
265 @repository.fetch_changesets
264 @repository.fetch_changesets
266 @project.reload
265 @project.reload
267 assert_equal NUM_REV, @repository.changesets.count
266 assert_equal NUM_REV, @repository.changesets.count
268 assert_nil @repository.find_changeset_by_name('100000')
267 assert_nil @repository.find_changeset_by_name('100000')
269 end
268 end
270
269
271 def test_identifier
270 def test_identifier
272 assert_equal 0, @repository.changesets.count
271 assert_equal 0, @repository.changesets.count
273 @repository.fetch_changesets
272 @repository.fetch_changesets
274 @project.reload
273 @project.reload
275 assert_equal NUM_REV, @repository.changesets.count
274 assert_equal NUM_REV, @repository.changesets.count
276 c = @repository.changesets.find_by_revision('2')
275 c = @repository.changesets.find_by_revision('2')
277 assert_equal c.scmid, c.identifier
276 assert_equal c.scmid, c.identifier
278 end
277 end
279
278
280 def test_format_identifier
279 def test_format_identifier
281 assert_equal 0, @repository.changesets.count
280 assert_equal 0, @repository.changesets.count
282 @repository.fetch_changesets
281 @repository.fetch_changesets
283 @project.reload
282 @project.reload
284 assert_equal NUM_REV, @repository.changesets.count
283 assert_equal NUM_REV, @repository.changesets.count
285 c = @repository.changesets.find_by_revision('2')
284 c = @repository.changesets.find_by_revision('2')
286 assert_equal '2:400bb8672109', c.format_identifier
285 assert_equal '2:400bb8672109', c.format_identifier
287 end
286 end
288
287
289 def test_find_changeset_by_empty_name
288 def test_find_changeset_by_empty_name
290 assert_equal 0, @repository.changesets.count
289 assert_equal 0, @repository.changesets.count
291 @repository.fetch_changesets
290 @repository.fetch_changesets
292 @project.reload
291 @project.reload
293 assert_equal NUM_REV, @repository.changesets.count
292 assert_equal NUM_REV, @repository.changesets.count
294 ['', ' ', nil].each do |r|
293 ['', ' ', nil].each do |r|
295 assert_nil @repository.find_changeset_by_name(r)
294 assert_nil @repository.find_changeset_by_name(r)
296 end
295 end
297 end
296 end
298
297
299 def test_parents
298 def test_parents
300 assert_equal 0, @repository.changesets.count
299 assert_equal 0, @repository.changesets.count
301 @repository.fetch_changesets
300 @repository.fetch_changesets
302 @project.reload
301 @project.reload
303 assert_equal NUM_REV, @repository.changesets.count
302 assert_equal NUM_REV, @repository.changesets.count
304 r1 = @repository.changesets.find_by_revision('0')
303 r1 = @repository.changesets.find_by_revision('0')
305 assert_equal [], r1.parents
304 assert_equal [], r1.parents
306 r2 = @repository.changesets.find_by_revision('1')
305 r2 = @repository.changesets.find_by_revision('1')
307 assert_equal 1, r2.parents.length
306 assert_equal 1, r2.parents.length
308 assert_equal "0885933ad4f6",
307 assert_equal "0885933ad4f6",
309 r2.parents[0].identifier
308 r2.parents[0].identifier
310 r3 = @repository.changesets.find_by_revision('30')
309 r3 = @repository.changesets.find_by_revision('30')
311 assert_equal 2, r3.parents.length
310 assert_equal 2, r3.parents.length
312 r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort
311 r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort
313 assert_equal "3a330eb32958", r4[0]
312 assert_equal "3a330eb32958", r4[0]
314 assert_equal "a94b0528f24f", r4[1]
313 assert_equal "a94b0528f24f", r4[1]
315 end
314 end
316
315
317 def test_activities
316 def test_activities
318 c = Changeset.new(:repository => @repository,
317 c = Changeset.new(:repository => @repository,
319 :committed_on => Time.now,
318 :committed_on => Time.now,
320 :revision => '123',
319 :revision => '123',
321 :scmid => 'abc400bb8672',
320 :scmid => 'abc400bb8672',
322 :comments => 'test')
321 :comments => 'test')
323 assert c.event_title.include?('123:abc400bb8672:')
322 assert c.event_title.include?('123:abc400bb8672:')
324 assert_equal 'abc400bb8672', c.event_url[:rev]
323 assert_equal 'abc400bb8672', c.event_url[:rev]
325 end
324 end
326
325
327 def test_previous
326 def test_previous
328 assert_equal 0, @repository.changesets.count
327 assert_equal 0, @repository.changesets.count
329 @repository.fetch_changesets
328 @repository.fetch_changesets
330 @project.reload
329 @project.reload
331 assert_equal NUM_REV, @repository.changesets.count
330 assert_equal NUM_REV, @repository.changesets.count
332 %w|28 3ae45e2d177d 3ae45|.each do |r1|
331 %w|28 3ae45e2d177d 3ae45|.each do |r1|
333 changeset = @repository.find_changeset_by_name(r1)
332 changeset = @repository.find_changeset_by_name(r1)
334 %w|27 7bbf4c738e71 7bbf|.each do |r2|
333 %w|27 7bbf4c738e71 7bbf|.each do |r2|
335 assert_equal @repository.find_changeset_by_name(r2), changeset.previous
334 assert_equal @repository.find_changeset_by_name(r2), changeset.previous
336 end
335 end
337 end
336 end
338 end
337 end
339
338
340 def test_previous_nil
339 def test_previous_nil
341 assert_equal 0, @repository.changesets.count
340 assert_equal 0, @repository.changesets.count
342 @repository.fetch_changesets
341 @repository.fetch_changesets
343 @project.reload
342 @project.reload
344 assert_equal NUM_REV, @repository.changesets.count
343 assert_equal NUM_REV, @repository.changesets.count
345 %w|0 0885933ad4f6 0885|.each do |r1|
344 %w|0 0885933ad4f6 0885|.each do |r1|
346 changeset = @repository.find_changeset_by_name(r1)
345 changeset = @repository.find_changeset_by_name(r1)
347 assert_nil changeset.previous
346 assert_nil changeset.previous
348 end
347 end
349 end
348 end
350
349
351 def test_next
350 def test_next
352 assert_equal 0, @repository.changesets.count
351 assert_equal 0, @repository.changesets.count
353 @repository.fetch_changesets
352 @repository.fetch_changesets
354 @project.reload
353 @project.reload
355 assert_equal NUM_REV, @repository.changesets.count
354 assert_equal NUM_REV, @repository.changesets.count
356 %w|27 7bbf4c738e71 7bbf|.each do |r2|
355 %w|27 7bbf4c738e71 7bbf|.each do |r2|
357 changeset = @repository.find_changeset_by_name(r2)
356 changeset = @repository.find_changeset_by_name(r2)
358 %w|28 3ae45e2d177d 3ae45|.each do |r1|
357 %w|28 3ae45e2d177d 3ae45|.each do |r1|
359 assert_equal @repository.find_changeset_by_name(r1), changeset.next
358 assert_equal @repository.find_changeset_by_name(r1), changeset.next
360 end
359 end
361 end
360 end
362 end
361 end
363
362
364 def test_next_nil
363 def test_next_nil
365 assert_equal 0, @repository.changesets.count
364 assert_equal 0, @repository.changesets.count
366 @repository.fetch_changesets
365 @repository.fetch_changesets
367 @project.reload
366 @project.reload
368 assert_equal NUM_REV, @repository.changesets.count
367 assert_equal NUM_REV, @repository.changesets.count
369 %w|31 31eeee7395c8 31eee|.each do |r1|
368 %w|31 31eeee7395c8 31eee|.each do |r1|
370 changeset = @repository.find_changeset_by_name(r1)
369 changeset = @repository.find_changeset_by_name(r1)
371 assert_nil changeset.next
370 assert_nil changeset.next
372 end
371 end
373 end
372 end
374 else
373 else
375 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
374 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
376 def test_fake; assert true end
375 def test_fake; assert true end
377 end
376 end
378 end
377 end
General Comments 0
You need to be logged in to leave comments. Login now