comparison test/unit/user_test.rb @ 1517:dffacf8a6908 redmine-2.5

Update to Redmine SVN revision 13367 on 2.5-stable branch
author Chris Cannam
date Tue, 09 Sep 2014 09:29:00 +0100
parents e248c7af89ec
children
comparison
equal deleted inserted replaced
1516:b450a9d58aed 1517:dffacf8a6908
32 @jsmith = User.find(2) 32 @jsmith = User.find(2)
33 @dlopper = User.find(3) 33 @dlopper = User.find(3)
34 end 34 end
35 35
36 def test_sorted_scope_should_sort_user_by_display_name 36 def test_sorted_scope_should_sort_user_by_display_name
37 assert_equal User.all.map(&:name).map(&:downcase).sort, User.sorted.all.map(&:name).map(&:downcase) 37 assert_equal User.all.map(&:name).map(&:downcase).sort,
38 User.sorted.map(&:name).map(&:downcase)
38 end 39 end
39 40
40 def test_generate 41 def test_generate
41 User.generate!(:firstname => 'Testing connection') 42 User.generate!(:firstname => 'Testing connection')
42 User.generate!(:firstname => 'Testing connection') 43 User.generate!(:firstname => 'Testing connection')
136 def test_user_login_should_be_case_insensitive 137 def test_user_login_should_be_case_insensitive
137 u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo") 138 u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo")
138 u.login = 'newuser' 139 u.login = 'newuser'
139 u.password, u.password_confirmation = "password", "password" 140 u.password, u.password_confirmation = "password", "password"
140 assert u.save 141 assert u.save
141 u = User.new(:firstname => "Similar", :lastname => "User", :mail => "similaruser@somenet.foo") 142 u = User.new(:firstname => "Similar", :lastname => "User",
143 :mail => "similaruser@somenet.foo")
142 u.login = 'NewUser' 144 u.login = 'NewUser'
143 u.password, u.password_confirmation = "password", "password" 145 u.password, u.password_confirmation = "password", "password"
144 assert !u.save 146 assert !u.save
145 assert_include I18n.translate('activerecord.errors.messages.taken'), u.errors[:login] 147 assert_include I18n.translate('activerecord.errors.messages.taken'), u.errors[:login]
146 end 148 end
179 user.firstname = "firstname" 181 user.firstname = "firstname"
180 assert user.save, "Save failed" 182 assert user.save, "Save failed"
181 end 183 end
182 184
183 def test_destroy_should_delete_members_and_roles 185 def test_destroy_should_delete_members_and_roles
184 members = Member.find_all_by_user_id(2) 186 members = Member.where(:user_id => 2)
185 ms = members.size 187 ms = members.count
186 rs = members.collect(&:roles).flatten.size 188 rs = members.collect(&:roles).flatten.size
187 189 assert ms > 0
190 assert rs > 0
188 assert_difference 'Member.count', - ms do 191 assert_difference 'Member.count', - ms do
189 assert_difference 'MemberRole.count', - rs do 192 assert_difference 'MemberRole.count', - rs do
190 User.find(2).destroy 193 User.find(2).destroy
191 end 194 end
192 end 195 end
193 196 assert_nil User.find_by_id(2)
194 assert_nil User.find_by_id(2) 197 assert_equal 0, Member.where(:user_id => 2).count
195 assert Member.find_all_by_user_id(2).empty?
196 end 198 end
197 199
198 def test_destroy_should_update_attachments 200 def test_destroy_should_update_attachments
199 attachment = Attachment.create!(:container => Project.find(1), 201 attachment = Attachment.create!(:container => Project.find(1),
200 :file => uploaded_test_file("testfile.txt", "text/plain"), 202 :file => uploaded_test_file("testfile.txt", "text/plain"),
205 assert_equal User.anonymous, attachment.reload.author 207 assert_equal User.anonymous, attachment.reload.author
206 end 208 end
207 209
208 def test_destroy_should_update_comments 210 def test_destroy_should_update_comments
209 comment = Comment.create!( 211 comment = Comment.create!(
210 :commented => News.create!(:project_id => 1, :author_id => 1, :title => 'foo', :description => 'foo'), 212 :commented => News.create!(:project_id => 1,
213 :author_id => 1, :title => 'foo', :description => 'foo'),
211 :author => User.find(2), 214 :author => User.find(2),
212 :comments => 'foo' 215 :comments => 'foo'
213 ) 216 )
214 217
215 User.find(2).destroy 218 User.find(2).destroy
216 assert_nil User.find_by_id(2) 219 assert_nil User.find_by_id(2)
217 assert_equal User.anonymous, comment.reload.author 220 assert_equal User.anonymous, comment.reload.author
218 end 221 end
219 222
220 def test_destroy_should_update_issues 223 def test_destroy_should_update_issues
221 issue = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'foo') 224 issue = Issue.create!(:project_id => 1, :author_id => 2,
225 :tracker_id => 1, :subject => 'foo')
222 226
223 User.find(2).destroy 227 User.find(2).destroy
224 assert_nil User.find_by_id(2) 228 assert_nil User.find_by_id(2)
225 assert_equal User.anonymous, issue.reload.author 229 assert_equal User.anonymous, issue.reload.author
226 end 230 end
227 231
228 def test_destroy_should_unassign_issues 232 def test_destroy_should_unassign_issues
229 issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo', :assigned_to_id => 2) 233 issue = Issue.create!(:project_id => 1, :author_id => 1,
234 :tracker_id => 1, :subject => 'foo', :assigned_to_id => 2)
230 235
231 User.find(2).destroy 236 User.find(2).destroy
232 assert_nil User.find_by_id(2) 237 assert_nil User.find_by_id(2)
233 assert_nil issue.reload.assigned_to 238 assert_nil issue.reload.assigned_to
234 end 239 end
235 240
236 def test_destroy_should_update_journals 241 def test_destroy_should_update_journals
237 issue = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'foo') 242 issue = Issue.create!(:project_id => 1, :author_id => 2,
243 :tracker_id => 1, :subject => 'foo')
238 issue.init_journal(User.find(2), "update") 244 issue.init_journal(User.find(2), "update")
239 issue.save! 245 issue.save!
240 246
241 User.find(2).destroy 247 User.find(2).destroy
242 assert_nil User.find_by_id(2) 248 assert_nil User.find_by_id(2)
243 assert_equal User.anonymous, issue.journals.first.reload.user 249 assert_equal User.anonymous, issue.journals.first.reload.user
244 end 250 end
245 251
246 def test_destroy_should_update_journal_details_old_value 252 def test_destroy_should_update_journal_details_old_value
247 issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo', :assigned_to_id => 2) 253 issue = Issue.create!(:project_id => 1, :author_id => 1,
254 :tracker_id => 1, :subject => 'foo', :assigned_to_id => 2)
248 issue.init_journal(User.find(1), "update") 255 issue.init_journal(User.find(1), "update")
249 issue.assigned_to_id = nil 256 issue.assigned_to_id = nil
250 assert_difference 'JournalDetail.count' do 257 assert_difference 'JournalDetail.count' do
251 issue.save! 258 issue.save!
252 end 259 end
253 journal_detail = JournalDetail.first(:order => 'id DESC') 260 journal_detail = JournalDetail.order('id DESC').first
254 assert_equal '2', journal_detail.old_value 261 assert_equal '2', journal_detail.old_value
255 262
256 User.find(2).destroy 263 User.find(2).destroy
257 assert_nil User.find_by_id(2) 264 assert_nil User.find_by_id(2)
258 assert_equal User.anonymous.id.to_s, journal_detail.reload.old_value 265 assert_equal User.anonymous.id.to_s, journal_detail.reload.old_value
259 end 266 end
260 267
261 def test_destroy_should_update_journal_details_value 268 def test_destroy_should_update_journal_details_value
262 issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo') 269 issue = Issue.create!(:project_id => 1, :author_id => 1,
270 :tracker_id => 1, :subject => 'foo')
263 issue.init_journal(User.find(1), "update") 271 issue.init_journal(User.find(1), "update")
264 issue.assigned_to_id = 2 272 issue.assigned_to_id = 2
265 assert_difference 'JournalDetail.count' do 273 assert_difference 'JournalDetail.count' do
266 issue.save! 274 issue.save!
267 end 275 end
268 journal_detail = JournalDetail.first(:order => 'id DESC') 276 journal_detail = JournalDetail.order('id DESC').first
269 assert_equal '2', journal_detail.value 277 assert_equal '2', journal_detail.value
270 278
271 User.find(2).destroy 279 User.find(2).destroy
272 assert_nil User.find_by_id(2) 280 assert_nil User.find_by_id(2)
273 assert_equal User.anonymous.id.to_s, journal_detail.reload.value 281 assert_equal User.anonymous.id.to_s, journal_detail.reload.value
274 end 282 end
275 283
276 def test_destroy_should_update_messages 284 def test_destroy_should_update_messages
277 board = Board.create!(:project_id => 1, :name => 'Board', :description => 'Board') 285 board = Board.create!(:project_id => 1, :name => 'Board', :description => 'Board')
278 message = Message.create!(:board_id => board.id, :author_id => 2, :subject => 'foo', :content => 'foo') 286 message = Message.create!(:board_id => board.id, :author_id => 2,
279 287 :subject => 'foo', :content => 'foo')
280 User.find(2).destroy 288 User.find(2).destroy
281 assert_nil User.find_by_id(2) 289 assert_nil User.find_by_id(2)
282 assert_equal User.anonymous, message.reload.author 290 assert_equal User.anonymous, message.reload.author
283 end 291 end
284 292
285 def test_destroy_should_update_news 293 def test_destroy_should_update_news
286 news = News.create!(:project_id => 1, :author_id => 2, :title => 'foo', :description => 'foo') 294 news = News.create!(:project_id => 1, :author_id => 2,
287 295 :title => 'foo', :description => 'foo')
288 User.find(2).destroy 296 User.find(2).destroy
289 assert_nil User.find_by_id(2) 297 assert_nil User.find_by_id(2)
290 assert_equal User.anonymous, news.reload.author 298 assert_equal User.anonymous, news.reload.author
291 end 299 end
292 300
311 assert_nil User.find_by_id(2) 319 assert_nil User.find_by_id(2)
312 assert_equal User.anonymous, query.reload.user 320 assert_equal User.anonymous, query.reload.user
313 end 321 end
314 322
315 def test_destroy_should_update_time_entries 323 def test_destroy_should_update_time_entries
316 entry = TimeEntry.new(:hours => '2', :spent_on => Date.today, :activity => TimeEntryActivity.create!(:name => 'foo')) 324 entry = TimeEntry.new(:hours => '2', :spent_on => Date.today,
325 :activity => TimeEntryActivity.create!(:name => 'foo'))
317 entry.project_id = 1 326 entry.project_id = 1
318 entry.user_id = 2 327 entry.user_id = 2
319 entry.save! 328 entry.save!
320 329
321 User.find(2).destroy 330 User.find(2).destroy
330 assert_nil User.find_by_id(2) 339 assert_nil User.find_by_id(2)
331 assert_nil Token.find_by_id(token.id) 340 assert_nil Token.find_by_id(token.id)
332 end 341 end
333 342
334 def test_destroy_should_delete_watchers 343 def test_destroy_should_delete_watchers
335 issue = Issue.create!(:project_id => 1, :author_id => 1, :tracker_id => 1, :subject => 'foo') 344 issue = Issue.create!(:project_id => 1, :author_id => 1,
345 :tracker_id => 1, :subject => 'foo')
336 watcher = Watcher.create!(:user_id => 2, :watchable => issue) 346 watcher = Watcher.create!(:user_id => 2, :watchable => issue)
337 347
338 User.find(2).destroy 348 User.find(2).destroy
339 assert_nil User.find_by_id(2) 349 assert_nil User.find_by_id(2)
340 assert_nil Watcher.find_by_id(watcher.id) 350 assert_nil Watcher.find_by_id(watcher.id)
342 352
343 def test_destroy_should_update_wiki_contents 353 def test_destroy_should_update_wiki_contents
344 wiki_content = WikiContent.create!( 354 wiki_content = WikiContent.create!(
345 :text => 'foo', 355 :text => 'foo',
346 :author_id => 2, 356 :author_id => 2,
347 :page => WikiPage.create!(:title => 'Foo', :wiki => Wiki.create!(:project_id => 1, :start_page => 'Start')) 357 :page => WikiPage.create!(:title => 'Foo',
358 :wiki => Wiki.create!(:project_id => 3,
359 :start_page => 'Start'))
348 ) 360 )
349 wiki_content.text = 'bar' 361 wiki_content.text = 'bar'
350 assert_difference 'WikiContent::Version.count' do 362 assert_difference 'WikiContent::Version.count' do
351 wiki_content.save! 363 wiki_content.save!
352 end 364 end
416 assert_equal "admin", user.login 428 assert_equal "admin", user.login
417 end 429 end
418 430
419 def test_validate_password_length 431 def test_validate_password_length
420 with_settings :password_min_length => '100' do 432 with_settings :password_min_length => '100' do
421 user = User.new(:firstname => "new100", :lastname => "user100", :mail => "newuser100@somenet.foo") 433 user = User.new(:firstname => "new100",
434 :lastname => "user100", :mail => "newuser100@somenet.foo")
422 user.login = "newuser100" 435 user.login = "newuser100"
423 user.password, user.password_confirmation = "password100", "password100" 436 user.password, user.password_confirmation = "password100", "password100"
424 assert !user.save 437 assert !user.save
425 assert_equal 1, user.errors.count 438 assert_equal 1, user.errors.count
426 end 439 end
427 end 440 end
428 441
429 def test_name_format 442 def test_name_format
430 assert_equal 'John S.', @jsmith.name(:firstname_lastinitial) 443 assert_equal 'John S.', @jsmith.name(:firstname_lastinitial)
431 assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname) 444 assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname)
445 assert_equal 'J. Smith', @jsmith.name(:firstinitial_lastname)
446 assert_equal 'J.-P. Lang', User.new(:firstname => 'Jean-Philippe', :lastname => 'Lang').name(:firstinitial_lastname)
447 end
448
449 def test_name_should_use_setting_as_default_format
432 with_settings :user_format => :firstname_lastname do 450 with_settings :user_format => :firstname_lastname do
433 assert_equal 'John Smith', @jsmith.reload.name 451 assert_equal 'John Smith', @jsmith.reload.name
434 end 452 end
435 with_settings :user_format => :username do 453 with_settings :user_format => :username do
436 assert_equal 'jsmith', @jsmith.reload.name 454 assert_equal 'jsmith', @jsmith.reload.name
471 assert_equal '2012-05-15', User.find(1).time_to_date(time).to_s 489 assert_equal '2012-05-15', User.find(1).time_to_date(time).to_s
472 end 490 end
473 491
474 def test_fields_for_order_statement_should_return_fields_according_user_format_setting 492 def test_fields_for_order_statement_should_return_fields_according_user_format_setting
475 with_settings :user_format => 'lastname_coma_firstname' do 493 with_settings :user_format => 'lastname_coma_firstname' do
476 assert_equal ['users.lastname', 'users.firstname', 'users.id'], User.fields_for_order_statement 494 assert_equal ['users.lastname', 'users.firstname', 'users.id'],
495 User.fields_for_order_statement
477 end 496 end
478 end 497 end
479 498
480 def test_fields_for_order_statement_width_table_name_should_prepend_table_name 499 def test_fields_for_order_statement_width_table_name_should_prepend_table_name
481 with_settings :user_format => 'lastname_firstname' do 500 with_settings :user_format => 'lastname_firstname' do
482 assert_equal ['authors.lastname', 'authors.firstname', 'authors.id'], User.fields_for_order_statement('authors') 501 assert_equal ['authors.lastname', 'authors.firstname', 'authors.id'],
502 User.fields_for_order_statement('authors')
483 end 503 end
484 end 504 end
485 505
486 def test_fields_for_order_statement_with_blank_format_should_return_default 506 def test_fields_for_order_statement_with_blank_format_should_return_default
487 with_settings :user_format => '' do 507 with_settings :user_format => '' do
488 assert_equal ['users.firstname', 'users.lastname', 'users.id'], User.fields_for_order_statement 508 assert_equal ['users.firstname', 'users.lastname', 'users.id'],
509 User.fields_for_order_statement
489 end 510 end
490 end 511 end
491 512
492 def test_fields_for_order_statement_with_invalid_format_should_return_default 513 def test_fields_for_order_statement_with_invalid_format_should_return_default
493 with_settings :user_format => 'foo' do 514 with_settings :user_format => 'foo' do
494 assert_equal ['users.firstname', 'users.lastname', 'users.id'], User.fields_for_order_statement 515 assert_equal ['users.firstname', 'users.lastname', 'users.id'],
516 User.fields_for_order_statement
495 end 517 end
496 end 518 end
497 519
498 test ".try_to_login with good credentials should return the user" do 520 test ".try_to_login with good credentials should return the user" do
499 user = User.try_to_login("admin", "admin") 521 user = User.try_to_login("admin", "admin")
1096 assert user.check_password?("unsalted") 1118 assert user.check_password?("unsalted")
1097 assert_equal user, User.try_to_login(user.login, "unsalted") 1119 assert_equal user, User.try_to_login(user.login, "unsalted")
1098 end 1120 end
1099 1121
1100 if Object.const_defined?(:OpenID) 1122 if Object.const_defined?(:OpenID)
1101 1123 def test_setting_identity_url
1102 def test_setting_identity_url 1124 normalized_open_id_url = 'http://example.com/'
1103 normalized_open_id_url = 'http://example.com/' 1125 u = User.new( :identity_url => 'http://example.com/' )
1104 u = User.new( :identity_url => 'http://example.com/' ) 1126 assert_equal normalized_open_id_url, u.identity_url
1105 assert_equal normalized_open_id_url, u.identity_url 1127 end
1106 end 1128
1107 1129 def test_setting_identity_url_without_trailing_slash
1108 def test_setting_identity_url_without_trailing_slash 1130 normalized_open_id_url = 'http://example.com/'
1109 normalized_open_id_url = 'http://example.com/' 1131 u = User.new( :identity_url => 'http://example.com' )
1110 u = User.new( :identity_url => 'http://example.com' ) 1132 assert_equal normalized_open_id_url, u.identity_url
1111 assert_equal normalized_open_id_url, u.identity_url 1133 end
1112 end 1134
1113 1135 def test_setting_identity_url_without_protocol
1114 def test_setting_identity_url_without_protocol 1136 normalized_open_id_url = 'http://example.com/'
1115 normalized_open_id_url = 'http://example.com/' 1137 u = User.new( :identity_url => 'example.com' )
1116 u = User.new( :identity_url => 'example.com' ) 1138 assert_equal normalized_open_id_url, u.identity_url
1117 assert_equal normalized_open_id_url, u.identity_url 1139 end
1118 end 1140
1119 1141 def test_setting_blank_identity_url
1120 def test_setting_blank_identity_url 1142 u = User.new( :identity_url => 'example.com' )
1121 u = User.new( :identity_url => 'example.com' ) 1143 u.identity_url = ''
1122 u.identity_url = '' 1144 assert u.identity_url.blank?
1123 assert u.identity_url.blank? 1145 end
1124 end 1146
1125 1147 def test_setting_invalid_identity_url
1126 def test_setting_invalid_identity_url 1148 u = User.new( :identity_url => 'this is not an openid url' )
1127 u = User.new( :identity_url => 'this is not an openid url' ) 1149 assert u.identity_url.blank?
1128 assert u.identity_url.blank? 1150 end
1129 end
1130
1131 else 1151 else
1132 puts "Skipping openid tests." 1152 puts "Skipping openid tests."
1133 end 1153 end
1134
1135 end 1154 end