Merge pull request #4535 from tomhughes/rails-tokens
Use rails generated tokens for emails
This commit is contained in:
commit
52f755cb27
15 changed files with 124 additions and 120 deletions
|
@ -39,7 +39,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
user = build(:user, :pending)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create.token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
assert_response :success
|
||||
|
@ -51,7 +51,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create.token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
# Get the confirmation page
|
||||
get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
|
@ -73,7 +73,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create.token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post logout_path
|
||||
|
||||
|
@ -87,7 +87,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create.token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
assert_redirected_to welcome_path
|
||||
|
@ -98,7 +98,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create.token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post logout_path
|
||||
session_for(create(:user))
|
||||
|
@ -113,11 +113,11 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post logout_path
|
||||
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
|
||||
assert_redirected_to login_path(:referer => new_diary_entry_path)
|
||||
assert_match(/Confirmed your account/, flash[:notice])
|
||||
end
|
||||
|
@ -127,9 +127,9 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
|
||||
assert_redirected_to new_diary_entry_path
|
||||
end
|
||||
|
||||
|
@ -138,12 +138,12 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post logout_path
|
||||
session_for(create(:user))
|
||||
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
|
||||
assert_redirected_to login_path(:referer => new_diary_entry_path)
|
||||
assert_match(/Confirmed your account/, flash[:notice])
|
||||
end
|
||||
|
@ -153,9 +153,11 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create(:expiry => 1.day.ago).token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
travel 2.weeks do
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
end
|
||||
assert_redirected_to :action => "confirm"
|
||||
assert_match(/confirmation code has expired/, flash[:error])
|
||||
end
|
||||
|
@ -165,15 +167,15 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
|
||||
assert_redirected_to new_diary_entry_path
|
||||
|
||||
post logout_path
|
||||
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string, :referer => new_diary_entry_path }
|
||||
assert_redirected_to login_path
|
||||
assert_match(/already been confirmed/, flash[:error])
|
||||
end
|
||||
|
@ -183,7 +185,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
stub_gravatar_request(user.email)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
confirm_string = User.find_by(:email => user.email).tokens.create.token
|
||||
confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user)
|
||||
|
||||
User.find_by(:display_name => user.display_name).hide!
|
||||
|
||||
|
@ -269,7 +271,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
|
||||
def test_confirm_email_get
|
||||
user = create(:user)
|
||||
confirm_string = user.tokens.create.token
|
||||
confirm_string = user.generate_token_for(:new_email)
|
||||
|
||||
get user_confirm_email_path, :params => { :confirm_string => confirm_string }
|
||||
assert_response :success
|
||||
|
@ -279,7 +281,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
def test_confirm_email_success
|
||||
user = create(:user, :new_email => "test-new@example.com")
|
||||
stub_gravatar_request(user.new_email)
|
||||
confirm_string = user.tokens.create.token
|
||||
confirm_string = user.generate_token_for(:new_email)
|
||||
|
||||
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
|
||||
assert_response :redirect
|
||||
|
@ -289,7 +291,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
|
||||
def test_confirm_email_already_confirmed
|
||||
user = create(:user)
|
||||
confirm_string = user.tokens.create.token
|
||||
confirm_string = user.generate_token_for(:new_email)
|
||||
|
||||
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
|
||||
assert_response :redirect
|
||||
|
@ -312,7 +314,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
# switch to email that has a gravatar
|
||||
user = create(:user, :new_email => "test-new@example.com")
|
||||
stub_gravatar_request(user.new_email, 200)
|
||||
confirm_string = user.tokens.create.token
|
||||
confirm_string = user.generate_token_for(:new_email)
|
||||
# precondition gravatar should be turned off
|
||||
assert_not user.image_use_gravatar
|
||||
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
|
||||
|
@ -327,7 +329,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
# switch to email without a gravatar
|
||||
user = create(:user, :new_email => "test-new@example.com", :image_use_gravatar => true)
|
||||
stub_gravatar_request(user.new_email, 404)
|
||||
confirm_string = user.tokens.create.token
|
||||
confirm_string = user.generate_token_for(:new_email)
|
||||
# precondition gravatar should be turned on
|
||||
assert user.image_use_gravatar
|
||||
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
|
||||
|
|
|
@ -127,21 +127,21 @@ class PasswordsControllerTest < ActionDispatch::IntegrationTest
|
|||
assert_redirected_to :action => :new
|
||||
|
||||
# Create a valid token for a user
|
||||
token = user.tokens.create
|
||||
token = user.generate_token_for(:password_reset)
|
||||
|
||||
# Test a request with a valid token
|
||||
get user_reset_password_path, :params => { :token => token.token }
|
||||
get user_reset_password_path, :params => { :token => token }
|
||||
assert_response :success
|
||||
assert_template :edit
|
||||
|
||||
# Test that errors are reported for erroneous submissions
|
||||
post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
|
||||
post user_reset_password_path, :params => { :token => token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
|
||||
assert_response :success
|
||||
assert_template :edit
|
||||
assert_select "div.invalid-feedback"
|
||||
|
||||
# Test setting a new password
|
||||
post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }
|
||||
post user_reset_password_path, :params => { :token => token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }
|
||||
assert_response :redirect
|
||||
assert_redirected_to root_path
|
||||
assert_equal user.id, session[:user]
|
||||
|
|
|
@ -88,10 +88,7 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest
|
|||
user = build(:user, :pending)
|
||||
post user_new_path, :params => { :user => user.attributes }
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
|
||||
assert_difference "User.find_by(:email => user.email).tokens.count", -1 do
|
||||
post logout_path
|
||||
end
|
||||
post logout_path
|
||||
assert_response :redirect
|
||||
assert_redirected_to root_path
|
||||
end
|
||||
|
|
|
@ -312,15 +312,13 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_difference "User.count", 1 do
|
||||
assert_difference "ActionMailer::Base.deliveries.size", 1 do
|
||||
perform_enqueued_jobs do
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
end
|
||||
post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
|
||||
assert_enqueued_with :job => ActionMailer::MailDeliveryJob,
|
||||
:args => proc { |args| args[3][:args][2] == welcome_path(:editor => "id", :zoom => 1, :lat => 2, :lon => 3) }
|
||||
perform_enqueued_jobs
|
||||
end
|
||||
end
|
||||
|
||||
assert_equal welcome_path(:editor => "id", :zoom => 1, :lat => 2, :lon => 3),
|
||||
User.find_by(:email => user.email).tokens.order("id DESC").first.referer
|
||||
|
||||
ActionMailer::Base.deliveries.clear
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue