Use deliver_later for all email sending

This commit is contained in:
Andy Allan 2018-10-31 16:38:12 +01:00
parent 801522c5c3
commit b54362d458
14 changed files with 452 additions and 334 deletions

View file

@ -32,7 +32,7 @@ Lint/HandleExceptions:
# Offense count: 692 # Offense count: 692
Metrics/AbcSize: Metrics/AbcSize:
Max: 280 Max: 283
# Offense count: 40 # Offense count: 40
# Configuration parameters: CountComments, ExcludedMethods. # Configuration parameters: CountComments, ExcludedMethods.
@ -48,7 +48,7 @@ Metrics/BlockNesting:
# Offense count: 63 # Offense count: 63
# Configuration parameters: CountComments. # Configuration parameters: CountComments.
Metrics/ClassLength: Metrics/ClassLength:
Max: 1795 Max: 1801
# Offense count: 72 # Offense count: 72
Metrics/CyclomaticComplexity: Metrics/CyclomaticComplexity:

View file

@ -332,7 +332,7 @@ class ChangesetController < ApplicationController
# Notify current subscribers of the new comment # Notify current subscribers of the new comment
changeset.subscribers.visible.each do |user| changeset.subscribers.visible.each do |user|
Notifier.changeset_comment_notification(comment, user).deliver_now if current_user != user Notifier.changeset_comment_notification(comment, user).deliver_later if current_user != user
end end
# Add the commenter to the subscribers if necessary # Add the commenter to the subscribers if necessary

View file

@ -65,7 +65,7 @@ class DiaryEntryController < ApplicationController
# Notify current subscribers of the new comment # Notify current subscribers of the new comment
@entry.subscribers.visible.each do |user| @entry.subscribers.visible.each do |user|
Notifier.diary_comment_notification(@diary_comment, user).deliver_now if current_user != user Notifier.diary_comment_notification(@diary_comment, user).deliver_later if current_user != user
end end
# Add the commenter to the subscribers if necessary # Add the commenter to the subscribers if necessary

View file

@ -29,7 +29,7 @@ class MessagesController < ApplicationController
render :action => "new" render :action => "new"
elsif @message.save elsif @message.save
flash[:notice] = t ".message_sent" flash[:notice] = t ".message_sent"
Notifier.message_notification(@message).deliver_now Notifier.message_notification(@message).deliver_later
redirect_to :action => :inbox redirect_to :action => :inbox
else else
render :action => "new" render :action => "new"

View file

@ -387,7 +387,7 @@ class NotesController < ApplicationController
comment = note.comments.create!(attributes) comment = note.comments.create!(attributes)
note.comments.map(&:author).uniq.each do |user| note.comments.map(&:author).uniq.each do |user|
Notifier.note_comment_notification(comment, user).deliver_now if notify && user && user != current_user && user.visible? Notifier.note_comment_notification(comment, user).deliver_later if notify && user && user != current_user && user.visible?
end end
end end
end end

View file

