aboutsummaryrefslogblamecommitdiffstats
path: root/actionmailer/test/old_base/asset_host_test.rb
blob: 0ec0242f552deb8d3acd7d4b3a3002c0bb77973a (plain) (tree)
1
2
3
4
5
6
                       
                           

                                          

                               








                                                                            
                                       



                                             






                               
                                           
                                                                                                                    


                                           
                                                           





                                       
                                           
                                                                                                                       


                                           
                                                                         






                                 
                                                                     
                                                                                                                    

     
require 'abstract_unit'
require 'action_controller'

class AssetHostMailer < ActionMailer::Base
  def email_with_asset
    recipients 'test@localhost'
    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.clear
    AssetHostMailer.configure do |c|
      c.asset_host = "http://www.example.com"
      c.assets_dir = ''
    end
  end

  def teardown
    restore_delivery_method
  end

  def test_asset_host_as_string
    mail = AssetHostMailer.email_with_asset
    assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.to_s.strip
  end

  def test_asset_host_as_one_arguement_proc
    AssetHostMailer.config.asset_host = Proc.new { |source|
      if source.starts_with?('/images')
        "http://images.example.com"
      else
        "http://assets.example.com"
      end
    }
    mail = AssetHostMailer.email_with_asset
    assert_equal "<img alt=\"Somelogo\" src=\"http://images.example.com/images/somelogo.png\" />", mail.body.to_s.strip
  end

  def test_asset_host_as_two_arguement_proc
    ActionController::Base.config.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.email_with_asset }
    assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.to_s.strip
  end
end