diff options
author | Tekin Suleyman <tekin@tekin.co.uk> | 2008-11-25 11:27:32 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-12-01 19:38:25 +0100 |
commit | dab78e55cfcc111b898a1c2475c0c5c327db30f9 (patch) | |
tree | 5dba08dcfbc50339ed513e17bfffe2553b63c443 /actionmailer | |
parent | bda55f82c687920807f606a2b024f1882094ef1e (diff) | |
download | rails-dab78e55cfcc111b898a1c2475c0c5c327db30f9.tar.gz rails-dab78e55cfcc111b898a1c2475c0c5c327db30f9.tar.bz2 rails-dab78e55cfcc111b898a1c2475c0c5c327db30f9.zip |
Ensure ActionMailer doesn't blow up when a two argument proc is set for the asset host
Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#1394 state:committed]
Diffstat (limited to 'actionmailer')
-rw-r--r-- | actionmailer/test/asset_host_test.rb | 54 | ||||
-rw-r--r-- | actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb | 1 |
2 files changed, 55 insertions, 0 deletions
diff --git a/actionmailer/test/asset_host_test.rb b/actionmailer/test/asset_host_test.rb new file mode 100644 index 0000000000..1c92dd266d --- /dev/null +++ b/actionmailer/test/asset_host_test.rb @@ -0,0 +1,54 @@ +require 'abstract_unit' + +class AssetHostMailer < ActionMailer::Base + def email_with_asset(recipient) + recipients recipient + subject "testing email containing asset path while asset_host is set" + from "tester@example.com" + end +end + +class AssetHostTest < Test::Unit::TestCase + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_asset_host_as_string + ActionController::Base.asset_host = "http://www.example.com" + mail = AssetHostMailer.deliver_email_with_asset(@recipient) + assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.strip + end + + def test_asset_host_as_one_arguement_proc + ActionController::Base.asset_host = Proc.new { |source| + if source.starts_with?('/images') + "http://images.example.com" + else + "http://assets.example.com" + end + } + mail = AssetHostMailer.deliver_email_with_asset(@recipient) + assert_equal "<img alt=\"Somelogo\" src=\"http://images.example.com/images/somelogo.png\" />", mail.body.strip + end + + def test_asset_host_as_two_arguement_proc + ActionController::Base.asset_host = Proc.new {|source,request| + if request && request.ssl? + "https://www.example.com" + else + "http://www.example.com" + end + } + mail = nil + assert_nothing_raised { mail = AssetHostMailer.deliver_email_with_asset(@recipient) } + assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.strip + end +end
\ No newline at end of file diff --git a/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb b/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb new file mode 100644 index 0000000000..b3f0438d03 --- /dev/null +++ b/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb @@ -0,0 +1 @@ +<%= image_tag "somelogo.png" %>
\ No newline at end of file |