instance method assert_select_email

Ruby on Rails 2.2.3

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Signature

assert_select_email { }

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

Examples

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

block block
Source
# File actionpack/lib/action_controller/assertions/selector_assertions.rb, line 552
      def assert_select_email(&block)
        deliveries = ActionMailer::Base.deliveries
        assert !deliveries.empty?, "No e-mail in delivery list"

        for delivery in deliveries
          for part in delivery.parts
            if part["Content-Type"].to_s =~ /^text\/html\W/
              root = HTML::Document.new(part.body).root
              assert_select root, ":root", &block
            end
          end
        end
      end

Defined in actionpack/lib/action_controller/assertions/selector_assertions.rb line 552 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionController::Assertions::SelectorAssertions

Type at least 2 characters to search.

↑↓ navigate · open · esc close