aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/test
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-02-19 21:51:16 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-02-19 21:51:16 +0000
commit3fad0cd06c2ff828dd9bb0bb18080572ee992f4f (patch)
tree30533e27412fc18074fcea15fe7577ff9e271baf /actionmailer/test
parent7d3d83e7b4996fa161ba4f276ca65edf3902c1a2 (diff)
downloadrails-3fad0cd06c2ff828dd9bb0bb18080572ee992f4f.tar.gz
rails-3fad0cd06c2ff828dd9bb0bb18080572ee992f4f.tar.bz2
rails-3fad0cd06c2ff828dd9bb0bb18080572ee992f4f.zip
Added support for charsets for both subject and body. The default charset is now UTF-8 #673 [Jamis Buck]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@699 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionmailer/test')
-rwxr-xr-xactionmailer/test/mail_service_test.rb96
1 files changed, 90 insertions, 6 deletions
diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb
index 2ad85b605c..45423a1960 100755
--- a/actionmailer/test/mail_service_test.rb
+++ b/actionmailer/test/mail_service_test.rb
@@ -31,12 +31,46 @@ class TestMailer < ActionMailer::Base
@body = "Nothing to see here."
end
+ def iso_charset(recipient)
+ @recipients = recipient
+ @subject = "testing iso charsets"
+ @from = "system@loudthinking.com"
+ @sent_on = Time.local 2004, 12, 12
+ @cc = "nobody@loudthinking.com"
+ @bcc = "root@loudthinking.com"
+ @body = "Nothing to see here."
+ @charset = "iso-8859-1"
+ end
+
+ def unencoded_subject(recipient)
+ @recipients = recipient
+ @subject = "testing unencoded subject"
+ @from = "system@loudthinking.com"
+ @sent_on = Time.local 2004, 12, 12
+ @cc = "nobody@loudthinking.com"
+ @bcc = "root@loudthinking.com"
+ @body = "Nothing to see here."
+ @encode_subject = false
+ end
+
end
TestMailer.template_root = File.dirname(__FILE__) + "/fixtures"
class ActionMailerTest < Test::Unit::TestCase
+ def encode( text, charset="utf-8" )
+ ActionMailer::Base.quoted_printable( text, charset )
+ end
+
+ def new_mail( charset="utf-8" )
+ mail = TMail::Mail.new
+ if charset
+ mail.set_content_type "text", "plain", { "charset" => charset }
+ end
+ mail
+ end
+
def setup
ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true
@@ -46,9 +80,9 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_signed_up
- expected = TMail::Mail.new
+ expected = new_mail
expected.to = @recipient
- expected.subject = "[Signed up] Welcome #{@recipient}"
+ expected.subject = encode "[Signed up] Welcome #{@recipient}"
expected.body = "Hello there, \n\nMr. #{@recipient}"
expected.from = "system@loudthinking.com"
expected.date = Time.local(2004, 12, 12)
@@ -64,9 +98,9 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_cancelled_account
- expected = TMail::Mail.new
+ expected = new_mail
expected.to = @recipient
- expected.subject = "[Cancelled] Goodbye #{@recipient}"
+ expected.subject = encode "[Cancelled] Goodbye #{@recipient}"
expected.body = "Goodbye, Mr. #{@recipient}"
expected.from = "system@loudthinking.com"
expected.date = Time.local(2004, 12, 12)
@@ -82,9 +116,9 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_cc_bcc
- expected = TMail::Mail.new
+ expected = new_mail
expected.to = @recipient
- expected.subject = "testing bcc/cc"
+ expected.subject = encode "testing bcc/cc"
expected.body = "Nothing to see here."
expected.from = "system@loudthinking.com"
expected.cc = "nobody@loudthinking.com"
@@ -106,6 +140,56 @@ class ActionMailerTest < Test::Unit::TestCase
assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
end
+ def test_iso_charset
+ expected = new_mail( "iso-8859-1" )
+ expected.to = @recipient
+ expected.subject = encode "testing iso charsets", "iso-8859-1"
+ expected.body = "Nothing to see here."
+ expected.from = "system@loudthinking.com"
+ expected.cc = "nobody@loudthinking.com"
+ expected.bcc = "root@loudthinking.com"
+ expected.date = Time.local 2004, 12, 12
+
+ created = nil
+ assert_nothing_raised do
+ created = TestMailer.create_iso_charset @recipient
+ end
+ assert_not_nil created
+ assert_equal expected.encoded, created.encoded
+
+ assert_nothing_raised do
+ TestMailer.deliver_iso_charset @recipient
+ end
+
+ assert_not_nil ActionMailer::Base.deliveries.first
+ assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
+ end
+
+ def test_unencoded_subject
+ expected = new_mail
+ expected.to = @recipient
+ expected.subject = "testing unencoded subject"
+ expected.body = "Nothing to see here."
+ expected.from = "system@loudthinking.com"
+ expected.cc = "nobody@loudthinking.com"
+ expected.bcc = "root@loudthinking.com"
+ expected.date = Time.local 2004, 12, 12
+
+ created = nil
+ assert_nothing_raised do
+ created = TestMailer.create_unencoded_subject @recipient
+ end
+ assert_not_nil created
+ assert_equal expected.encoded, created.encoded
+
+ assert_nothing_raised do
+ TestMailer.deliver_unencoded_subject @recipient
+ end
+
+ assert_not_nil ActionMailer::Base.deliveries.first
+ assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
+ end
+
def test_instances_are_nil
assert_nil ActionMailer::Base.new
assert_nil TestMailer.new