instance method
assert_select_email
Ruby on Rails 4.0.13
Since v3.0.20 Last seen in v4.1.16Signature
assert_select_email(&block)
Extracts the body of an email and runs nested assertions on it.
You must enable deliveries for this assertion to work, use:
ActionMailer::Base.perform_deliveries = true assert_select_email do assert_select "h1", "Email alert" end assert_select_email do items = assert_select "ol>li" items.each do # Work with items here... end end
Parameters
-
blockblock
Source
# File actionpack/lib/action_dispatch/testing/assertions/selector.rb, line 409
def assert_select_email(&block)
deliveries = ActionMailer::Base.deliveries
assert !deliveries.empty?, "No e-mail in delivery list"
deliveries.each do |delivery|
(delivery.parts.empty? ? [delivery] : delivery.parts).each do |part|
if part["Content-Type"].to_s =~ /^text\/html\W/
root = HTML::Document.new(part.body.to_s).root
assert_select root, ":root", &block
end
end
end
end
Defined in actionpack/lib/action_dispatch/testing/assertions/selector.rb line 409
· View on GitHub
· Improve this page
· Find usages on GitHub