diff options
author | Jamis Buck <jamis@37signals.com> | 2006-01-29 02:25:15 +0000 |
---|---|---|
committer | Jamis Buck <jamis@37signals.com> | 2006-01-29 02:25:15 +0000 |
commit | 34df9be0e5bfcae1c84d1598bbcc3679314eca28 (patch) | |
tree | 00129e14b896636253e9d90f7e48d4d5b1c5857e /actionmailer | |
parent | 01b1a8772928fbf31180341356981b95d0581413 (diff) | |
download | rails-34df9be0e5bfcae1c84d1598bbcc3679314eca28.tar.gz rails-34df9be0e5bfcae1c84d1598bbcc3679314eca28.tar.bz2 rails-34df9be0e5bfcae1c84d1598bbcc3679314eca28.zip |
Template paths with dot chars in them no longer mess up implicit template selection for multipart messages (closes #3332)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3495 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionmailer')
-rw-r--r-- | actionmailer/CHANGELOG | 2 | ||||
-rwxr-xr-x | actionmailer/Rakefile | 2 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/base.rb | 2 | ||||
-rw-r--r-- | actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml | 1 | ||||
-rwxr-xr-x | actionmailer/test/mail_service_test.rb | 21 |
5 files changed, 25 insertions, 3 deletions
diff --git a/actionmailer/CHANGELOG b/actionmailer/CHANGELOG index 00c672788c..3320ede638 100644 --- a/actionmailer/CHANGELOG +++ b/actionmailer/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Template paths with dot chars in them no longer mess up implicit template selection for multipart messages #3332 [Chad Fowler] + * Make sure anything with content-disposition of "attachment" is passed to the attachment presenter when parsing an email body [Jamis Buck] * Make sure TMail#attachments includes anything with content-disposition of "attachment", regardless of content-type [Jamis Buck] diff --git a/actionmailer/Rakefile b/actionmailer/Rakefile index f0dd7b66d7..ee9cbe762d 100755 --- a/actionmailer/Rakefile +++ b/actionmailer/Rakefile @@ -25,7 +25,7 @@ Rake::TestTask.new { |t| t.libs << "test" t.pattern = 'test/*_test.rb' t.verbose = true - t.warning = true + t.warning = false } diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 39fa1e4aac..97bd83395c 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -305,7 +305,7 @@ module ActionMailer # normal template exists (or if there were no implicit parts) we render # it. template_exists = @parts.empty? - template_exists ||= Dir.glob("#{template_path}/#{@template}.*").any? { |i| i.split(".").length == 2 } + template_exists ||= Dir.glob("#{template_path}/#{@template}.*").any? { |i| File.basename(i).split(".").length == 2 } @body = render_message(@template, @body) if template_exists # Finally, if there are other message parts and a textual body exists, diff --git a/actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml b/actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml new file mode 100644 index 0000000000..897a5065cf --- /dev/null +++ b/actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml @@ -0,0 +1 @@ +Have a lovely picture, from me. Enjoy!
\ No newline at end of file diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb index 4d569da31f..838c49b7c3 100755 --- a/actionmailer/test/mail_service_test.rb +++ b/actionmailer/test/mail_service_test.rb @@ -23,6 +23,20 @@ class Net::SMTP end end +class FunkyPathMailer < ActionMailer::Base + def multipart_with_template_path_with_dots(recipient) + recipients recipient + subject "Have a lovely picture" + from "Chad Fowler <chad@chadfowler.com>" + attachment :content_type => "image/jpeg", + :body => "not really a jpeg, we're only testing, after all" + end + + def template_path + "#{File.dirname(__FILE__)}/fixtures/path.with.dots" + end +end + class TestMailer < ActionMailer::Base def signed_up(recipient) @@ -748,9 +762,14 @@ EOF end def test_deliver_with_mail_object - mail = TestMailer::create_headers_with_nonalpha_chars(@recipient) + mail = TestMailer.create_headers_with_nonalpha_chars(@recipient) assert_nothing_raised { TestMailer.deliver(mail) } assert_equal 1, TestMailer.deliveries.length end + + def test_multipart_with_template_path_with_dots + mail = FunkyPathMailer.create_multipart_with_template_path_with_dots(@recipient) + assert_equal 2, mail.parts.length + end end |