| 1 |
require 'abstract_unit' |
|---|
| 2 |
|
|---|
| 3 |
class TestHelperMailer < ActionMailer::Base |
|---|
| 4 |
def test |
|---|
| 5 |
recipients "test@example.com" |
|---|
| 6 |
from "tester@example.com" |
|---|
| 7 |
body render(:inline => "Hello, <%= @world %>", :body => { :world => "Earth" }) |
|---|
| 8 |
end |
|---|
| 9 |
end |
|---|
| 10 |
|
|---|
| 11 |
class TestHelperMailerTest < ActionMailer::TestCase |
|---|
| 12 |
def test_setup_sets_right_action_mailer_options |
|---|
| 13 |
assert_equal :test, ActionMailer::Base.delivery_method |
|---|
| 14 |
assert ActionMailer::Base.perform_deliveries |
|---|
| 15 |
assert_equal [], ActionMailer::Base.deliveries |
|---|
| 16 |
end |
|---|
| 17 |
|
|---|
| 18 |
def test_setup_creates_the_expected_mailer |
|---|
| 19 |
assert @expected.is_a?(TMail::Mail) |
|---|
| 20 |
assert_equal "1.0", @expected.mime_version |
|---|
| 21 |
assert_equal "text/plain", @expected.content_type |
|---|
| 22 |
end |
|---|
| 23 |
|
|---|
| 24 |
def test_mailer_class_is_correctly_inferred |
|---|
| 25 |
assert_equal TestHelperMailer, self.class.mailer_class |
|---|
| 26 |
end |
|---|
| 27 |
|
|---|
| 28 |
def test_determine_default_mailer_raises_correct_error |
|---|
| 29 |
assert_raises(ActionMailer::NonInferrableMailerError) do |
|---|
| 30 |
self.class.determine_default_mailer("NotAMailerTest") |
|---|
| 31 |
end |
|---|
| 32 |
end |
|---|
| 33 |
|
|---|
| 34 |
def test_charset_is_utf_8 |
|---|
| 35 |
assert_equal "utf-8", charset |
|---|
| 36 |
end |
|---|
| 37 |
|
|---|
| 38 |
def test_encode |
|---|
| 39 |
assert_equal "=?utf-8?Q?=0aasdf=0a?=", encode("\nasdf\n") |
|---|
| 40 |
end |
|---|
| 41 |
|
|---|
| 42 |
def test_assert_emails |
|---|
| 43 |
assert_nothing_raised do |
|---|
| 44 |
assert_emails 1 do |
|---|
| 45 |
TestHelperMailer.deliver_test |
|---|
| 46 |
end |
|---|
| 47 |
end |
|---|
| 48 |
end |
|---|
| 49 |
|
|---|
| 50 |
def test_repeated_assert_emails_calls |
|---|
| 51 |
assert_nothing_raised do |
|---|
| 52 |
assert_emails 1 do |
|---|
| 53 |
TestHelperMailer.deliver_test |
|---|
| 54 |
end |
|---|
| 55 |
end |
|---|
| 56 |
|
|---|
| 57 |
assert_nothing_raised do |
|---|
| 58 |
assert_emails 2 do |
|---|
| 59 |
TestHelperMailer.deliver_test |
|---|
| 60 |
TestHelperMailer.deliver_test |
|---|
| 61 |
end |
|---|
| 62 |
end |
|---|
| 63 |
end |
|---|
| 64 |
|
|---|
| 65 |
def test_assert_emails_with_no_block |
|---|
| 66 |
assert_nothing_raised do |
|---|
| 67 |
TestHelperMailer.deliver_test |
|---|
| 68 |
assert_emails 1 |
|---|
| 69 |
end |
|---|
| 70 |
|
|---|
| 71 |
assert_nothing_raised do |
|---|
| 72 |
TestHelperMailer.deliver_test |
|---|
| 73 |
TestHelperMailer.deliver_test |
|---|
| 74 |
assert_emails 3 |
|---|
| 75 |
end |
|---|
| 76 |
end |
|---|
| 77 |
|
|---|
| 78 |
def test_assert_no_emails |
|---|
| 79 |
assert_nothing_raised do |
|---|
| 80 |
assert_no_emails do |
|---|
| 81 |
TestHelperMailer.create_test |
|---|
| 82 |
end |
|---|
| 83 |
end |
|---|
| 84 |
end |
|---|
| 85 |
|
|---|
| 86 |
def test_assert_emails_too_few_sent |
|---|
| 87 |
error = assert_raises Test::Unit::AssertionFailedError do |
|---|
| 88 |
assert_emails 2 do |
|---|
| 89 |
TestHelperMailer.deliver_test |
|---|
| 90 |
end |
|---|
| 91 |
end |
|---|
| 92 |
|
|---|
| 93 |
assert_match /2 .* but 1/, error.message |
|---|
| 94 |
end |
|---|
| 95 |
|
|---|
| 96 |
def test_assert_emails_too_many_sent |
|---|
| 97 |
error = assert_raises Test::Unit::AssertionFailedError do |
|---|
| 98 |
assert_emails 1 do |
|---|
| 99 |
TestHelperMailer.deliver_test |
|---|
| 100 |
TestHelperMailer.deliver_test |
|---|
| 101 |
end |
|---|
| 102 |
end |
|---|
| 103 |
|
|---|
| 104 |
assert_match /1 .* but 2/, error.message |
|---|
| 105 |
end |
|---|
| 106 |
|
|---|
| 107 |
def test_assert_no_emails_failure |
|---|
| 108 |
error = assert_raises Test::Unit::AssertionFailedError do |
|---|
| 109 |
assert_no_emails do |
|---|
| 110 |
TestHelperMailer.deliver_test |
|---|
| 111 |
end |
|---|
| 112 |
end |
|---|
| 113 |
|
|---|
| 114 |
assert_match /0 .* but 1/, error.message |
|---|
| 115 |
end |
|---|
| 116 |
end |
|---|
| 117 |
|
|---|
| 118 |
class AnotherTestHelperMailerTest < ActionMailer::TestCase |
|---|
| 119 |
tests TestHelperMailer |
|---|
| 120 |
|
|---|
| 121 |
def setup |
|---|
| 122 |
@test_var = "a value" |
|---|
| 123 |
end |
|---|
| 124 |
|
|---|
| 125 |
def test_setup_shouldnt_conflict_with_mailer_setup |
|---|
| 126 |
assert @expected.is_a?(TMail::Mail) |
|---|
| 127 |
assert_equal 'a value', @test_var |
|---|
| 128 |
end |
|---|
| 129 |
end |
|---|