@ -107,7 +107,7 @@ class UsersController < ApplicationController
successful_login(current_user) successful_login(current_user)
else else
session[:token] = current_user.tokens.create.token session[:token] = current_user.tokens.create.token
Notifier.signup_confirm(current_user, current_user.tokens.create(:referer => referer)).deliver_now Notifier.signup_confirm(current_user, current_user.tokens.create(:referer => referer)).deliver_later
redirect_to :action => "confirm", :display_name => current_user.display_name redirect_to :action => "confirm", :display_name => current_user.display_name
end end
else else
@ -158,7 +158,7 @@ class UsersController < ApplicationController
if user if user
token = user.tokens.create token = user.tokens.create
Notifier.lost_password(user, token).deliver_now Notifier.lost_password(user, token).deliver_later
flash[:notice] = t "users.lost_password.notice email on way" flash[:notice] = t "users.lost_password.notice email on way"
redirect_to :action => "login" redirect_to :action => "login"
else else
@ -339,7 +339,7 @@ class UsersController < ApplicationController
if user.nil? || token.nil? || token.user != user if user.nil? || token.nil? || token.user != user
flash[:error] = t "users.confirm_resend.failure", :name => params[:display_name] flash[:error] = t "users.confirm_resend.failure", :name => params[:display_name]
else else
Notifier.signup_confirm(user, user.tokens.create).deliver_now Notifier.signup_confirm(user, user.tokens.create).deliver_later
flash[:notice] = t("users.confirm_resend.success", :email => user.email, :sender => SUPPORT_EMAIL).html_safe flash[:notice] = t("users.confirm_resend.success", :email => user.email, :sender => SUPPORT_EMAIL).html_safe
end end
@ -432,7 +432,7 @@ class UsersController < ApplicationController
flash[:warning] = t "users.make_friend.already_a_friend", :name => @new_friend.display_name flash[:warning] = t "users.make_friend.already_a_friend", :name => @new_friend.display_name
elsif friend.save elsif friend.save
flash[:notice] = t "users.make_friend.success", :name => @new_friend.display_name flash[:notice] = t "users.make_friend.success", :name => @new_friend.display_name
Notifier.friend_notification(friend).deliver_now Notifier.friend_notification(friend).deliver_later
else else
friend.add_error(t("users.make_friend.failed", :name => @new_friend.display_name)) friend.add_error(t("users.make_friend.failed", :name => @new_friend.display_name))
end end
@ -735,7 +735,7 @@ class UsersController < ApplicationController
flash.now[:notice] = t "users.account.flash update success confirm needed" flash.now[:notice] = t "users.account.flash update success confirm needed"
begin begin
Notifier.email_confirm(user, user.tokens.create).deliver_now Notifier.email_confirm(user, user.tokens.create).deliver_later
rescue StandardError rescue StandardError
# Ignore errors sending email # Ignore errors sending email
end end

View file

@ -46,4 +46,7 @@ Rails.application.configure do
# Raises error for missing translations # Raises error for missing translations
config.action_view.raise_on_missing_translations = true config.action_view.raise_on_missing_translations = true
# Use the test adapter for ActiveJob during testing
config.active_job.queue_adapter = :test
end end

View file

@ -2153,7 +2153,9 @@ CHANGESET
assert_difference "ChangesetComment.count", 1 do assert_difference "ChangesetComment.count", 1 do
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :comment, :params => { :id => private_user_closed_changeset.id, :text => "This is a comment" } perform_enqueued_jobs do
post :comment, :params => { :id => private_user_closed_changeset.id, :text => "This is a comment" }
end
end end
end end
assert_response :success assert_response :success
@ -2166,7 +2168,9 @@ CHANGESET
assert_difference "ChangesetComment.count", 1 do assert_difference "ChangesetComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :comment, :params => { :id => changeset.id, :text => "This is a comment" } perform_enqueued_jobs do
post :comment, :params => { :id => changeset.id, :text => "This is a comment" }
end
end end
end end
assert_response :success assert_response :success
@ -2182,7 +2186,9 @@ CHANGESET
assert_difference "ChangesetComment.count", 1 do assert_difference "ChangesetComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do assert_difference "ActionMailer::Base.deliveries.size", 2 do
post :comment, :params => { :id => changeset.id, :text => "This is a comment" } perform_enqueued_jobs do
post :comment, :params => { :id => changeset.id, :text => "This is a comment" }
end
end end
end end
assert_response :success assert_response :success

View file

@ -390,9 +390,11 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
assert_no_difference "DiaryComment.count" do assert_no_difference "DiaryComment.count" do
assert_no_difference "entry.subscribers.count" do assert_no_difference "entry.subscribers.count" do
post :comment, perform_enqueued_jobs do
:params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "" } }, post :comment,
:session => { :user => other_user } :params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "" } },
:session => { :user => other_user }
end
end end
end end
end end
@ -403,9 +405,11 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do
assert_difference "DiaryComment.count", 1 do assert_difference "DiaryComment.count", 1 do
assert_difference "entry.subscribers.count", 1 do assert_difference "entry.subscribers.count", 1 do
post :comment, perform_enqueued_jobs do
:params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "New comment" } }, post :comment,
:session => { :user => other_user } :params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "New comment" } },
:session => { :user => other_user }
end
end end
end end
end end
@ -450,9 +454,11 @@ class DiaryEntryControllerTest < ActionController::TestCase
# Try creating a spammy comment # Try creating a spammy comment
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
assert_difference "DiaryComment.count", 1 do assert_difference "DiaryComment.count", 1 do
post :comment, perform_enqueued_jobs do
:params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => spammy_text } }, post :comment,
:session => { :user => other_user } :params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => spammy_text } },
:session => { :user => other_user }
end
end end
end end
assert_response :redirect assert_response :redirect

