##// END OF EJS Templates
add functional tests for bulk edit time entries (#7996)....
Toshi MARUYAMA -
r5195:c2baf187ac66
parent child
Show More
@@ -129,3 +129,17 custom_fields_009:
129 field_format: date
129 field_format: date
130 default_value: ""
130 default_value: ""
131 editable: true
131 editable: true
132 custom_fields_010:
133 name: Overtime
134 min_length: 0
135 regexp: ""
136 is_for_all: false
137 is_filter: false
138 type: TimeEntryCustomField
139 max_length: 0
140 possible_values: ""
141 id: 10
142 is_required: false
143 field_format: bool
144 default_value: 0
145 editable: true
@@ -55,4 +55,18 time_entries_004:
55 hours: 7.65
55 hours: 7.65
56 user_id: 1
56 user_id: 1
57 tyear: 2007
57 tyear: 2007
58 time_entries_005:
59 created_on: 2011-03-22 12:20:48 +02:00
60 tweek: 12
61 tmonth: 3
62 project_id: 5
63 comments: Time spent on a subproject
64 updated_on: 2011-03-22 12:20:48 +02:00
65 activity_id: 10
66 spent_on: 2011-03-22
67 issue_id:
68 id: 5
69 hours: 7.65
70 user_id: 1
71 tyear: 2011
58
72
@@ -131,6 +131,77 class TimelogControllerTest < ActionController::TestCase
131 assert_equal 2, entry.issue_id
131 assert_equal 2, entry.issue_id
132 assert_equal 2, entry.user_id
132 assert_equal 2, entry.user_id
133 end
133 end
134
135 def test_get_bulk_edit
136 @request.session[:user_id] = 2
137 get :bulk_edit, :ids => [1, 2]
138 assert_response :success
139 assert_template 'bulk_edit'
140
141 # System wide custom field
142 assert_tag :select, :attributes => {:name => 'time_entry[custom_field_values][10]'}
143 end
144
145 def test_get_bulk_edit_on_different_projects
146 @request.session[:user_id] = 2
147 get :bulk_edit, :ids => [1, 2, 6]
148 assert_response :success
149 assert_template 'bulk_edit'
150 end
151
152 def test_bulk_update
153 @request.session[:user_id] = 2
154 # update time entry activity
155 post :bulk_update, :ids => [1, 2], :time_entry => { :activity_id => 9}
156
157 assert_response 302
158 # check that the issues were updated
159 assert_equal [9, 9], TimeEntry.find_all_by_id([1, 2]).collect {|i| i.activity_id}
160 end
161
162 def test_bulk_update_on_different_projects
163 @request.session[:user_id] = 2
164 # update time entry activity
165 post :bulk_update, :ids => [1, 2, 4], :time_entry => { :activity_id => 9 }
166
167 assert_response 302
168 # check that the issues were updated
169 assert_equal [9, 9, 9], TimeEntry.find_all_by_id([1, 2, 4]).collect {|i| i.activity_id}
170 end
171
172 def test_bulk_update_on_different_projects_without_rights
173 @request.session[:user_id] = 3
174 user = User.find(3)
175 action = { :controller => "timelog", :action => "bulk_update" }
176 assert user.allowed_to?(action, TimeEntry.find(1).project)
177 assert ! user.allowed_to?(action, TimeEntry.find(5).project)
178 post :bulk_update, :ids => [1, 5], :time_entry => { :activity_id => 9 }
179 assert_response 403
180 end
181
182 def test_bulk_update_custom_field
183 @request.session[:user_id] = 2
184 post :bulk_update, :ids => [1, 2], :time_entry => { :custom_field_values => {'10' => '0'} }
185
186 assert_response 302
187 assert_equal ["0", "0"], TimeEntry.find_all_by_id([1, 2]).collect {|i| i.custom_value_for(10).value}
188 end
189
190 def test_post_bulk_update_should_redirect_back_using_the_back_url_parameter
191 @request.session[:user_id] = 2
192 post :bulk_update, :ids => [1,2], :back_url => '/time_entries'
193
194 assert_response :redirect
195 assert_redirected_to '/time_entries'
196 end
197
198 def test_post_bulk_update_should_not_redirect_back_using_the_back_url_parameter_off_the_host
199 @request.session[:user_id] = 2
200 post :bulk_update, :ids => [1,2], :back_url => 'http://google.com'
201
202 assert_response :redirect
203 assert_redirected_to :controller => 'timelog', :action => 'index', :project_id => Project.find(1).identifier
204 end
134
205
135 def test_destroy
206 def test_destroy
136 @request.session[:user_id] = 2
207 @request.session[:user_id] = 2
@@ -250,8 +321,8 class TimelogControllerTest < ActionController::TestCase
250 get :index, :format => 'csv'
321 get :index, :format => 'csv'
251 assert_response :success
322 assert_response :success
252 assert_equal 'text/csv', @response.content_type
323 assert_equal 'text/csv', @response.content_type
253 assert @response.body.include?("Date,User,Activity,Project,Issue,Tracker,Subject,Hours,Comment\n")
324 assert @response.body.include?("Date,User,Activity,Project,Issue,Tracker,Subject,Hours,Comment,Overtime\n")
254 assert @response.body.include?("\n04/21/2007,redMine Admin,Design,eCookbook,3,Bug,Error 281 when updating a recipe,1.0,\"\"\n")
325 assert @response.body.include?("\n04/21/2007,redMine Admin,Design,eCookbook,3,Bug,Error 281 when updating a recipe,1.0,\"\",\"\"\n")
255 end
326 end
256
327
257 def test_index_csv_export
328 def test_index_csv_export
@@ -259,7 +330,7 class TimelogControllerTest < ActionController::TestCase
259 get :index, :project_id => 1, :format => 'csv'
330 get :index, :project_id => 1, :format => 'csv'
260 assert_response :success
331 assert_response :success
261 assert_equal 'text/csv', @response.content_type
332 assert_equal 'text/csv', @response.content_type
262 assert @response.body.include?("Date,User,Activity,Project,Issue,Tracker,Subject,Hours,Comment\n")
333 assert @response.body.include?("Date,User,Activity,Project,Issue,Tracker,Subject,Hours,Comment,Overtime\n")
263 assert @response.body.include?("\n04/21/2007,redMine Admin,Design,eCookbook,3,Bug,Error 281 when updating a recipe,1.0,\"\"\n")
334 assert @response.body.include?("\n04/21/2007,redMine Admin,Design,eCookbook,3,Bug,Error 281 when updating a recipe,1.0,\"\",\"\"\n")
264 end
335 end
265 end
336 end
@@ -23,10 +23,10 class TimeEntryActivityTest < ActiveSupport::TestCase
23 def test_should_be_an_enumeration
23 def test_should_be_an_enumeration
24 assert TimeEntryActivity.ancestors.include?(Enumeration)
24 assert TimeEntryActivity.ancestors.include?(Enumeration)
25 end
25 end
26
26
27 def test_objects_count
27 def test_objects_count
28 assert_equal 3, TimeEntryActivity.find_by_name("Design").objects_count
28 assert_equal 3, TimeEntryActivity.find_by_name("Design").objects_count
29 assert_equal 1, TimeEntryActivity.find_by_name("Development").objects_count
29 assert_equal 2, TimeEntryActivity.find_by_name("Development").objects_count
30 end
30 end
31
31
32 def test_option_name
32 def test_option_name
General Comments 0
You need to be logged in to leave comments. Login now