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