aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorJamis Buck <jamis@37signals.com>2006-01-29 02:25:15 +0000
committerJamis Buck <jamis@37signals.com>2006-01-29 02:25:15 +0000
commit34df9be0e5bfcae1c84d1598bbcc3679314eca28 (patch)
tree00129e14b896636253e9d90f7e48d4d5b1c5857e /actionmailer
parent01b1a8772928fbf31180341356981b95d0581413 (diff)
downloadrails-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/CHANGELOG2
-rwxr-xr-xactionmailer/Rakefile2
-rw-r--r--actionmailer/lib/action_mailer/base.rb2
-rw-r--r--actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml1
-rwxr-xr-xactionmailer/test/mail_service_test.rb21
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