view vendor/plugins/engines/test/unit/action_mailer_test.rb @ 8:0c83d98252d9 yuya

* Add custom repo prefix and proper auth realm, remove auth cache (seems like an unwise feature), pass DB handle around, various other bits of tidying
author Chris Cannam
date Thu, 12 Aug 2010 15:31:37 +0100
parents 513646585e45
children
line wrap: on
line source
require File.dirname(__FILE__) + '/../test_helper'

class ActionMailerWithinApplicationTest < Test::Unit::TestCase
  
  def test_normal_implicit_template
    m = NotifyMail.create_signup("hello")
    assert m.body =~ /^Signup template from application/
  end
  
  def test_action_mailer_can_get_helper
    m = NotifyMail.create_signup('James')
    assert m.body =~ /James/
    assert m.body =~ /semaJ/ # from the helper
  end
  
  def test_multipart_mails_with_explicit_templates
    m = NotifyMail.create_multipart
    assert_equal 2, m.parts.length
    assert_equal 'the html part of the email james', m.parts[0].body
    assert_equal 'the plaintext part of the email', m.parts[1].body
  end
  
  def test_multipart_mails_with_implicit_templates
    m = NotifyMail.create_implicit_multipart
    assert_equal 2, m.parts.length
    assert_equal 'the implicit plaintext part of the email', m.parts[0].body    
    assert_equal 'the implicit html part of the email james', m.parts[1].body
  end
end


class ActionMailerWithinPluginsTest < Test::Unit::TestCase  
  def test_should_be_able_to_create_mails_from_plugin
    m = PluginMail.create_mail_from_plugin("from_plugin")
    assert_equal "from_plugin", m.body
  end
  
  def test_should_be_able_to_overload_views_within_the_application
    m = PluginMail.create_mail_from_plugin_with_application_template("from_plugin")
    assert_equal "from_plugin (from application)", m.body    
  end
  
  def test_should_be_able_to_create_a_multipart_mail_from_within_plugin
    m = PluginMail.create_multipart_from_plugin
    assert_equal 2, m.parts.length
    assert_equal 'html template', m.parts[0].body
    assert_equal 'plain template', m.parts[1].body
  end
  
  def test_plugin_mailer_template_overriding
    m = PluginMail.create_multipart_from_plugin_with_application_template
    assert_equal 'plugin mail template loaded from application', m.parts[1].body
  end
end