Commit 9f85f19d10c63c970ae54a086bf3119a183d874f

Authored by Victor Costa
2 parents 60212e1c 2c471ec2

Merge branch 'register_performance' into production

app/models/person.rb
@@ -310,7 +310,7 @@ roles] } @@ -310,7 +310,7 @@ roles] }
310 end 310 end
311 311
312 after_update do |person| 312 after_update do |person|
313 - person.user.save! 313 + person.user.save! unless person.user.changes.blank?
314 end 314 end
315 315
316 def is_admin?(environment = nil) 316 def is_admin?(environment = nil)
app/models/user.rb
@@ -394,7 +394,7 @@ class User < ActiveRecord::Base @@ -394,7 +394,7 @@ class User < ActiveRecord::Base
394 394
395 def deliver_activation_code 395 def deliver_activation_code
396 return if person.is_template? 396 return if person.is_template?
397 - UserMailer.activation_code(self).deliver unless self.activation_code.blank? 397 + Delayed::Job.enqueue(UserMailer::Job.new(self, :activation_code)) unless self.activation_code.blank?
398 end 398 end
399 399
400 def delay_activation_check 400 def delay_activation_check
test/functional/search_controller_test.rb
@@ -30,6 +30,7 @@ class SearchControllerTest < ActionController::TestCase @@ -30,6 +30,7 @@ class SearchControllerTest < ActionController::TestCase
30 # By pass user validation on person creation 30 # By pass user validation on person creation
31 user = mock() 31 user = mock()
32 user.stubs(:id).returns(1) 32 user.stubs(:id).returns(1)
  33 + user.stubs(:changes).returns(nil)
33 user.stubs(:valid?).returns(true) 34 user.stubs(:valid?).returns(true)
34 user.stubs(:email).returns('some@test.com') 35 user.stubs(:email).returns('some@test.com')
35 user.stubs(:save!).returns(true) 36 user.stubs(:save!).returns(true)
test/unit/person_test.rb
@@ -1827,4 +1827,11 @@ class PersonTest < ActiveSupport::TestCase @@ -1827,4 +1827,11 @@ class PersonTest < ActiveSupport::TestCase
1827 assert person.voted_against?(article) 1827 assert person.voted_against?(article)
1828 end 1828 end
1829 1829
  1830 + should 'not save user after an update on person and user is not touched' do
  1831 + user = create_user('testuser')
  1832 + person = user.person
  1833 + person.user.expects(:save!).never
  1834 + person.save!
  1835 + end
  1836 +
1830 end 1837 end
test/unit/user_test.rb
@@ -528,6 +528,7 @@ class UserTest < ActiveSupport::TestCase @@ -528,6 +528,7 @@ class UserTest < ActiveSupport::TestCase
528 should 'deliver e-mail with activation code after creation' do 528 should 'deliver e-mail with activation code after creation' do
529 assert_difference 'ActionMailer::Base.deliveries.size', 1 do 529 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
530 new_user :email => 'pending@activation.com' 530 new_user :email => 'pending@activation.com'
  531 + process_delayed_job_queue
531 end 532 end
532 assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s 533 assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s
533 end 534 end
@@ -656,6 +657,7 @@ class UserTest < ActiveSupport::TestCase @@ -656,6 +657,7 @@ class UserTest < ActiveSupport::TestCase
656 env.save 657 env.save
657 658
658 user = new_user :email => 'pending@activation.com' 659 user = new_user :email => 'pending@activation.com'
  660 + process_delayed_job_queue
659 assert_difference 'ActionMailer::Base.deliveries.size', 1 do 661 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
660 user.activate 662 user.activate
661 process_delayed_job_queue 663 process_delayed_job_queue
@@ -676,6 +678,7 @@ class UserTest < ActiveSupport::TestCase @@ -676,6 +678,7 @@ class UserTest < ActiveSupport::TestCase
676 env.save 678 env.save
677 679
678 user = new_user :email => 'pending@activation.com' 680 user = new_user :email => 'pending@activation.com'
  681 + process_delayed_job_queue
679 assert_difference 'ActionMailer::Base.deliveries.size', 1 do 682 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
680 user.activate 683 user.activate
681 process_delayed_job_queue 684 process_delayed_job_queue
@@ -695,6 +698,7 @@ class UserTest < ActiveSupport::TestCase @@ -695,6 +698,7 @@ class UserTest < ActiveSupport::TestCase
695 env.save 698 env.save
696 699
697 user = new_user :name => 'John Doe', :email => 'pending@activation.com' 700 user = new_user :name => 'John Doe', :email => 'pending@activation.com'
  701 + process_delayed_job_queue
698 assert_difference 'ActionMailer::Base.deliveries.size', 1 do 702 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
699 user.activate 703 user.activate
700 process_delayed_job_queue 704 process_delayed_job_queue