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