diff options
author | Nate Berkopec <nate.berkopec@gmail.com> | 2012-10-27 14:28:42 -0400 |
---|---|---|
committer | Nate Berkopec <nate.berkopec@gmail.com> | 2012-11-19 11:27:22 -0500 |
commit | 9cf33b55f39779b98604e1652affc2c64873dd9b (patch) | |
tree | b9ae97ade41b07a17e8f52d8e1194e96ac3d13be /actionmailer/test | |
parent | 3b99653587cead2f8b6ba4ee163c8b736d5f7f34 (diff) | |
download | rails-9cf33b55f39779b98604e1652affc2c64873dd9b.tar.gz rails-9cf33b55f39779b98604e1652affc2c64873dd9b.tar.bz2 rails-9cf33b55f39779b98604e1652affc2c64873dd9b.zip |
Explicit multipart messages respect :parts_order
As issue #7978, the order in which ActionMailer
sends multipart messages could be unintentionally
overwritten if a block is passed to the mail
method. This changes the mail method such that
:parts_order is always respected, regardless of
whether a block is passed to mail.
Diffstat (limited to 'actionmailer/test')
-rw-r--r-- | actionmailer/test/base_test.rb | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb index b07b352082..3c21886502 100644 --- a/actionmailer/test/base_test.rb +++ b/actionmailer/test/base_test.rb @@ -322,19 +322,6 @@ class BaseTest < ActiveSupport::TestCase assert_not_nil(mail.content_type_parameters[:boundary]) end - test "explicit multipart does not sort order" do - order = ["text/html", "text/plain"] - with_default BaseMailer, parts_order: order do - email = BaseMailer.explicit_multipart - assert_equal("text/plain", email.parts[0].mime_type) - assert_equal("text/html", email.parts[1].mime_type) - - email = BaseMailer.explicit_multipart(parts_order: order.reverse) - assert_equal("text/plain", email.parts[0].mime_type) - assert_equal("text/html", email.parts[1].mime_type) - end - end - test "explicit multipart with attachments creates nested parts" do email = BaseMailer.explicit_multipart(attachments: true) assert_equal("application/pdf", email.parts[0].mime_type) @@ -349,10 +336,10 @@ class BaseTest < ActiveSupport::TestCase email = BaseMailer.explicit_multipart_templates assert_equal(2, email.parts.size) assert_equal("multipart/alternative", email.mime_type) - assert_equal("text/html", email.parts[0].mime_type) - assert_equal("HTML Explicit Multipart Templates", email.parts[0].body.encoded) - assert_equal("text/plain", email.parts[1].mime_type) - assert_equal("TEXT Explicit Multipart Templates", email.parts[1].body.encoded) + assert_equal("text/plain", email.parts[0].mime_type) + assert_equal("TEXT Explicit Multipart Templates", email.parts[0].body.encoded) + assert_equal("text/html", email.parts[1].mime_type) + assert_equal("HTML Explicit Multipart Templates", email.parts[1].body.encoded) end test "explicit multipart with format.any" do @@ -387,10 +374,23 @@ class BaseTest < ActiveSupport::TestCase email = BaseMailer.explicit_multipart_with_one_template assert_equal(2, email.parts.size) assert_equal("multipart/alternative", email.mime_type) - assert_equal("text/html", email.parts[0].mime_type) - assert_equal("[:html]", email.parts[0].body.encoded) - assert_equal("text/plain", email.parts[1].mime_type) - assert_equal("[:text]", email.parts[1].body.encoded) + assert_equal("text/plain", email.parts[0].mime_type) + assert_equal("[:text]", email.parts[0].body.encoded) + assert_equal("text/html", email.parts[1].mime_type) + assert_equal("[:html]", email.parts[1].body.encoded) + end + + test "explicit multipart with sort order" do + order = ["text/html", "text/plain"] + with_default BaseMailer, parts_order: order do + email = BaseMailer.explicit_multipart + assert_equal("text/html", email.parts[0].mime_type) + assert_equal("text/plain", email.parts[1].mime_type) + + email = BaseMailer.explicit_multipart(parts_order: order.reverse) + assert_equal("text/plain", email.parts[0].mime_type) + assert_equal("text/html", email.parts[1].mime_type) + end end # Class level API with method missing |