X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/39963d8c70b6d810ebc396997651a895d1f75344..e0f30303538df66b25e6e7840d2534f57f44f27f:/test/system/user_signup_test.rb diff --git a/test/system/user_signup_test.rb b/test/system/user_signup_test.rb index 0835df741..2fb90fc3a 100644 --- a/test/system/user_signup_test.rb +++ b/test/system/user_signup_test.rb @@ -1,11 +1,102 @@ require "application_system_test_case" class UserSignupTest < ApplicationSystemTestCase + include ActionMailer::TestHelper + + def setup + stub_request(:get, /.*gravatar.com.*d=404/).to_return(:status => 404) + end + + test "Sign up with confirmation email" do + visit root_path + + click_on "Sign Up" + + within_content_body do + fill_in "Email", :with => "new_user_account@example.com" + fill_in "Display Name", :with => "new_user_account" + fill_in "Password", :with => "new_user_password" + fill_in "Confirm Password", :with => "new_user_password" + + assert_emails 1 do + click_on "Sign Up" + + assert_content "We sent you a confirmation email" + end + end + + email = ActionMailer::Base.deliveries.first + assert_equal 1, email.to.count + assert_equal "new_user_account@example.com", email.to.first + email_text = email.parts[0].parts[0].decoded + match = %r{/user/new_user_account/confirm\?confirm_string=\S+}.match(email_text) + assert_not_nil match + + visit match[0] + + assert_content "new_user_account" + assert_content "Welcome!" + end + + test "Sign up with confirmation email resending" do + visit root_path + + click_on "Sign Up" + + within_content_body do + fill_in "Email", :with => "new_user_account@example.com" + fill_in "Display Name", :with => "new_user_account" + fill_in "Password", :with => "new_user_password" + fill_in "Confirm Password", :with => "new_user_password" + + assert_emails 2 do + click_on "Sign Up" + + assert_content "We sent you a confirmation email" + + click_on "Resend the confirmation email" + + assert_content "Email Address or Username" + end + end + + assert_content "sent a new confirmation" + assert_no_content "

" + + email = ActionMailer::Base.deliveries.last + assert_equal 1, email.to.count + assert_equal "new_user_account@example.com", email.to.first + email_text = email.parts[0].parts[0].decoded + match = %r{/user/new_user_account/confirm\?confirm_string=\S+}.match(email_text) + assert_not_nil match + + visit match[0] + + assert_content "new_user_account" + assert_content "Welcome!" + end + test "Sign up from login page" do visit login_path click_on "Sign up" - assert_content "Confirm Password" + within_content_body do + assert_content "Confirm Password" + end + end + + test "Show OpenID form when OpenID provider button is clicked" do + visit login_path + + within_content_body do + assert_no_field "OpenID URL" + assert_no_button "Continue" + + click_on "Log in with OpenID" + + assert_field "OpenID URL" + assert_button "Continue" + end end end