Advertisement
bjpcjp

Hartl Rails tutorial 5.0.1 Mailer

Jun 3rd, 2017
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.97 KB | None | 0 0
  1. # demo/app/mailers/user_mailer.rb
  2. # =========================================================================
  3. class UserMailer < ApplicationMailer
  4.  
  5.   # listing 11.12
  6.  
  7.   def account_activation(user)
  8.     @user = user
  9.     mail to: user.email, subject: "account activated"
  10.   end
  11.  
  12.   def password_reset(user)
  13.     @user = user
  14.     mail to: user.email, subject: "password reset"
  15.   end
  16.  
  17. end
  18.  
  19. # demo/test/mailers/user_mailer.rb
  20. # =========================================================================
  21. require 'test_helper'
  22.  
  23. class UserMailerTest < ActionMailer::TestCase
  24.  
  25.   # listing 11.20
  26.   test "account_activation" do
  27.     user = users(:michael)
  28.     user.activation_token = User.new_token
  29.  
  30.     mail = UserMailer.account_activation(user)
  31.     assert_equal "account activated", mail.subject
  32.     assert_equal [user.email], mail.to
  33.     assert_equal ["[email protected]"], mail.from
  34.  
  35.     assert_match user.name,               mail.body.encoded
  36.     assert_match user.activation_token,   mail.body.encoded
  37.     assert_match CGI.escape(user.email),  mail.body.encoded
  38.   end
  39.  
  40.   test "password_reset" do # listing 12.12
  41.    
  42.     user = users(:michael)
  43.     user.reset_token = User.new_token
  44.     mail = UserMailer.password_reset(user)
  45.  
  46.     assert_equal "password reset", mail.subject
  47.     assert_equal [user.email], mail.to
  48.     assert_equal ["[email protected]"], mail.from
  49.     assert_match user.reset_token,    mail.body.encoded           # FAILS
  50.     assert_match CGI.escape(user.email),  mail.body.encoded       # FAILS
  51.  
  52.   end
  53. end
  54.  
  55. # demo/app/views/user_mailer/password_reset.html.erb
  56. # ==========================================================
  57. <h1>User#password_reset</h1>
  58. <p><%= @greeting %>, find me in app/views/user_mailer/password_reset.html.erb</p>
  59.  
  60. # demo/app/views/user_mailer/password_reset.text.erb
  61. # ==========================================================
  62. User#password_reset
  63. <%= @greeting %>, find me in app/views/user_mailer/password_reset.text.erb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement