aboutsummaryrefslogblamecommitdiffstats
path: root/actionmailer/test/subscriber_test.rb
blob: aed5d2ca7e92f88c747e6b9fbf64626f29f9781a (plain) (tree)
1
2
3
4
5
6



                                           

                                               



























                                                                                  
                              







                                                                       
  
require "abstract_unit"
require "rails/subscriber/test_helper"
require "action_mailer/railties/subscriber"

class AMSubscriberTest < ActionMailer::TestCase
  include Rails::Subscriber::TestHelper
  Rails::Subscriber.add(:action_mailer, ActionMailer::Railties::Subscriber.new)

  class TestMailer < ActionMailer::Base
    def basic
      recipients "somewhere@example.com"
      subject    "basic"
      from       "basic@example.com"
      render :text => "Hello world"
    end

    def receive(mail)
      # Do nothing
    end
  end

  def set_logger(logger)
    ActionMailer::Base.logger = logger
  end

  def test_deliver_is_notified
    TestMailer.deliver_basic
    wait
    assert_equal 1, @logger.logged(:info).size
    assert_match /Sent mail to somewhere@example.com/, @logger.logged(:info).first
    assert_equal 1, @logger.logged(:debug).size
    assert_match /Hello world/, @logger.logged(:debug).first
  end

  def test_receive_is_notified
    fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email")
    TestMailer.receive(fixture)
    wait
    assert_equal 1, @logger.logged(:info).size
    assert_match /Received mail/, @logger.logged(:info).first
    assert_equal 1, @logger.logged(:debug).size
    assert_match /Jamis/, @logger.logged(:debug).first
  end
end