X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2d111c0f34613779bb730f1d0a823fa48e9d8439..212fe75b6fd26d01dfacf31650e7f71eb7f06a63:/test/controllers/confirmations_controller_test.rb?ds=sidebyside diff --git a/test/controllers/confirmations_controller_test.rb b/test/controllers/confirmations_controller_test.rb index bae0158cd..0f4315e4f 100644 --- a/test/controllers/confirmations_controller_test.rb +++ b/test/controllers/confirmations_controller_test.rb @@ -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 } @@ -64,7 +64,6 @@ class UsersControllerTest < ActionDispatch::IntegrationTest # Now try to get the confirmation page again get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string } - assert_response :redirect assert_redirected_to root_path end @@ -73,7 +72,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 +86,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 +97,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 +112,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 +126,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 +137,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 +152,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 +166,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,13 +184,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.token + confirm_string = User.find_by(:email => user.email).generate_token_for(:new_user) - User.find_by(:display_name => user.display_name).update(:status => "deleted") + User.find_by(:display_name => user.display_name).hide! # Get the confirmation page get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string } - assert_response :redirect assert_redirected_to root_path # Confirm the user @@ -209,9 +209,9 @@ class UsersControllerTest < ActionDispatch::IntegrationTest end end - assert_response :redirect assert_redirected_to login_path - assert_match(/sent a new confirmation/, flash[:notice]) + assert_equal("confirmations/resend_success_flash", flash[:notice][:partial]) + assert_equal({ :email => user.email, :sender => Settings.email_from }, flash[:notice][:locals]) email = ActionMailer::Base.deliveries.last @@ -231,7 +231,6 @@ class UsersControllerTest < ActionDispatch::IntegrationTest end end - assert_response :redirect assert_redirected_to login_path assert_match "User #{user.display_name} not found.", flash[:error] end @@ -241,7 +240,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest post user_new_path, :params => { :user => user.attributes } post user_save_path, :params => { :read_ct => 1, :read_tou => 1 } - User.find_by(:display_name => user.display_name).update(:status => "deleted") + User.find_by(:display_name => user.display_name).hide! assert_no_difference "ActionMailer::Base.deliveries.size" do perform_enqueued_jobs do @@ -249,7 +248,6 @@ class UsersControllerTest < ActionDispatch::IntegrationTest end end - assert_response :redirect assert_redirected_to login_path assert_match "User #{user.display_name} not found.", flash[:error] end @@ -261,14 +259,13 @@ class UsersControllerTest < ActionDispatch::IntegrationTest end end - assert_response :redirect assert_redirected_to login_path assert_match "User No Such User not found.", flash[:error] end 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 @@ -278,28 +275,25 @@ 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 - assert_redirected_to :controller => :users, :action => :account, :display_name => user.display_name + assert_redirected_to edit_account_path assert_match(/Confirmed your change of email address/, flash[:notice]) end 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 - assert_redirected_to :controller => :users, :action => :account, :display_name => user.display_name + assert_redirected_to edit_account_path assert_match(/already been confirmed/, flash[:error]) end def test_confirm_email_bad_token post user_confirm_email_path, :params => { :confirm_string => "XXXXX" } - assert_response :success - assert_template :confirm_email + assert_redirected_to edit_account_path assert_match(/confirmation code has expired or does not exist/, flash[:error]) end @@ -311,12 +305,11 @@ 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 } - assert_response :redirect - assert_redirected_to :controller => :users, :action => :account, :display_name => user.display_name + assert_redirected_to edit_account_path assert_match(/Confirmed your change of email address/, flash[:notice]) # gravatar use should now be enabled assert User.find(user.id).image_use_gravatar @@ -326,12 +319,11 @@ 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 } - assert_response :redirect - assert_redirected_to :controller => :users, :action => :account, :display_name => user.display_name + assert_redirected_to edit_account_path assert_match(/Confirmed your change of email address/, flash[:notice]) # gravatar use should now be disabled assert_not User.find(user.id).image_use_gravatar