##// END OF EJS Templates
Rails3: scm: subversion: fix error of test_directory_changes at functional test...
Toshi MARUYAMA -
r7079:b90cc49ecbc4
parent child
Show More
@@ -1,369 +1,371
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 @repository.fetch_changesets
130 @repository.fetch_changesets
130 @repository.reload
131 @project.reload
132 assert_equal NUM_REV, @repository.changesets.count
131 get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder' ]
133 get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder' ]
132 assert_response :success
134 assert_response :success
133 assert_template 'changes'
135 assert_template 'changes'
134
136
135 changesets = assigns(:changesets)
137 changesets = assigns(:changesets)
136 assert_not_nil changesets
138 assert_not_nil changesets
137 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)
138 end
140 end
139
141
140 def test_entry
142 def test_entry
141 @repository.fetch_changesets
143 @repository.fetch_changesets
142 @repository.reload
144 @repository.reload
143 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
145 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
144 assert_response :success
146 assert_response :success
145 assert_template 'entry'
147 assert_template 'entry'
146 end
148 end
147
149
148 def test_entry_should_send_if_too_big
150 def test_entry_should_send_if_too_big
149 @repository.fetch_changesets
151 @repository.fetch_changesets
150 @repository.reload
152 @repository.reload
151 # no files in the test repo is larger than 1KB...
153 # no files in the test repo is larger than 1KB...
152 with_settings :file_max_size_displayed => 0 do
154 with_settings :file_max_size_displayed => 0 do
153 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
155 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
154 assert_response :success
156 assert_response :success
155 assert_template ''
157 assert_template ''
156 assert_equal 'attachment; filename="helloworld.c"',
158 assert_equal 'attachment; filename="helloworld.c"',
157 @response.headers['Content-Disposition']
159 @response.headers['Content-Disposition']
158 end
160 end
159 end
161 end
160
162
161 def test_entry_at_given_revision
163 def test_entry_at_given_revision
162 @repository.fetch_changesets
164 @repository.fetch_changesets
163 @repository.reload
165 @repository.reload
164 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
166 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
165 assert_response :success
167 assert_response :success
166 assert_template 'entry'
168 assert_template 'entry'
167 # this line was removed in r3 and file was moved in r6
169 # this line was removed in r3 and file was moved in r6
168 assert_tag :tag => 'td', :attributes => { :class => /line-code/},
170 assert_tag :tag => 'td', :attributes => { :class => /line-code/},
169 :content => /Here's the code/
171 :content => /Here's the code/
170 end
172 end
171
173
172 def test_entry_not_found
174 def test_entry_not_found
173 @repository.fetch_changesets
175 @repository.fetch_changesets
174 @repository.reload
176 @repository.reload
175 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'zzz.c']
177 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'zzz.c']
176 assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
178 assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
177 :content => /The entry or revision was not found in the repository/
179 :content => /The entry or revision was not found in the repository/
178 end
180 end
179
181
180 def test_entry_download
182 def test_entry_download
181 @repository.fetch_changesets
183 @repository.fetch_changesets
182 @repository.reload
184 @repository.reload
183 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
185 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
184 assert_response :success
186 assert_response :success
185 assert_template ''
187 assert_template ''
186 assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
188 assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
187 end
189 end
188
190
189 def test_directory_entry
191 def test_directory_entry
190 assert_equal 0, @repository.changesets.count
192 assert_equal 0, @repository.changesets.count
191 @repository.fetch_changesets
193 @repository.fetch_changesets
192 @project.reload
194 @project.reload
193 assert_equal NUM_REV, @repository.changesets.count
195 assert_equal NUM_REV, @repository.changesets.count
194 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'folder']
196 get :entry, :id => PRJ_ID, :path => ['subversion_test', 'folder']
195 assert_response :success
197 assert_response :success
196 assert_template 'show'
198 assert_template 'show'
197 assert_not_nil assigns(:entry)
199 assert_not_nil assigns(:entry)
198 assert_equal 'folder', assigns(:entry).name
200 assert_equal 'folder', assigns(:entry).name
199 end
201 end
200
202
201 # TODO: this test needs fixtures.
203 # TODO: this test needs fixtures.
202 def test_revision
204 def test_revision
203 @repository.fetch_changesets
205 @repository.fetch_changesets
204 @repository.reload
206 @repository.reload
205 get :revision, :id => 1, :rev => 2
207 get :revision, :id => 1, :rev => 2
206 assert_response :success
208 assert_response :success
207 assert_template 'revision'
209 assert_template 'revision'
208 assert_tag :tag => 'ul',
210 assert_tag :tag => 'ul',
209 :child => { :tag => 'li',
211 :child => { :tag => 'li',
210 # link to the entry at rev 2
212 # link to the entry at rev 2
211 :child => { :tag => 'a',
213 :child => { :tag => 'a',
212 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/test/some/path/in/the/repo'},
214 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/test/some/path/in/the/repo'},
213 :content => 'repo',
215 :content => 'repo',
214 # link to partial diff
216 # link to partial diff
215 :sibling => { :tag => 'a',
217 :sibling => { :tag => 'a',
216 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/test/some/path/in/the/repo' }
218 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/test/some/path/in/the/repo' }
217 }
219 }
218 }
220 }
219 }
221 }
220 end
222 end
221
223
222 def test_invalid_revision
224 def test_invalid_revision
223 assert_equal 0, @repository.changesets.count
225 assert_equal 0, @repository.changesets.count
224 @repository.fetch_changesets
226 @repository.fetch_changesets
225 @project.reload
227 @project.reload
226 assert_equal NUM_REV, @repository.changesets.count
228 assert_equal NUM_REV, @repository.changesets.count
227 get :revision, :id => PRJ_ID, :rev => 'something_weird'
229 get :revision, :id => PRJ_ID, :rev => 'something_weird'
228 assert_response 404
230 assert_response 404
229 assert_error_tag :content => /was not found/
231 assert_error_tag :content => /was not found/
230 end
232 end
231
233
232 def test_invalid_revision_diff
234 def test_invalid_revision_diff
233 get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird'
235 get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird'
234 assert_response 404
236 assert_response 404
235 assert_error_tag :content => /was not found/
237 assert_error_tag :content => /was not found/
236 end
238 end
237
239
238 def test_empty_revision
240 def test_empty_revision
239 assert_equal 0, @repository.changesets.count
241 assert_equal 0, @repository.changesets.count
240 @repository.fetch_changesets
242 @repository.fetch_changesets
241 @project.reload
243 @project.reload
242 assert_equal NUM_REV, @repository.changesets.count
244 assert_equal NUM_REV, @repository.changesets.count
243 ['', ' ', nil].each do |r|
245 ['', ' ', nil].each do |r|
244 get :revision, :id => PRJ_ID, :rev => r
246 get :revision, :id => PRJ_ID, :rev => r
245 assert_response 404
247 assert_response 404
246 assert_error_tag :content => /was not found/
248 assert_error_tag :content => /was not found/
247 end
249 end
248 end
250 end
249
251
250 # TODO: this test needs fixtures.
252 # TODO: this test needs fixtures.
251 def test_revision_with_repository_pointing_to_a_subdirectory
253 def test_revision_with_repository_pointing_to_a_subdirectory
252 r = Project.find(1).repository
254 r = Project.find(1).repository
253 # Changes repository url to a subdirectory
255 # Changes repository url to a subdirectory
254 r.update_attribute :url, (r.url + '/test/some')
256 r.update_attribute :url, (r.url + '/test/some')
255
257
256 get :revision, :id => 1, :rev => 2
258 get :revision, :id => 1, :rev => 2
257 assert_response :success
259 assert_response :success
258 assert_template 'revision'
260 assert_template 'revision'
259 assert_tag :tag => 'ul',
261 assert_tag :tag => 'ul',
260 :child => { :tag => 'li',
262 :child => { :tag => 'li',
261 # link to the entry at rev 2
263 # link to the entry at rev 2
262 :child => { :tag => 'a',
264 :child => { :tag => 'a',
263 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/path/in/the/repo'},
265 :attributes => {:href => '/projects/ecookbook/repository/revisions/2/entry/path/in/the/repo'},
264 :content => 'repo',
266 :content => 'repo',
265 # link to partial diff
267 # link to partial diff
266 :sibling => { :tag => 'a',
268 :sibling => { :tag => 'a',
267 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/path/in/the/repo' }
269 :attributes => { :href => '/projects/ecookbook/repository/revisions/2/diff/path/in/the/repo' }
268 }
270 }
269 }
271 }
270 }
272 }
271 end
273 end
272
274
273 def test_revision_diff
275 def test_revision_diff
274 assert_equal 0, @repository.changesets.count
276 assert_equal 0, @repository.changesets.count
275 @repository.fetch_changesets
277 @repository.fetch_changesets
276 @project.reload
278 @project.reload
277 assert_equal NUM_REV, @repository.changesets.count
279 assert_equal NUM_REV, @repository.changesets.count
278 ['inline', 'sbs'].each do |dt|
280 ['inline', 'sbs'].each do |dt|
279 get :diff, :id => PRJ_ID, :rev => 3, :type => dt
281 get :diff, :id => PRJ_ID, :rev => 3, :type => dt
280 assert_response :success
282 assert_response :success
281 assert_template 'diff'
283 assert_template 'diff'
282 assert_tag :tag => 'h2',
284 assert_tag :tag => 'h2',
283 :content => / 3/
285 :content => / 3/
284 end
286 end
285 end
287 end
286
288
287 def test_directory_diff
289 def test_directory_diff
288 assert_equal 0, @repository.changesets.count
290 assert_equal 0, @repository.changesets.count
289 @repository.fetch_changesets
291 @repository.fetch_changesets
290 @project.reload
292 @project.reload
291 assert_equal NUM_REV, @repository.changesets.count
293 assert_equal NUM_REV, @repository.changesets.count
292 ['inline', 'sbs'].each do |dt|
294 ['inline', 'sbs'].each do |dt|
293 get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2,
295 get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2,
294 :path => ['subversion_test', 'folder'], :type => dt
296 :path => ['subversion_test', 'folder'], :type => dt
295 assert_response :success
297 assert_response :success
296 assert_template 'diff'
298 assert_template 'diff'
297
299
298 diff = assigns(:diff)
300 diff = assigns(:diff)
299 assert_not_nil diff
301 assert_not_nil diff
300 # 2 files modified
302 # 2 files modified
301 assert_equal 2, Redmine::UnifiedDiff.new(diff).size
303 assert_equal 2, Redmine::UnifiedDiff.new(diff).size
302 assert_tag :tag => 'h2', :content => /2:6/
304 assert_tag :tag => 'h2', :content => /2:6/
303 end
305 end
304 end
306 end
305
307
306 def test_annotate
308 def test_annotate
307 assert_equal 0, @repository.changesets.count
309 assert_equal 0, @repository.changesets.count
308 @repository.fetch_changesets
310 @repository.fetch_changesets
309 @project.reload
311 @project.reload
310 assert_equal NUM_REV, @repository.changesets.count
312 assert_equal NUM_REV, @repository.changesets.count
311 get :annotate, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
313 get :annotate, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
312 assert_response :success
314 assert_response :success
313 assert_template 'annotate'
315 assert_template 'annotate'
314 end
316 end
315
317
316 def test_annotate_at_given_revision
318 def test_annotate_at_given_revision
317 assert_equal 0, @repository.changesets.count
319 assert_equal 0, @repository.changesets.count
318 @repository.fetch_changesets
320 @repository.fetch_changesets
319 @project.reload
321 @project.reload
320 assert_equal NUM_REV, @repository.changesets.count
322 assert_equal NUM_REV, @repository.changesets.count
321 get :annotate, :id => PRJ_ID, :rev => 8, :path => ['subversion_test', 'helloworld.c']
323 get :annotate, :id => PRJ_ID, :rev => 8, :path => ['subversion_test', 'helloworld.c']
322 assert_response :success
324 assert_response :success
323 assert_template 'annotate'
325 assert_template 'annotate'
324 assert_tag :tag => 'h2', :content => /@ 8/
326 assert_tag :tag => 'h2', :content => /@ 8/
325 end
327 end
326
328
327 def test_destroy_valid_repository
329 def test_destroy_valid_repository
328 @request.session[:user_id] = 1 # admin
330 @request.session[:user_id] = 1 # admin
329 assert_equal 0, @repository.changesets.count
331 assert_equal 0, @repository.changesets.count
330 @repository.fetch_changesets
332 @repository.fetch_changesets
331 @project.reload
333 @project.reload
332 assert_equal NUM_REV, @repository.changesets.count
334 assert_equal NUM_REV, @repository.changesets.count
333
335
334 get :destroy, :id => PRJ_ID
336 get :destroy, :id => PRJ_ID
335 assert_response 302
337 assert_response 302
336 @project.reload
338 @project.reload
337 assert_nil @project.repository
339 assert_nil @project.repository
338 end
340 end
339
341
340 def test_destroy_invalid_repository
342 def test_destroy_invalid_repository
341 @request.session[:user_id] = 1 # admin
343 @request.session[:user_id] = 1 # admin
342 assert_equal 0, @repository.changesets.count
344 assert_equal 0, @repository.changesets.count
343 @repository.fetch_changesets
345 @repository.fetch_changesets
344 @project.reload
346 @project.reload
345 assert_equal NUM_REV, @repository.changesets.count
347 assert_equal NUM_REV, @repository.changesets.count
346
348
347 get :destroy, :id => PRJ_ID
349 get :destroy, :id => PRJ_ID
348 assert_response 302
350 assert_response 302
349 @project.reload
351 @project.reload
350 assert_nil @project.repository
352 assert_nil @project.repository
351
353
352 @repository = Repository::Subversion.create(
354 @repository = Repository::Subversion.create(
353 :project => @project,
355 :project => @project,
354 :url => "file:///invalid")
356 :url => "file:///invalid")
355 assert @repository
357 assert @repository
356 @repository.fetch_changesets
358 @repository.fetch_changesets
357 @project.reload
359 @project.reload
358 assert_equal 0, @repository.changesets.count
360 assert_equal 0, @repository.changesets.count
359
361
360 get :destroy, :id => PRJ_ID
362 get :destroy, :id => PRJ_ID
361 assert_response 302
363 assert_response 302
362 @project.reload
364 @project.reload
363 assert_nil @project.repository
365 assert_nil @project.repository
364 end
366 end
365 else
367 else
366 puts "Subversion test repository NOT FOUND. Skipping functional tests !!!"
368 puts "Subversion test repository NOT FOUND. Skipping functional tests !!!"
367 def test_fake; assert true end
369 def test_fake; assert true end
368 end
370 end
369 end
371 end
General Comments 0
You need to be logged in to leave comments. Login now