Adds helpers for testing email body.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9086 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
b1d5f42237
commit
3aaf2b9ed0
|
@ -74,7 +74,7 @@ class FilesControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert_equal "[eCookbook] New file", mail.subject
|
||||
assert mail.body.include?('testfile.txt')
|
||||
assert_mail_body_match 'testfile.txt', mail
|
||||
end
|
||||
|
||||
def test_create_version_file
|
||||
|
|
|
@ -2164,7 +2164,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert mail.subject.starts_with?("[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}]")
|
||||
assert mail.body.include?("Subject changed from #{old_subject} to #{new_subject}")
|
||||
assert_mail_body_match "Subject changed from #{old_subject} to #{new_subject}", mail
|
||||
end
|
||||
|
||||
def test_put_update_with_project_change
|
||||
|
@ -2190,7 +2190,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert mail.subject.starts_with?("[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}]")
|
||||
assert mail.body.include?("Project changed from eCookbook to OnlineStore")
|
||||
assert_mail_body_match "Project changed from eCookbook to OnlineStore", mail
|
||||
end
|
||||
|
||||
def test_put_update_with_tracker_change
|
||||
|
@ -2215,7 +2215,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert mail.subject.starts_with?("[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}]")
|
||||
assert mail.body.include?("Tracker changed from Bug to Feature request")
|
||||
assert_mail_body_match "Tracker changed from Bug to Feature request", mail
|
||||
end
|
||||
|
||||
def test_put_update_with_custom_field_change
|
||||
|
@ -2238,7 +2238,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
|
||||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert mail.body.include?("Searchable field changed from 125 to New custom value")
|
||||
assert_mail_body_match "Searchable field changed from 125 to New custom value", mail
|
||||
end
|
||||
|
||||
def test_put_update_with_multi_custom_field_change
|
||||
|
@ -2281,7 +2281,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
assert_equal 2, j.details.size
|
||||
|
||||
mail = ActionMailer::Base.deliveries.last
|
||||
assert mail.body.include?("Status changed from New to Assigned")
|
||||
assert_mail_body_match "Status changed from New to Assigned", mail
|
||||
# subject should contain the new status
|
||||
assert mail.subject.include?("(#{ IssueStatus.find(2).name })")
|
||||
end
|
||||
|
@ -2299,7 +2299,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
assert_equal User.anonymous, j.user
|
||||
|
||||
mail = ActionMailer::Base.deliveries.last
|
||||
assert mail.body.include?(notes)
|
||||
assert_mail_body_match notes, mail
|
||||
end
|
||||
|
||||
def test_put_update_with_note_and_spent_time
|
||||
|
@ -2357,7 +2357,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
assert_equal 59, File.size(attachment.diskfile)
|
||||
|
||||
mail = ActionMailer::Base.deliveries.last
|
||||
assert mail.body.include?('testfile.txt')
|
||||
assert_mail_body_match 'testfile.txt', mail
|
||||
end
|
||||
|
||||
def test_put_update_with_failure_should_save_attachments
|
||||
|
|
|
@ -106,7 +106,7 @@ class MessagesControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert_equal "[#{message.board.project.name} - #{message.board.name} - msg#{message.root.id}] Test created message", mail.subject
|
||||
assert mail.body.include?('Message body')
|
||||
assert_mail_body_match 'Message body', mail
|
||||
# author
|
||||
assert mail.bcc.include?('jsmith@somenet.foo')
|
||||
# project member
|
||||
|
|
|
@ -191,7 +191,7 @@ class UsersControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert_equal [user.mail], mail.bcc
|
||||
assert mail.body.include?('secret')
|
||||
assert_mail_body_match 'secret', mail
|
||||
end
|
||||
|
||||
def test_create_with_preferences
|
||||
|
@ -279,7 +279,7 @@ class UsersControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert_equal ['foo.bar@somenet.foo'], mail.bcc
|
||||
assert mail.body.include?(ll('fr', :notice_account_activated))
|
||||
assert_mail_body_match ll('fr', :notice_account_activated), mail
|
||||
end
|
||||
|
||||
def test_update_with_password_change_should_send_a_notification
|
||||
|
@ -293,7 +293,7 @@ class UsersControllerTest < ActionController::TestCase
|
|||
mail = ActionMailer::Base.deliveries.last
|
||||
assert_not_nil mail
|
||||
assert_equal [u.mail], mail.bcc
|
||||
assert mail.body.include?('newpass')
|
||||
assert_mail_body_match 'newpass', mail
|
||||
end
|
||||
|
||||
test "put :update with a password change to an AuthSource user switching to Internal authentication" do
|
||||
|
|
|
@ -158,6 +158,26 @@ class ActiveSupport::TestCase
|
|||
assert s.include?(expected), "\"#{expected}\" not found in \"#{s}\""
|
||||
end
|
||||
|
||||
def assert_not_include(expected, s)
|
||||
assert !s.include?(expected), "\"#{expected}\" found in \"#{s}\""
|
||||
end
|
||||
|
||||
def assert_mail_body_match(expected, mail)
|
||||
if expected.is_a?(String)
|
||||
assert_include expected, mail.body
|
||||
else
|
||||
assert_match expected, mail.body
|
||||
end
|
||||
end
|
||||
|
||||
def assert_mail_body_no_match(expected, mail)
|
||||
if expected.is_a?(String)
|
||||
assert_not_include expected, mail.body
|
||||
else
|
||||
assert_no_match expected, mail.body
|
||||
end
|
||||
end
|
||||
|
||||
# Shoulda macros
|
||||
def self.should_render_404
|
||||
should_respond_with :not_found
|
||||
|
|
|
@ -470,7 +470,7 @@ class MailerTest < ActiveSupport::TestCase
|
|||
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||
mail = last_email
|
||||
assert mail.bcc.include?('dlopper@somenet.foo')
|
||||
assert mail.body.include?('Bug #3: Error 281 when updating a recipe')
|
||||
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe', mail
|
||||
assert_equal '1 issue(s) due in the next 42 days', mail.subject
|
||||
end
|
||||
|
||||
|
@ -486,7 +486,7 @@ class MailerTest < ActiveSupport::TestCase
|
|||
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||
mail = last_email
|
||||
assert mail.bcc.include?('dlopper@somenet.foo')
|
||||
assert !mail.body.include?('Closed issue')
|
||||
assert_mail_body_no_match 'Closed issue', mail
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -497,7 +497,7 @@ class MailerTest < ActiveSupport::TestCase
|
|||
assert_equal 1, ActionMailer::Base.deliveries.size # No mail for dlopper
|
||||
mail = last_email
|
||||
assert mail.bcc.include?('dlopper@somenet.foo')
|
||||
assert mail.body.include?('Bug #3: Error 281 when updating a recipe')
|
||||
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe', mail
|
||||
end
|
||||
|
||||
def last_email
|
||||
|
@ -515,7 +515,7 @@ class MailerTest < ActiveSupport::TestCase
|
|||
user.language = 'fr'
|
||||
Mailer.deliver_account_activated(user)
|
||||
mail = last_email
|
||||
assert mail.body.include?('Votre compte')
|
||||
assert_mail_body_match 'Votre compte', mail
|
||||
|
||||
assert_equal :it, current_language
|
||||
end
|
||||
|
|
|
@ -176,8 +176,8 @@ class RepositoryTest < ActiveSupport::TestCase
|
|||
assert_not_nil mail
|
||||
assert mail.subject.starts_with?(
|
||||
"[#{fixed_issue.project.name} - #{fixed_issue.tracker.name} ##{fixed_issue.id}]")
|
||||
assert mail.body.include?(
|
||||
"Status changed from #{old_status} to #{fixed_issue.status}")
|
||||
assert_mail_body_match(
|
||||
"Status changed from #{old_status} to #{fixed_issue.status}", mail)
|
||||
|
||||
# ignoring commits referencing an issue of another project
|
||||
assert_equal [], Issue.find(4).changesets
|
||||
|
|
Loading…
Reference in New Issue