1 require 'abstract_unit'
3 class AssetHostMailer
< ActionMailer
::Base
4 def email_with_asset(recipient
)
6 subject
"testing email containing asset path while asset_host is set"
7 from
"tester@example.com"
11 class AssetHostTest
< Test
::Unit::TestCase
13 set_delivery_method
:test
14 ActionMailer
::Base.perform_deliveries
= true
15 ActionMailer
::Base.deliveries
= []
17 @recipient = 'test@localhost'
21 restore_delivery_method
24 def test_asset_host_as_string
25 ActionController
::Base.asset_host
= "http://www.example.com"
26 mail
= AssetHostMailer
.deliver_email_with_asset(@recipient)
27 assert_equal
"<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail
.body
.strip
30 def test_asset_host_as_one_arguement_proc
31 ActionController
::Base.asset_host
= Proc
.new
{ |source
|
32 if source
.starts_with
?('/images')
33 "http://images.example.com"
35 "http://assets.example.com"
38 mail
= AssetHostMailer
.deliver_email_with_asset(@recipient)
39 assert_equal
"<img alt=\"Somelogo\" src=\"http://images.example.com/images/somelogo.png\" />", mail
.body
.strip
42 def test_asset_host_as_two_arguement_proc
43 ActionController
::Base.asset_host
= Proc
.new
{|source
,request
|
44 if request
&& request
.ssl
?
45 "https://www.example.com"
47 "http://www.example.com"
51 assert_nothing_raised
{ mail
= AssetHostMailer
.deliver_email_with_asset(@recipient) }
52 assert_equal
"<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail
.body
.strip