Creating notification tests and views.

This commit is contained in:
Carlos A. da Silva
2009-10-08 11:31:51 -03:00
parent 3b5f1437b5
commit 1bd14eadfa
7 changed files with 111 additions and 11 deletions

View 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

View File

@@ -1,7 +0,0 @@
require 'test_helper'
class NotifierTest < ActionMailer::TestCase
# TODO
end

View 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

View File

@@ -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)