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