1c92dd266dd5c31710b1713e1f2c522e8cca2294
[feedcatcher.git] / vendor / rails / actionmailer / test / asset_host_test.rb
1 require 'abstract_unit'
2
3 class AssetHostMailer < ActionMailer::Base
4 def email_with_asset(recipient)
5 recipients recipient
6 subject "testing email containing asset path while asset_host is set"
7 from "tester@example.com"
8 end
9 end
10
11 class AssetHostTest < Test::Unit::TestCase
12 def setup
13 set_delivery_method :test
14 ActionMailer::Base.perform_deliveries = true
15 ActionMailer::Base.deliveries = []
16
17 @recipient = 'test@localhost'
18 end
19
20 def teardown
21 restore_delivery_method
22 end
23
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
28 end
29
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"
34 else
35 "http://assets.example.com"
36 end
37 }
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
40 end
41
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"
46 else
47 "http://www.example.com"
48 end
49 }
50 mail = nil
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
53 end
54 end