##// END OF EJS Templates
Rails3: scm: subversion: fix error of test_entry_not_found at functional test...
Toshi MARUYAMA -
r7083:640e7b2c829d
parent child
Show More
@@ -1,377 +1,379
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 require 'repositories_controller'
19 require 'repositories_controller'
20
20
21 # Re-raise errors caught by the controller.
21 # Re-raise errors caught by the controller.
22 class RepositoriesController; def rescue_action(e) raise e end; end
22 class RepositoriesController; def rescue_action(e) raise e end; end
23
23
24 class RepositoriesSubversionControllerTest < ActionController::TestCase
24 class RepositoriesSubversionControllerTest < ActionController::TestCase
25 fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
25 fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
26 :repositories, :issues, :issue_statuses, :changesets, :changes,
26 :repositories, :issues, :issue_statuses, :changesets, :changes,
27 :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
27 :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
28
28
29 PRJ_ID = 3
29 PRJ_ID = 3
30 NUM_REV = 11
30 NUM_REV = 11
31
31
32 def setup
32 def setup
33 @controller = RepositoriesController.new
33 @controller = RepositoriesController.new
34 @request = ActionController::TestRequest.new
34 @request = ActionController::TestRequest.new
35 @response = ActionController::TestResponse.new
35 @response = ActionController::TestResponse.new
36 Setting.default_language = 'en'
36 Setting.default_language = 'en'
37 User.current = nil
37 User.current = nil
38
38
39 @project = Project.find(PRJ_ID)
39 @project = Project.find(PRJ_ID)
40 @repository = Repository::Subversion.create(:project => @project,
40 @repository = Repository::Subversion.create(:project => @project,
41 :url => self.class.subversion_repository_url)
41 :url => self.class.subversion_repository_url)
42 assert @repository
42 assert @repository
43 end
43 end
44
44
45 if repository_configured?('subversion')
45 if repository_configured?('subversion')
46 def test_show
46 def test_show
47 assert_equal 0, @repository.changesets.count
47 assert_equal 0, @repository.changesets.count
48 @repository.fetch_changesets
48 @repository.fetch_changesets
49 @project.reload
49 @project.reload
50 assert_equal NUM_REV, @repository.changesets.count
50 assert_equal NUM_REV, @repository.changesets.count
51 get :show, :id => PRJ_ID
51 get :show, :id => PRJ_ID
52 assert_response :success
52 assert_response :success
53 assert_template 'show'
53 assert_template 'show'
54 assert_not_nil assigns(:entries)
54 assert_not_nil assigns(:entries)
55 assert_not_nil assigns(:changesets)
55 assert_not_nil assigns(:changesets)
56 end
56 end
57
57
58 def test_browse_root
58 def test_browse_root
59 assert_equal 0, @repository.changesets.count
59 assert_equal 0, @repository.changesets.count
60 @repository.fetch_changesets
60 @repository.fetch_changesets
61 @project.reload
61 @project.reload
62 assert_equal NUM_REV, @repository.changesets.count
62 assert_equal NUM_REV, @repository.changesets.count
63 get :show, :id => PRJ_ID
63 get :show, :id => PRJ_ID
64 assert_response :success
64 assert_response :success
65 assert_template 'show'
65 assert_template 'show'
66 assert_not_nil assigns(:entries)
66 assert_not_nil assigns(:entries)
67 entry = assigns(:entries).detect {|e| e.name == 'subversion_test'}
67 entry = assigns(:entries).detect {|e| e.name == 'subversion_test'}
68 assert_equal 'dir', entry.kind
68 assert_equal 'dir', entry.kind
69 end
69 end
70
70
71 def test_browse_directory
71 def test_browse_directory
72 assert_equal 0, @repository.changesets.count
72 assert_equal 0, @repository.changesets.count
73 @repository.fetch_changesets
73 @repository.fetch_changesets
74 @project.reload
74 @project.reload
75 assert_equal NUM_REV, @repository.changesets.count
75 assert_equal NUM_REV, @repository.changesets.count
76 get :show, :id => PRJ_ID, :path => ['subversion_test']
76 get :show, :id => PRJ_ID, :path => ['subversion_test']
77 assert_response :success
77 assert_response :success
78 assert_template 'show'
78 assert_template 'show'
79 assert_not_nil assigns(:entries)
79 assert_not_nil assigns(:entries)
80 assert_equal [
80 assert_equal [
81 '[folder_with_brackets]', 'folder', '.project',
81 '[folder_with_brackets]', 'folder', '.project',
82 'helloworld.c', 'textfile.txt'
82 'helloworld.c', 'textfile.txt'
83 ],
83 ],
84 assigns(:entries).collect(&:name)
84 assigns(:entries).collect(&:name)
85 entry = assigns(:entries).detect {|e| e.name == 'helloworld.c'}
85 entry = assigns(:entries).detect {|e| e.name == 'helloworld.c'}
86 assert_equal 'file', entry.kind
86 assert_equal 'file', entry.kind
87 assert_equal 'subversion_test/helloworld.c', entry.path
87 assert_equal 'subversion_test/helloworld.c', entry.path
88 assert_tag :a, :content => 'helloworld.c', :attributes => { :class => /text\-x\-c/ }
88 assert_tag :a, :content => 'helloworld.c', :attributes => { :class => /text\-x\-c/ }
89 end
89 end
90
90
91 def test_browse_at_given_revision
91 def test_browse_at_given_revision
92 assert_equal 0, @repository.changesets.count
92 assert_equal 0, @repository.changesets.count
93 @repository.fetch_changesets
93 @repository.fetch_changesets
94 @project.reload
94 @project.reload
95 assert_equal NUM_REV, @repository.changesets.count
95 assert_equal NUM_REV, @repository.changesets.count
96 get :show, :id => PRJ_ID, :path => ['subversion_test'], :rev => 4
96 get :show, :id => PRJ_ID, :path => ['subversion_test'], :rev => 4
97 assert_response :success
97 assert_response :success
98 assert_template 'show'
98 assert_template 'show'
99 assert_not_nil assigns(:entries)
99 assert_not_nil assigns(:entries)
100 assert_equal ['folder', '.project', 'helloworld.c', 'helloworld.rb', 'textfile.txt'],
100 assert_equal ['folder', '.project', 'helloworld.c', 'helloworld.rb', 'textfile.txt'],
101 assigns(:entries).collect(&:name)
101 assigns(:entries).collect(&:name)
102 end
102 end
103
103
104 def test_file_changes
104 def test_file_changes
105 assert_equal 0, @repository.changesets.count
105 assert_equal 0, @repository.changesets.count
106 @repository.fetch_changesets
106 @repository.fetch_changesets
107 @project.reload
107 @project.reload
108 assert_equal NUM_REV, @repository.changesets.count
108 assert_equal NUM_REV, @repository.changesets.count
109 get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder', 'helloworld.rb' ]
109 get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder', 'helloworld.rb' ]
110 assert_response :success
110 assert_response :success
111 assert_template 'changes'
111 assert_template 'changes'
112
112
113 changesets = assigns(:changesets)
113 changesets = assigns(:changesets)
114 assert_not_nil changesets
114 assert_not_nil changesets
115 assert_equal %w(6 3 2), changesets.collect(&:revision)
115 assert_equal %w(6 3 2), changesets.collect(&:revision)
116
116
117 # svn properties displayed with svn >= 1.5 only
117 # svn properties displayed with svn >= 1.5 only
118 if Redmine::Scm::Adapters::SubversionAdapter.client_version_above?([1, 5, 0])
118 if Redmine::Scm::Adapters::SubversionAdapter.client_version_above?([1, 5, 0])
119 assert_not_nil assigns(:properties)
119 assert_not_nil assigns(:properties)
120 assert_equal 'native', assigns(:properties)['svn:eol-style']
120 assert_equal 'native', assigns(:properties)['svn:eol-style']
121 assert_tag :ul,
121 assert_tag :ul,
122 :child => { :tag => 'li',
122 :child => { :tag => 'li',
123 :child => { :tag => 'b', :content => 'svn:eol-style' },
123 :child => { :tag => 'b', :content => 'svn:eol-style' },
124 :child => { :tag => 'span', :content => 'native' } }
124 :child => { :tag => 'span', :content => 'native' } }
125 end
125 end
126 end
126 end
127
127
128 def test_directory_changes
128 def test_directory_changes
129 assert_equal 0, @repository.changesets.count
129 assert_equal 0, @repository.changesets.count
130 @repository.fetch_changesets
130 @repository.fetch_changesets
131 @project.reload
131 @project.reload
132 assert_equal NUM_REV, @repository.changesets.count
132 assert_equal NUM_REV, @repository.changesets.count
133 get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder' ]
133 get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder' ]
134 assert_response :success
134 assert_response :success
135 assert_template 'changes'
135 assert_template 'changes'
136
136
137 changesets = assigns(:changesets)
137 changesets = assigns(:changesets)
138 assert_not_nil changesets
138 assert_not_nil changesets
139 assert_equal %w(10 9 7 6 5 2), changesets.collect(&:revision)
139 assert_equal %w(10 9 7 6 5 2), changesets.collect(&:revision)
140 end
140 end
141
141
142 def test_entry
142 def test_entry
143 assert_equal 0, @repository.changesets.count
143 assert_equal 0, @repository.changesets.count
144 @repository.fetch_changesets
144 @repository.fetch_changesets
145 @project.reload
145 @project.reload
146 assert_equal NUM_REV, @repository.changesets.count
146 assert_equal NUM_REV, @repository.changesets.count
147 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
147 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
148 assert_response :success
148 assert_response :success
149 assert_template 'entry'
149 assert_template 'entry'
150 end
150 end
151
151
152 def test_entry_should_send_if_too_big
152 def test_entry_should_send_if_too_big
153 assert_equal 0, @repository.changesets.count
153 assert_equal 0, @repository.changesets.count
154 @repository.fetch_changesets
154 @repository.fetch_changesets
155 @project.reload
155 @project.reload
156 assert_equal NUM_REV, @repository.changesets.count
156 assert_equal NUM_REV, @repository.changesets.count
157 # no files in the test repo is larger than 1KB...
157 # no files in the test repo is larger than 1KB...
158 with_settings :file_max_size_displayed => 0 do
158 with_settings :file_max_size_displayed => 0 do
159 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
159 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
160 assert_response :success
160 assert_response :success
161 assert_template ''
161 assert_template ''
162 assert_equal 'attachment; filename="helloworld.c"',
162 assert_equal 'attachment; filename="helloworld.c"',
163 @response.headers['Content-Disposition']
163 @response.headers['Content-Disposition']
164 end
164 end
165 end
165 end
166
166
167 def test_entry_at_given_revision
167 def test_entry_at_given_revision
168 assert_equal 0, @repository.changesets.count
168 assert_equal 0, @repository.changesets.count
169 @repository.fetch_changesets
169 @repository.fetch_changesets
170 @project.reload
170 @project.reload
171 assert_equal NUM_REV, @repository.changesets.count
171 assert_equal NUM_REV, @repository.changesets.count
172 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
172 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
173 assert_response :success
173 assert_response :success
174 assert_template 'entry'
174 assert_template 'entry'
175 # this line was removed in r3 and file was moved in r6
175 # this line was removed in r3 and file was moved in r6
176 assert_tag :tag => 'td', :attributes => { :class => /line-code/},
176 assert_tag :tag => 'td', :attributes => { :class => /line-code/},
177 :content => /Here's the code/
177 :content => /Here's the code/
178 end
178 end
179
179
180 def test_entry_not_found
180 def test_entry_not_found
181 assert_equal 0, @repository.changesets.count
181 @repository.fetch_changesets
182 @repository.fetch_changesets
182 @repository.reload
183 @project.reload
184 assert_equal NUM_REV, @repository.changesets.count
183 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'zzz.c']
185 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'zzz.c']
184 assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
186 assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
185 :content => /The entry or revision was not found in the repository/
187 :content => /The entry or revision was not found in the repository/
186 end
188 end
187
189
188 def test_entry_download
190 def test_entry_download
189 @repository.fetch_changesets
191 @repository.fetch_changesets
190 @repository.reload
192 @repository.reload
191 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
193 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
192 assert_response :success
194 assert_response :success
193 assert_template ''
195 assert_template ''
194 assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
196 assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
195 end
197 end
196
198
197 def test_directory_entry
199 def test_directory_entry
198 assert_equal 0, @repository.changesets.count
200 assert_equal 0, @repository.changesets.count
199 @repository.fetch_changesets
201 @repository.fetch_changesets
200 @project.reload
202 @project.reload
201 assert_equal NUM_REV, @repository.changesets.count
203 assert_equal NUM_REV, @repository.changesets.count
202 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'folder']
204 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'folder']
203 assert_response :success
205 assert_response :success
204 assert_template 'show'
206 assert_template 'show'
205 assert_not_nil assigns(:entry)
207 assert_not_nil assigns(:entry)
206 assert_equal 'folder', assigns(:entry).name
208 assert_equal 'folder', assigns(:entry).name
207 end
209 end
208
210
209 # TODO: this test needs fixtures.
211 # TODO: this test needs fixtures.
210 def test_revision
212 def test_revision
211 @repository.fetch_changesets
213 @repository.fetch_changesets
212 @repository.reload
214 @repository.reload
213 get :revision, :id => 1, :rev => 2
215 get :revision, :id => 1, :rev => 2
214 assert_response :success
216 assert_response :success
215 assert_template 'revision'
217 assert_template 'revision'
216 assert_tag :tag => 'ul',
218 assert_tag :tag => 'ul',
217 :child => { :tag => 'li',
219 :child => { :tag => 'li',
218 # link to the entry at rev 2
220 # link to the entry at rev 2
219 :child => { :tag => 'a',
221 :child => { :tag => 'a',
220 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/test/some/path/in/the/repo'},
222 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/test/some/path/in/the/repo'},
221 :content => 'repo',
223 :content => 'repo',
222 # link to partial diff
224 # link to partial diff
223 :sibling => { :tag => 'a',
225 :sibling => { :tag => 'a',
224 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/test/some/path/in/the/repo' }
226 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/test/some/path/in/the/repo' }
225 }
227 }
226 }
228 }
227 }
229 }
228 end
230 end
229
231
230 def test_invalid_revision
232 def test_invalid_revision
231 assert_equal 0, @repository.changesets.count
233 assert_equal 0, @repository.changesets.count
232 @repository.fetch_changesets
234 @repository.fetch_changesets
233 @project.reload
235 @project.reload
234 assert_equal NUM_REV, @repository.changesets.count
236 assert_equal NUM_REV, @repository.changesets.count
235 get :revision, :id => PRJ_ID, :rev => 'something_weird'
237 get :revision, :id => PRJ_ID, :rev => 'something_weird'
236 assert_response 404
238 assert_response 404
237 assert_error_tag :content => /was not found/
239 assert_error_tag :content => /was not found/
238 end
240 end
239
241
240 def test_invalid_revision_diff
242 def test_invalid_revision_diff
241 get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird'
243 get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird'
242 assert_response 404
244 assert_response 404
243 assert_error_tag :content => /was not found/
245 assert_error_tag :content => /was not found/
244 end
246 end
245
247
246 def test_empty_revision
248 def test_empty_revision
247 assert_equal 0, @repository.changesets.count
249 assert_equal 0, @repository.changesets.count
248 @repository.fetch_changesets
250 @repository.fetch_changesets
249 @project.reload
251 @project.reload
250 assert_equal NUM_REV, @repository.changesets.count
252 assert_equal NUM_REV, @repository.changesets.count
251 ['', ' ', nil].each do |r|
253 ['', ' ', nil].each do |r|
252 get :revision, :id => PRJ_ID, :rev => r
254 get :revision, :id => PRJ_ID, :rev => r
253 assert_response 404
255 assert_response 404
254 assert_error_tag :content => /was not found/
256 assert_error_tag :content => /was not found/
255 end
257 end
256 end
258 end
257
259
258 # TODO: this test needs fixtures.
260 # TODO: this test needs fixtures.
259 def test_revision_with_repository_pointing_to_a_subdirectory
261 def test_revision_with_repository_pointing_to_a_subdirectory
260 r = Project.find(1).repository
262 r = Project.find(1).repository
261 # Changes repository url to a subdirectory
263 # Changes repository url to a subdirectory
262 r.update_attribute :url, (r.url + '/test/some')
264 r.update_attribute :url, (r.url + '/test/some')
263
265
264 get :revision, :id => 1, :rev => 2
266 get :revision, :id => 1, :rev => 2
265 assert_response :success
267 assert_response :success
266 assert_template 'revision'
268 assert_template 'revision'
267 assert_tag :tag => 'ul',
269 assert_tag :tag => 'ul',
268 :child => { :tag => 'li',
270 :child => { :tag => 'li',
269 # link to the entry at rev 2
271 # link to the entry at rev 2
270 :child => { :tag => 'a',
272 :child => { :tag => 'a',
271 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/path/in/the/repo'},
273 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/path/in/the/repo'},
272 :content => 'repo',
274 :content => 'repo',
273 # link to partial diff
275 # link to partial diff
274 :sibling => { :tag => 'a',
276 :sibling => { :tag => 'a',
275 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/path/in/the/repo' }
277 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/path/in/the/repo' }
276 }
278 }
277 }
279 }
278 }
280 }
279 end
281 end
280
282
281 def test_revision_diff
283 def test_revision_diff
282 assert_equal 0, @repository.changesets.count
284 assert_equal 0, @repository.changesets.count
283 @repository.fetch_changesets
285 @repository.fetch_changesets
284 @project.reload
286 @project.reload
285 assert_equal NUM_REV, @repository.changesets.count
287 assert_equal NUM_REV, @repository.changesets.count
286 ['inline', 'sbs'].each do |dt|
288 ['inline', 'sbs'].each do |dt|
287 get :diff, :id => PRJ_ID, :rev => 3, :type => dt
289 get :diff, :id => PRJ_ID, :rev => 3, :type => dt
288 assert_response :success
290 assert_response :success
289 assert_template 'diff'
291 assert_template 'diff'
290 assert_tag :tag => 'h2',
292 assert_tag :tag => 'h2',
291 :content => / 3/
293 :content => / 3/
292 end
294 end
293 end
295 end
294
296
295 def test_directory_diff
297 def test_directory_diff
296 assert_equal 0, @repository.changesets.count
298 assert_equal 0, @repository.changesets.count
297 @repository.fetch_changesets
299 @repository.fetch_changesets
298 @project.reload
300 @project.reload
299 assert_equal NUM_REV, @repository.changesets.count
301 assert_equal NUM_REV, @repository.changesets.count
300 ['inline', 'sbs'].each do |dt|
302 ['inline', 'sbs'].each do |dt|
301 get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2,
303 get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2,
302 :path => ['subversion_test', 'folder'], :type => dt
304 :path => ['subversion_test', 'folder'], :type => dt
303 assert_response :success
305 assert_response :success
304 assert_template 'diff'
306 assert_template 'diff'
305
307
306 diff = assigns(:diff)
308 diff = assigns(:diff)
307 assert_not_nil diff
309 assert_not_nil diff
308 # 2 files modified
310 # 2 files modified
309 assert_equal 2, Redmine::UnifiedDiff.new(diff).size
311 assert_equal 2, Redmine::UnifiedDiff.new(diff).size
310 assert_tag :tag => 'h2', :content => /2:6/
312 assert_tag :tag => 'h2', :content => /2:6/
311 end
313 end
312 end
314 end
313
315
314 def test_annotate
316 def test_annotate
315 assert_equal 0, @repository.changesets.count
317 assert_equal 0, @repository.changesets.count
316 @repository.fetch_changesets
318 @repository.fetch_changesets
317 @project.reload
319 @project.reload
318 assert_equal NUM_REV, @repository.changesets.count
320 assert_equal NUM_REV, @repository.changesets.count
319 get :annotate, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
321 get :annotate, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
320 assert_response :success
322 assert_response :success
321 assert_template 'annotate'
323 assert_template 'annotate'
322 end
324 end
323
325
324 def test_annotate_at_given_revision
326 def test_annotate_at_given_revision
325 assert_equal 0, @repository.changesets.count
327 assert_equal 0, @repository.changesets.count
326 @repository.fetch_changesets
328 @repository.fetch_changesets
327 @project.reload
329 @project.reload
328 assert_equal NUM_REV, @repository.changesets.count
330 assert_equal NUM_REV, @repository.changesets.count
329 get :annotate, :id => PRJ_ID, :rev => 8, :path => ['subversion_test', 'helloworld.c']
331 get :annotate, :id => PRJ_ID, :rev => 8, :path => ['subversion_test', 'helloworld.c']
330 assert_response :success
332 assert_response :success
331 assert_template 'annotate'
333 assert_template 'annotate'
332 assert_tag :tag => 'h2', :content => /@ 8/
334 assert_tag :tag => 'h2', :content => /@ 8/
333 end
335 end
334
336
335 def test_destroy_valid_repository
337 def test_destroy_valid_repository
336 @request.session[:user_id] = 1 # admin
338 @request.session[:user_id] = 1 # admin
337 assert_equal 0, @repository.changesets.count
339 assert_equal 0, @repository.changesets.count
338 @repository.fetch_changesets
340 @repository.fetch_changesets
339 @project.reload
341 @project.reload
340 assert_equal NUM_REV, @repository.changesets.count
342 assert_equal NUM_REV, @repository.changesets.count
341
343
342 get :destroy, :id => PRJ_ID
344 get :destroy, :id => PRJ_ID
343 assert_response 302
345 assert_response 302
344 @project.reload
346 @project.reload
345 assert_nil @project.repository
347 assert_nil @project.repository
346 end
348 end
347
349
348 def test_destroy_invalid_repository
350 def test_destroy_invalid_repository
349 @request.session[:user_id] = 1 # admin
351 @request.session[:user_id] = 1 # admin
350 assert_equal 0, @repository.changesets.count
352 assert_equal 0, @repository.changesets.count
351 @repository.fetch_changesets
353 @repository.fetch_changesets
352 @project.reload
354 @project.reload
353 assert_equal NUM_REV, @repository.changesets.count
355 assert_equal NUM_REV, @repository.changesets.count
354
356
355 get :destroy, :id => PRJ_ID
357 get :destroy, :id => PRJ_ID
356 assert_response 302
358 assert_response 302
357 @project.reload
359 @project.reload
358 assert_nil @project.repository
360 assert_nil @project.repository
359
361
360 @repository = Repository::Subversion.create(
362 @repository = Repository::Subversion.create(
361 :project => @project,
363 :project => @project,
362 :url => "file:///invalid")
364 :url => "file:///invalid")
363 assert @repository
365 assert @repository
364 @repository.fetch_changesets
366 @repository.fetch_changesets
365 @project.reload
367 @project.reload
366 assert_equal 0, @repository.changesets.count
368 assert_equal 0, @repository.changesets.count
367
369
368 get :destroy, :id => PRJ_ID
370 get :destroy, :id => PRJ_ID
369 assert_response 302
371 assert_response 302
370 @project.reload
372 @project.reload
371 assert_nil @project.repository
373 assert_nil @project.repository
372 end
374 end
373 else
375 else
374 puts "Subversion test repository NOT FOUND. Skipping functional tests !!!"
376 puts "Subversion test repository NOT FOUND. Skipping functional tests !!!"
375 def test_fake; assert true end
377 def test_fake; assert true end
376 end
378 end
377 end
379 end
General Comments 0
You need to be logged in to leave comments. Login now