mirror of
https://github.com/heartcombo/devise.git
synced 2026-01-09 23:08:05 -05:00
Creating notification tests and views.
This commit is contained in:
@@ -1,12 +1,21 @@
|
||||
class Notifier < ::ActionMailer::Base
|
||||
cattr_accessor :sender
|
||||
|
||||
def confirmation_instructions(record)
|
||||
# TODO: configure email
|
||||
from self.class.sender
|
||||
recipients record.email
|
||||
subject I18n.t(:confirmation_instructions, :scope => [:devise, :notifier], :default => 'Confirmation instructions')
|
||||
sent_on Time.now
|
||||
content_type 'text/html'
|
||||
body record.class.name.downcase.to_sym => record
|
||||
end
|
||||
|
||||
def reset_password_instructions(record)
|
||||
# TODO
|
||||
from self.class.sender
|
||||
recipients record.email
|
||||
subject I18n.t(:reset_password_instructions, :scope => [:devise, :notifier], :default => 'Reset password instructions')
|
||||
sent_on Time.now
|
||||
content_type 'text/html'
|
||||
body record.class.name.downcase.to_sym => record
|
||||
end
|
||||
end
|
||||
|
||||
#Devise::Notifier.template_root = File.join(File.dirname(__FILE__), '..', 'views')
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
Welcome <%= @user.email %>!
|
||||
|
||||
You can confirm your account through the link below:
|
||||
|
||||
<%= link_to 'Confirm my account', confirmation_url(:perishable_token => @user.perishable_token) %>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
Hello <%= @user.email %>!
|
||||
|
||||
Someone has requested a link to change your password, and you can do this through the link below.
|
||||
|
||||
<%= link_to 'Change my password', edit_password_url(:perishable_token => @user.perishable_token) %>
|
||||
|
||||
If you didn't request this, please ignore this email.
|
||||
Your password won't change until you access the link above and create a new one.
|
||||
|
||||
42
test/mailers/confirmation_instructions_test.rb
Normal file
42
test/mailers/confirmation_instructions_test.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
require 'test_helper'
|
||||
|
||||
class ConfirmationInstructionsTest < ActionMailer::TestCase
|
||||
|
||||
def setup
|
||||
setup_mailer
|
||||
I18n.backend.store_translations :en, {:devise => { :notifier => { :confirmation_instructions => 'Account Confirmation' } }}
|
||||
Notifier.sender = 'test@example.com'
|
||||
@user = create_user
|
||||
@mail = ActionMailer::Base.deliveries.first
|
||||
end
|
||||
|
||||
test 'email sent after creating the user' do
|
||||
assert_not_nil @mail
|
||||
end
|
||||
|
||||
test 'content type should be set to html' do
|
||||
assert_equal 'text/html', @mail.content_type
|
||||
end
|
||||
|
||||
test 'send confirmation instructions to the user email' do
|
||||
assert_equal [@user.email], @mail.to
|
||||
end
|
||||
|
||||
test 'setup sender from configuration' do
|
||||
assert_equal ['test@example.com'], @mail.from
|
||||
end
|
||||
|
||||
test 'setup subject from I18n' do
|
||||
assert_equal 'Account Confirmation', @mail.subject
|
||||
end
|
||||
|
||||
test 'body should have user info' do
|
||||
assert_match /#{@user.email}/, @mail.body
|
||||
end
|
||||
|
||||
test 'body should have link to confirm the account' do
|
||||
host = ActionMailer::Base.default_url_options[:host]
|
||||
confirmation_url_regexp = %r{<a href=\"http://#{host}/confirmation\?perishable_token=#{@user.perishable_token}">}
|
||||
assert_match confirmation_url_regexp, @mail.body
|
||||
end
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
require 'test_helper'
|
||||
|
||||
class NotifierTest < ActionMailer::TestCase
|
||||
|
||||
# TODO
|
||||
end
|
||||
|
||||
42
test/mailers/reset_password_instructions_test.rb
Normal file
42
test/mailers/reset_password_instructions_test.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
require 'test_helper'
|
||||
|
||||
class ResetPasswordInstructionsTest < ActionMailer::TestCase
|
||||
|
||||
def setup
|
||||
setup_mailer
|
||||
I18n.backend.store_translations :en, {:devise => { :notifier => { :reset_password_instructions => 'Reset instructions' } }}
|
||||
Notifier.sender = 'test@example.com'
|
||||
@user = create_user
|
||||
@mail = Notifier.deliver_reset_password_instructions(@user)
|
||||
end
|
||||
|
||||
test 'email sent after reseting the user password' do
|
||||
assert_not_nil @mail
|
||||
end
|
||||
|
||||
test 'content type should be set to html' do
|
||||
assert_equal 'text/html', @mail.content_type
|
||||
end
|
||||
|
||||
test 'send confirmation instructions to the user email' do
|
||||
assert_equal [@user.email], @mail.to
|
||||
end
|
||||
|
||||
test 'setup sender from configuration' do
|
||||
assert_equal ['test@example.com'], @mail.from
|
||||
end
|
||||
|
||||
test 'setup subject from I18n' do
|
||||
assert_equal 'Reset instructions', @mail.subject
|
||||
end
|
||||
|
||||
test 'body should have user info' do
|
||||
assert_match /#{@user.email}/, @mail.body
|
||||
end
|
||||
|
||||
test 'body should have link to confirm the account' do
|
||||
host = ActionMailer::Base.default_url_options[:host]
|
||||
confirmation_url_regexp = %r{<a href=\"http://#{host}/password/edit\?perishable_token=#{@user.perishable_token}">}
|
||||
assert_match confirmation_url_regexp, @mail.body
|
||||
end
|
||||
end
|
||||
@@ -14,6 +14,7 @@ require 'integration_tests_helper'
|
||||
|
||||
ActionMailer::Base.delivery_method = :test
|
||||
ActionMailer::Base.perform_deliveries = true
|
||||
ActionMailer::Base.default_url_options[:host] = 'test.com'
|
||||
|
||||
ActiveRecord::Migration.verbose = false
|
||||
ActiveRecord::Base.logger = Logger.new(nil)
|
||||
|
||||
Reference in New Issue
Block a user