View file

@ -83,9 +83,11 @@ class MessagesControllerTest < ActionController::TestCase
# Check that we can't send a message from a GET request # Check that we can't send a message from a GET request
assert_difference "ActionMailer::Base.deliveries.size", 0 do assert_difference "ActionMailer::Base.deliveries.size", 0 do
assert_difference "Message.count", 0 do assert_difference "Message.count", 0 do
get :new, perform_enqueued_jobs do
:params => { :display_name => recipient_user.display_name, get :new,
:message => { :title => "Test Message", :body => "Test message body" } } :params => { :display_name => recipient_user.display_name,
:message => { :title => "Test Message", :body => "Test message body" } }
end
end end
end end
assert_response :success assert_response :success
@ -112,9 +114,11 @@ class MessagesControllerTest < ActionController::TestCase
# Check that the subject is preserved over errors # Check that the subject is preserved over errors
assert_difference "ActionMailer::Base.deliveries.size", 0 do assert_difference "ActionMailer::Base.deliveries.size", 0 do
assert_difference "Message.count", 0 do assert_difference "Message.count", 0 do
post :new, perform_enqueued_jobs do
:params => { :display_name => recipient_user.display_name, post :new,
:message => { :title => "Test Message", :body => "" } } :params => { :display_name => recipient_user.display_name,
:message => { :title => "Test Message", :body => "" } }
end
end end
end end
assert_response :success assert_response :success
@ -141,9 +145,11 @@ class MessagesControllerTest < ActionController::TestCase
# Check that the body text is preserved over errors # Check that the body text is preserved over errors
assert_difference "ActionMailer::Base.deliveries.size", 0 do assert_difference "ActionMailer::Base.deliveries.size", 0 do
assert_difference "Message.count", 0 do assert_difference "Message.count", 0 do
post :new, perform_enqueued_jobs do
:params => { :display_name => recipient_user.display_name, post :new,
:message => { :title => "", :body => "Test message body" } } :params => { :display_name => recipient_user.display_name,
:message => { :title => "", :body => "Test message body" } }
end
end end
end end
assert_response :success assert_response :success
@ -170,9 +176,11 @@ class MessagesControllerTest < ActionController::TestCase
# Check that sending a message works # Check that sending a message works
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
assert_difference "Message.count", 1 do assert_difference "Message.count", 1 do
post :create, perform_enqueued_jobs do
:params => { :display_name => recipient_user.display_name, post :create,
:message => { :title => "Test Message", :body => "Test message body" } } :params => { :display_name => recipient_user.display_name,
:message => { :title => "Test Message", :body => "Test message body" } }
end
end end
end end
assert_redirected_to inbox_messages_path assert_redirected_to inbox_messages_path
@ -211,12 +219,14 @@ class MessagesControllerTest < ActionController::TestCase
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
assert_no_difference "Message.count" do assert_no_difference "Message.count" do
with_message_limit(0) do with_message_limit(0) do
post :create, perform_enqueued_jobs do
:params => { :display_name => recipient_user.display_name, post :create,
:message => { :title => "Test Message", :body => "Test message body" } } :params => { :display_name => recipient_user.display_name,
assert_response :success :message => { :title => "Test Message", :body => "Test message body" } }
assert_template "new" assert_response :success
assert_select ".error", /wait a while/ assert_template "new"
assert_select ".error", /wait a while/
end
end end
end end
end end

View file

