mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
6a4395f466
In the past, we sometimes hit missing `Symbol#start_with?` and `Symbol#end_with?`.63256bc5d7
a8e812964d
So I proposed `Symbol#start_with?` and `Symbol#end_with?` to allow duck typing that methods for String and Symbol, then now it is available in Ruby 2.7. https://bugs.ruby-lang.org/issues/16348 Using `String#starts_with?` and `String#ends_with?` could not be gained that conveniency, so it is preferable to not use these in the future.
39 lines
1 KiB
Ruby
39 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "abstract_unit"
|
|
require "action_controller"
|
|
|
|
class AssetHostMailer < ActionMailer::Base
|
|
def email_with_asset
|
|
mail to: "test@localhost",
|
|
subject: "testing email containing asset path while asset_host is set",
|
|
from: "tester@example.com"
|
|
end
|
|
end
|
|
|
|
class AssetHostTest < ActionMailer::TestCase
|
|
def setup
|
|
AssetHostMailer.configure do |c|
|
|
c.asset_host = "http://www.example.com"
|
|
end
|
|
end
|
|
|
|
def teardown
|
|
restore_delivery_method
|
|
end
|
|
|
|
def test_asset_host_as_string
|
|
mail = AssetHostMailer.email_with_asset
|
|
assert_dom_equal '<img src="http://www.example.com/images/somelogo.png" />', mail.body.to_s.strip
|
|
end
|
|
|
|
def test_asset_host_as_one_argument_proc
|
|
AssetHostMailer.config.asset_host = Proc.new { |source|
|
|
if source.start_with?("/images")
|
|
"http://images.example.com"
|
|
end
|
|
}
|
|
mail = AssetHostMailer.email_with_asset
|
|
assert_dom_equal '<img src="http://images.example.com/images/somelogo.png" />', mail.body.to_s.strip
|
|
end
|
|
end
|