diff --git a/app/models/user.rb b/app/models/user.rb index 7d2b2cb..251b627 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -423,6 +423,12 @@ class User < ActiveRecord::Base @is_password_required = false end + def resend_activation_code + return if self.activated? + self.make_activation_code + self.deliver_activation_code + end + protected def normalize_email diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 7e60c9e..7aadb76 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -756,6 +756,28 @@ class UserTest < ActiveSupport::TestCase assert_equal 'quire', user.person.name end + should 'deliver e-mail with activation code when resend was requested and user was not activated' do + user = new_user :email => 'pending@activation.com' + activation_code = user.activation_code + Delayed::Job.destroy_all + assert_difference 'ActionMailer::Base.deliveries.size', 1 do + user.resend_activation_code + process_delayed_job_queue + end + assert_not_equal activation_code, user.activation_code + assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s + end + + should 'not deliver e-mail with activation code when resend was requested and user was activated' do + user = new_user :email => 'pending@activation.com' + user.activate + Delayed::Job.destroy_all + assert_no_difference 'ActionMailer::Base.deliveries.size' do + user.resend_activation_code + process_delayed_job_queue + end + end + protected def new_user(options = {}) user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) -- libgit2 0.21.2