@ -228,7 +228,9 @@ class NotesControllerTest < ActionController::TestCase
open_note_with_comment = create(:note_with_comments) open_note_with_comment = create(:note_with_comments)
assert_difference "NoteComment.count", 1 do assert_difference "NoteComment.count", 1 do
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :comment, :params => { :id => open_note_with_comment.id, :text => "This is an additional comment", :format => "json" } perform_enqueued_jobs do
post :comment, :params => { :id => open_note_with_comment.id, :text => "This is an additional comment", :format => "json" }
end
end end
end end
assert_response :success assert_response :success
@ -265,7 +267,9 @@ class NotesControllerTest < ActionController::TestCase
end end
assert_difference "NoteComment.count", 1 do assert_difference "NoteComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do assert_difference "ActionMailer::Base.deliveries.size", 2 do
post :comment, :params => { :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json" } perform_enqueued_jobs do
post :comment, :params => { :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json" }
end
end end
end end
assert_response :success assert_response :success
@ -307,7 +311,9 @@ class NotesControllerTest < ActionController::TestCase
assert_difference "NoteComment.count", 1 do assert_difference "NoteComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do assert_difference "ActionMailer::Base.deliveries.size", 2 do
post :comment, :params => { :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json" } perform_enqueued_jobs do
post :comment, :params => { :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json" }
end
end end
end end
assert_response :success assert_response :success

View file

@ -237,7 +237,9 @@ class UsersControllerTest < ActionController::TestCase
assert_difference "User.count", 1 do assert_difference "User.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :save, :session => { :new_user => user } perform_enqueued_jobs do
post :save, :session => { :new_user => user }
end
end end
end end
@ -259,7 +261,9 @@ class UsersControllerTest < ActionController::TestCase
assert_no_difference "User.count" do assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :save, :session => { :new_user => user } perform_enqueued_jobs do
post :save, :session => { :new_user => user }
end
end end
end end
@ -274,7 +278,9 @@ class UsersControllerTest < ActionController::TestCase
assert_no_difference "User.count" do assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :save, :session => { :new_user => user } perform_enqueued_jobs do
post :save, :session => { :new_user => user }
end
end end
end end
@ -289,7 +295,9 @@ class UsersControllerTest < ActionController::TestCase
assert_no_difference "User.count" do assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :save, :session => { :new_user => user } perform_enqueued_jobs do
post :save, :session => { :new_user => user }
end
end end
end end
@ -304,7 +312,9 @@ class UsersControllerTest < ActionController::TestCase
assert_no_difference "User.count" do assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :save, :session => { :new_user => user } perform_enqueued_jobs do
post :save, :session => { :new_user => user }
end
end end
end end
@ -318,8 +328,10 @@ class UsersControllerTest < ActionController::TestCase
assert_difference "User.count", 1 do assert_difference "User.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :save, :session => { :new_user => user, perform_enqueued_jobs do
:referer => "/edit?editor=id#map=1/2/3" } post :save, :session => { :new_user => user,
:referer => "/edit?editor=id#map=1/2/3" }
end
end end
end end
@ -489,7 +501,9 @@ class UsersControllerTest < ActionController::TestCase
session[:token] = user.tokens.create.token session[:token] = user.tokens.create.token
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
get :confirm_resend, :params => { :display_name => user.display_name } perform_enqueued_jobs do
get :confirm_resend, :params => { :display_name => user.display_name }
end
end end
assert_response :redirect assert_response :redirect
@ -506,7 +520,9 @@ class UsersControllerTest < ActionController::TestCase
def test_confirm_resend_no_token def test_confirm_resend_no_token
user = create(:user, :pending) user = create(:user, :pending)
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
get :confirm_resend, :params => { :display_name => user.display_name } perform_enqueued_jobs do
get :confirm_resend, :params => { :display_name => user.display_name }
end
end end
assert_response :redirect assert_response :redirect
@ -516,7 +532,9 @@ class UsersControllerTest < ActionController::TestCase
def test_confirm_resend_unknown_user def test_confirm_resend_unknown_user
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
get :confirm_resend, :params => { :display_name => "No Such User" } perform_enqueued_jobs do
get :confirm_resend, :params => { :display_name => "No Such User" }
end
end end
assert_response :redirect assert_response :redirect
@ -674,7 +692,9 @@ class UsersControllerTest < ActionController::TestCase
uppercase_user = build(:user, :email => user.email.upcase).tap { |u| u.save(:validate => false) } uppercase_user = build(:user, :email => user.email.upcase).tap { |u| u.save(:validate => false) }
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :lost_password, :params => { :user => { :email => user.email } } perform_enqueued_jobs do
post :lost_password, :params => { :user => { :email => user.email } }
end
end end
assert_response :redirect assert_response :redirect
assert_redirected_to :action => :login assert_redirected_to :action => :login
@ -687,7 +707,9 @@ class UsersControllerTest < ActionController::TestCase
# Test resetting using an address that matches a different user # Test resetting using an address that matches a different user
# that has the same address in a different case # that has the same address in a different case
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :lost_password, :params => { :user => { :email => user.email.upcase } } perform_enqueued_jobs do
post :lost_password, :params => { :user => { :email => user.email.upcase } }
end
end end
assert_response :redirect assert_response :redirect
assert_redirected_to :action => :login assert_redirected_to :action => :login
@ -700,7 +722,9 @@ class UsersControllerTest < ActionController::TestCase
# Test resetting using an address that is a case insensitive match # Test resetting using an address that is a case insensitive match
# for more than one user but not an exact match for either # for more than one user but not an exact match for either
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :lost_password, :params => { :user => { :email => user.email.titlecase } } perform_enqueued_jobs do
post :lost_password, :params => { :user => { :email => user.email.titlecase } }
end
end end
assert_response :success assert_response :success
assert_template :lost_password assert_template :lost_password
@ -710,7 +734,9 @@ class UsersControllerTest < ActionController::TestCase
# address which is case insensitively unique # address which is case insensitively unique
third_user = create(:user) third_user = create(:user)
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :lost_password, :params => { :user => { :email => third_user.email } } perform_enqueued_jobs do
post :lost_password, :params => { :user => { :email => third_user.email } }
end
end end
assert_response :redirect assert_response :redirect
assert_redirected_to :action => :login assert_redirected_to :action => :login
@ -723,7 +749,9 @@ class UsersControllerTest < ActionController::TestCase
# Test resetting using an address that matches a user that has the # Test resetting using an address that matches a user that has the
# same (case insensitively unique) address in a different case # same (case insensitively unique) address in a different case
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :lost_password, :params => { :user => { :email => third_user.email.upcase } } perform_enqueued_jobs do
post :lost_password, :params => { :user => { :email => third_user.email.upcase } }
end
end end
assert_response :redirect assert_response :redirect
assert_redirected_to :action => :login assert_redirected_to :action => :login
@ -898,7 +926,9 @@ class UsersControllerTest < ActionController::TestCase
# Changing email to one that exists should fail # Changing email to one that exists should fail
user.new_email = create(:user).email user.new_email = create(:user).email
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user } perform_enqueued_jobs do
post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
end
end end
assert_response :success assert_response :success
assert_template :account assert_template :account
@ -909,7 +939,9 @@ class UsersControllerTest < ActionController::TestCase
# Changing email to one that exists should fail, regardless of case # Changing email to one that exists should fail, regardless of case
user.new_email = create(:user).email.upcase user.new_email = create(:user).email.upcase
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user } perform_enqueued_jobs do
post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
end
end end
assert_response :success assert_response :success
assert_template :account assert_template :account
@ -920,7 +952,9 @@ class UsersControllerTest < ActionController::TestCase
# Changing email to one that doesn't exist should work # Changing email to one that doesn't exist should work
user.new_email = "new_tester@example.com" user.new_email = "new_tester@example.com"
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user } perform_enqueued_jobs do
post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
end
end end
assert_response :success assert_response :success
assert_template :account assert_template :account
@ -1258,7 +1292,9 @@ class UsersControllerTest < ActionController::TestCase
# When logged in a POST should add the friendship # When logged in a POST should add the friendship
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user } perform_enqueued_jobs do
post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
end
end end
assert_redirected_to user_path(friend) assert_redirected_to user_path(friend)
assert_match(/is now your friend/, flash[:notice]) assert_match(/is now your friend/, flash[:notice])
@ -1270,7 +1306,9 @@ class UsersControllerTest < ActionController::TestCase
# A second POST should report that the friendship already exists # A second POST should report that the friendship already exists
assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "ActionMailer::Base.deliveries.size" do
post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user } perform_enqueued_jobs do
post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
end
end end
assert_redirected_to user_path(friend) assert_redirected_to user_path(friend)
assert_match(/You are already friends with/, flash[:warning]) assert_match(/You are already friends with/, flash[:warning])
@ -1297,7 +1335,9 @@ class UsersControllerTest < ActionController::TestCase
# When logged in a POST should add the friendship and refer us # When logged in a POST should add the friendship and refer us
assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :make_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user } perform_enqueued_jobs do
post :make_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
end
end end
assert_redirected_to "/test" assert_redirected_to "/test"
assert_match(/is now your friend/, flash[:notice]) assert_match(/is now your friend/, flash[:notice])

