1 # frozen_string_literal: true
 
   3 require "application_system_test_case"
 
   5 class UserEmailChangeTest < ApplicationSystemTestCase
 
   6   include ActionMailer::TestHelper
 
   9     stub_request(:get, /.*gravatar.com.*d=404/).to_return(:status => 404)
 
  12   test "User can change their email address" do
 
  18       fill_in "New Email Address", :with => "new_tester@example.com"
 
  19       click_on "Save Changes"
 
  20       assert_equal "new_tester@example.com", user.reload.new_email
 
  23     email = ActionMailer::Base.deliveries.first
 
  24     assert_equal 1, email.to.count
 
  25     assert_equal "new_tester@example.com", email.to.first
 
  26     assert_match %r{/user/confirm-email\?confirm_string=[A-Za-z0-9\-_%]+\s}, email.parts[0].parts[0].decoded
 
  28     if email.parts[0].parts[0].decoded =~ %r{(/user/confirm-email\?confirm_string=[A-Za-z0-9\-_%]+)\s}
 
  29       visit Regexp.last_match(1)
 
  30       assert page.has_css?("body.accounts-show")
 
  33     assert_equal "new_tester@example.com", user.reload.email