]> git.openstreetmap.org Git - rails.git/blobdiff - test/system/user_signup_test.rb
Merge remote-tracking branch 'upstream/pull/5457'
[rails.git] / test / system / user_signup_test.rb
index e97046800738edf107ce30c586873f96d6e958b1..2fb90fc3a41acf81873d53ab3d640bc9b34e1771 100644 (file)
 require "application_system_test_case"
 
 class UserSignupTest < ApplicationSystemTestCase
 require "application_system_test_case"
 
 class UserSignupTest < ApplicationSystemTestCase
-  test "Sign up from login page" do
-    visit login_path
-
-    click_on "Register now"
+  include ActionMailer::TestHelper
 
 
-    assert_content "Confirm Password"
+  def setup
+    stub_request(:get, /.*gravatar.com.*d=404/).to_return(:status => 404)
   end
 
   end
 
-  test "externally redirect when contributor terms declined" do
-    user = build(:user)
+  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
     visit root_path
+
     click_on "Sign Up"
 
     click_on "Sign Up"
 
-    within ".new_user" do
-      fill_in "Email", :with => user.email
-      fill_in "Email Confirmation", :with => user.email
-      fill_in "Display Name", :with => user.display_name
-      fill_in "Password", :with => "testtest"
-      fill_in "Confirm Password", :with => "testtest"
-      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
 
     end
 
-    assert_content "Contributor terms"
-    click_on "Cancel"
+    assert_content "sent a new confirmation"
+    assert_no_content "<p>"
+
+    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_current_path "https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined"
+    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
   end
 end