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