View file

@ -37,9 +37,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "#{locale}_new_tester" display_name = "#{locale}_new_tester"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => dup_email, :email_confirmation => dup_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }, post "/user/new",
:headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s } :params => { :user => { :email => dup_email, :email_confirmation => dup_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } },
:headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
end
end end
end end
assert_response :success assert_response :success
@ -56,9 +58,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
email = "#{locale}_new_tester" email = "#{locale}_new_tester"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => email, :email_confirmation => email, :display_name => dup_display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }, post "/user/new",
:headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s } :params => { :user => { :email => email, :email_confirmation => email, :display_name => dup_display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } },
:headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
end
end end
end end
assert_response :success assert_response :success
@ -75,8 +79,10 @@ class UserCreationTest < ActionDispatch::IntegrationTest
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/new",
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
end
end end
end end
@ -84,9 +90,11 @@ class UserCreationTest < ActionDispatch::IntegrationTest
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/save", perform_enqueued_jobs do
:headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s } post "/user/save",
follow_redirect! :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
follow_redirect!
end
end end
end end
@ -122,12 +130,14 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => password, :pass_crypt_confirmation => password }, :referer => referer } post "/user/new",
assert_redirected_to "/user/terms" :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => password, :pass_crypt_confirmation => password }, :referer => referer }
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect!
end
end end
end end
@ -168,20 +178,22 @@ class UserCreationTest < ActionDispatch::IntegrationTest
password = "testtest" password = "testtest"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect! assert_response :redirect
follow_redirect!
end
end end
end end
@ -199,21 +211,23 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "new_tester-openid2" display_name = "new_tester-openid2"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_failure_path(:strategy => "openid", :message => "connection_failed", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_failure_path(:strategy => "openid", :message => "connection_failed", :origin => "/user/new")
assert_response :redirect follow_redirect!
follow_redirect! assert_response :redirect
assert_response :success follow_redirect!
assert_template "users/new" assert_response :success
assert_template "users/new"
end
end end
end end
@ -229,19 +243,21 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer }
assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/new.tester", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "openid", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
follow_redirect!
end
end end
end end
@ -284,20 +300,22 @@ class UserCreationTest < ActionDispatch::IntegrationTest
password = "testtest" password = "testtest"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "google", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "google", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "google") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "google")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect! assert_response :redirect
follow_redirect!
end
end end
end end
@ -315,21 +333,23 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "new_tester-google2" display_name = "new_tester-google2"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "google", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "google", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "google") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "google")
assert_response :redirect follow_redirect!
assert_redirected_to auth_failure_path(:strategy => "google", :message => "connection_failed", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_failure_path(:strategy => "google", :message => "connection_failed", :origin => "/user/new")
assert_response :redirect follow_redirect!
follow_redirect! assert_response :redirect
assert_response :success follow_redirect!
assert_template "users/new" assert_response :success
assert_template "users/new"
end
end end
end end
@ -347,19 +367,21 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer }
assert_redirected_to auth_path(:provider => "google", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "google", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "google") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "google")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "google", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
follow_redirect!
end
end end
end end
@ -400,20 +422,22 @@ class UserCreationTest < ActionDispatch::IntegrationTest
password = "testtest" password = "testtest"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "facebook", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "facebook", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "facebook") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "facebook")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect! assert_response :redirect
follow_redirect!
end
end end
end end
@ -431,21 +455,23 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "new_tester-facebook2" display_name = "new_tester-facebook2"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "facebook", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "facebook", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "facebook") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "facebook")
assert_response :redirect follow_redirect!
assert_redirected_to auth_failure_path(:strategy => "facebook", :message => "connection_failed", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_failure_path(:strategy => "facebook", :message => "connection_failed", :origin => "/user/new")
assert_response :redirect follow_redirect!
follow_redirect! assert_response :redirect
assert_response :success follow_redirect!
assert_template "users/new" assert_response :success
assert_template "users/new"
end
end end
end end
@ -461,19 +487,21 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer }
assert_redirected_to auth_path(:provider => "facebook", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "facebook", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "facebook") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "facebook")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "facebook", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
follow_redirect!
end
end end
end end
@ -514,20 +542,22 @@ class UserCreationTest < ActionDispatch::IntegrationTest
password = "testtest" password = "testtest"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "windowslive", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "windowslive", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "windowslive") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "windowslive")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect! assert_response :redirect
follow_redirect!
end
end end
end end
@ -545,21 +575,23 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "new_tester-windowslive2" display_name = "new_tester-windowslive2"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "windowslive", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "windowslive", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "windowslive") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "windowslive")
assert_response :redirect follow_redirect!
assert_redirected_to auth_failure_path(:strategy => "windowslive", :message => "connection_failed", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_failure_path(:strategy => "windowslive", :message => "connection_failed", :origin => "/user/new")
assert_response :redirect follow_redirect!
follow_redirect! assert_response :redirect
assert_response :success follow_redirect!
assert_template "users/new" assert_response :success
assert_template "users/new"
end
end end
end end
@ -575,19 +607,21 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer }
assert_redirected_to auth_path(:provider => "windowslive", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "windowslive", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "windowslive") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "windowslive")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "windowslive", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
follow_redirect!
end
end end
end end
@ -628,20 +662,22 @@ class UserCreationTest < ActionDispatch::IntegrationTest
password = "testtest" password = "testtest"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "github", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "github", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "github") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "github")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect! assert_response :redirect
follow_redirect!
end
end end
end end
@ -659,21 +695,23 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "new_tester-github2" display_name = "new_tester-github2"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "github", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "github", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "github") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "github")
assert_response :redirect follow_redirect!
assert_redirected_to auth_failure_path(:strategy => "github", :message => "connection_failed", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_failure_path(:strategy => "github", :message => "connection_failed", :origin => "/user/new")
assert_response :redirect follow_redirect!
follow_redirect! assert_response :redirect
assert_response :success follow_redirect!
assert_template "users/new" assert_response :success
assert_template "users/new"
end
end end
end end
@ -689,19 +727,21 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer }
assert_redirected_to auth_path(:provider => "github", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "github", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "github") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "github")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "github", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
follow_redirect!
end
end end
end end
@ -742,20 +782,22 @@ class UserCreationTest < ActionDispatch::IntegrationTest
password = "testtest" password = "testtest"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "wikipedia", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "wikipedia", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } } post "/user/save",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :auth_uid => "123454321", :pass_crypt => password, :pass_crypt_confirmation => password } }
follow_redirect! assert_response :redirect
follow_redirect!
end
end end
end end
@ -773,21 +815,23 @@ class UserCreationTest < ActionDispatch::IntegrationTest
display_name = "new_tester-wikipedia2" display_name = "new_tester-wikipedia2"
assert_difference("User.count", 0) do assert_difference("User.count", 0) do
assert_difference("ActionMailer::Base.deliveries.size", 0) do assert_difference("ActionMailer::Base.deliveries.size", 0) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :pass_crypt => "", :pass_crypt_confirmation => "" } } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :pass_crypt => "", :pass_crypt_confirmation => "" } }
assert_redirected_to auth_path(:provider => "wikipedia", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "wikipedia", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_failure_path(:strategy => "wikipedia", :message => "connection_failed", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_failure_path(:strategy => "wikipedia", :message => "connection_failed", :origin => "/user/new")
assert_response :redirect follow_redirect!
follow_redirect! assert_response :redirect
assert_response :success follow_redirect!
assert_template "users/new" assert_response :success
assert_template "users/new"
end
end end
end end
@ -803,19 +847,21 @@ class UserCreationTest < ActionDispatch::IntegrationTest
referer = "/traces/mine" referer = "/traces/mine"
assert_difference("User.count") do assert_difference("User.count") do
assert_difference("ActionMailer::Base.deliveries.size", 1) do assert_difference("ActionMailer::Base.deliveries.size", 1) do
post "/user/new", perform_enqueued_jobs do
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer } post "/user/new",
assert_response :redirect :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :pass_crypt => "", :pass_crypt_confirmation => "" }, :referer => referer }
assert_redirected_to auth_path(:provider => "wikipedia", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_path(:provider => "wikipedia", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/user/new") assert_response :redirect
follow_redirect! assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/user/new")
assert_response :redirect follow_redirect!
assert_redirected_to "/user/terms" assert_response :redirect
post "/user/save", assert_redirected_to "/user/terms"
:params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } } post "/user/save",
follow_redirect! :params => { :user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :auth_provider => "wikipedia", :auth_uid => "http://localhost:1123/new.tester", :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest" } }
follow_redirect!
end
end end
end end

View file

@ -11,6 +11,7 @@ WebMock.disable_net_connect!(:allow_localhost => true)
module ActiveSupport module ActiveSupport
class TestCase class TestCase
include FactoryBot::Syntax::Methods include FactoryBot::Syntax::Methods
include ActiveJob::TestHelper
## ##
# takes a block which is executed in the context of a different # takes a block which is executed in the context of a different