Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Reverting changes to ActionMailer

Revert "Experimental I18n charset support for ActionMailer"
This reverts commit 6982acb.

Conflicts:

	actionmailer/lib/action_mailer/base.rb
  • Loading branch information...
commit 34bd1e95c7a08c9266fc99281417dad4a19cdf73 1 parent 8305d67
@svenfuchs svenfuchs authored
View
4 actionmailer/lib/action_mailer.rb
@@ -49,8 +49,4 @@
helper MailHelper
end
-I18n.backend.populate do
- require 'action_mailer/locale/en-US.rb'
-end
-
silence_warnings { TMail::Encoder.const_set("MAX_LINE_LEN", 200) }
View
9 actionmailer/lib/action_mailer/base.rb
@@ -344,15 +344,6 @@ class Base
# have multiple mailer methods share the same template.
adv_attr_accessor :template
- # Specify the charset to use for the message.
- # It performs a lookup, on the specified charset, then on the charset from
- # the current locale, and, finally, on the +default_charset+ specified
- # for ActionMailer::Base.
- def charset(charset = nil)
- @charset ||= charset || I18n.translate(:charset) || @@default_charset
- end
- attr_writer :charset
-
# Override the mailer name, which defaults to an inflected version of the
# mailer's class name. If you want to use a template in a non-standard
# location, you can use this to specify that location.
View
3  actionmailer/lib/action_mailer/locale/en-US.rb
@@ -1,3 +0,0 @@
-I18n.backend.store_translations :'en-US', {
- :charset => 'utf-8'
-}
View
133 actionmailer/test/i18n_test.rb
@@ -1,133 +0,0 @@
-require 'abstract_unit'
-
-class I18nMailer < ActionMailer::Base
- def use_locale_charset(recipient)
- recipients recipient
- subject "using locale charset"
- from "tester@example.com"
- body "x"
- end
-
- def use_explicit_charset(recipient)
- recipients recipient
- subject "using explicit charset"
- from "tester@example.com"
- body "x"
- charset "iso-8859-2"
- end
-
- def multiparted(recipient)
- recipients recipient
- subject "Multiparted"
- from "tester@example.com"
- body "x"
-
- part "text/html" do |p|
- p.body = "<b>multiparted iso-8859-1 html</b>"
- end
-
- part :content_type => "text/plain",
- :body => "multiparted utf-8 text",
- :charset => 'utf-8'
- end
-
- def rxml_template(recipient)
- recipients recipient
- subject "rendering rxml template"
- from "tester@example.com"
- end
-
- def initialize_defaults(method_name)
- super
- mailer_name "test_mailer"
- end
-end
-
-I18n.backend.store_translations :'en-GB', { }
-I18n.backend.store_translations :'de-DE', {
- :charset => 'iso-8859-1'
-}
-
-class I18nTest < Test::Unit::TestCase
- def setup
- @charset = 'utf-8'
- @recipient = 'test@localhost'
- end
-
- def test_should_use_locale_charset
- assert_equal @charset, mail.charset
- end
-
- def test_should_use_default_charset_if_no_current_locale
- uses_locale nil do
- assert_equal @charset, mail.charset
- end
- end
-
- def test_mail_headers_should_contains_current_charset
- uses_locale 'de-DE' do
- assert_match /iso-8859-1/, mail.header['content-type'].body
- end
- end
-
- def test_should_use_charset_from_current_locale
- uses_locale 'de-DE' do
- assert_equal 'iso-8859-1', mail.charset
- end
- end
-
- def test_should_raise_exception_if_current_locale_doesnt_specify_a_charset
- assert_raise I18n::MissingTranslationData do
- uses_locale 'en-GB' do
- mail
- end
- end
- end
-
- def test_should_use_explicit_charset
- assert_equal 'iso-8859-2', mail('use_explicit_charset').charset
- end
-
- def test_mail_parts_charsets
- uses_locale 'de-DE' do
- charsets = mail('multiparted').parts.map(&:charset)
- assert_equal 'iso-8859-1', charsets[0]
- assert_equal 'iso-8859-1', charsets[1]
- assert_equal 'utf-8', charsets[2]
- end
- end
-
- def test_mail_parts_headers
- uses_locale 'de-DE' do
- content_types = mail('multiparted').parts.map(&:header).map do |header|
- header['content-type'].body
- end
- assert_match /iso-8859-1/, content_types[0]
- assert_match /iso-8859-1/, content_types[1]
- assert_match /utf-8/, content_types[2]
- end
- end
-
- # TODO: this case depends on XML Builder,
- # should we pass Builder::XmlMarkup.new :encoding => charset_from_i18n ?
- def _ignore_test_rxml_template_should_use_current_charset
- uses_locale 'de-DE' do
- assert_equal "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<test/>",
- mail('rxml_template').body.strip
- end
- end
-
- private
- def mail(method = 'use_locale_charset')
- I18nMailer.__send__('create_' + method, @recipient)
- end
-
- def uses_locale(locale, &block)
- begin
- I18n.locale = locale
- yield
- ensure
- I18n.locale = I18n.default_locale
- end
- end
-end
Please sign in to comment.
Something went wrong with that request. Please try again.