mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
b91ff557ef
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
77 lines
1.7 KiB
Ruby
77 lines
1.7 KiB
Ruby
require "abstract_unit"
|
|
require "action_view"
|
|
require "action_controller"
|
|
|
|
class I18nTestMailer < ActionMailer::Base
|
|
configure do |c|
|
|
c.assets_dir = ""
|
|
end
|
|
|
|
def mail_with_i18n_subject(recipient)
|
|
@recipient = recipient
|
|
I18n.locale = :de
|
|
mail(to: recipient, subject: I18n.t(:email_subject),
|
|
from: "system@loudthinking.com", date: Time.local(2004, 12, 12))
|
|
end
|
|
end
|
|
|
|
class TestController < ActionController::Base
|
|
def send_mail
|
|
email = I18nTestMailer.mail_with_i18n_subject("test@localhost").deliver_now
|
|
render text: "Mail sent - Subject: #{email.subject}"
|
|
end
|
|
end
|
|
|
|
class ActionMailerI18nWithControllerTest < ActionDispatch::IntegrationTest
|
|
Routes = ActionDispatch::Routing::RouteSet.new
|
|
Routes.draw do
|
|
ActiveSupport::Deprecation.silence do
|
|
get ":controller(/:action(/:id))"
|
|
end
|
|
end
|
|
|
|
class RoutedRackApp
|
|
attr_reader :routes
|
|
|
|
def initialize(routes, &blk)
|
|
@routes = routes
|
|
@stack = ActionDispatch::MiddlewareStack.new(&blk).build(@routes)
|
|
end
|
|
|
|
def call(env)
|
|
@stack.call(env)
|
|
end
|
|
end
|
|
|
|
APP = RoutedRackApp.new(Routes)
|
|
|
|
def app
|
|
APP
|
|
end
|
|
|
|
teardown do
|
|
I18n.locale = I18n.default_locale
|
|
end
|
|
|
|
def test_send_mail
|
|
stub_any_instance(Mail::SMTP, instance: Mail::SMTP.new({})) do |instance|
|
|
assert_called(instance, :deliver!) do
|
|
with_translation "de", email_subject: "[Anmeldung] Willkommen" do
|
|
ActiveSupport::Deprecation.silence do
|
|
get "/test/send_mail"
|
|
end
|
|
assert_equal "Mail sent - Subject: [Anmeldung] Willkommen", @response.body
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
protected
|
|
|
|
def with_translation(locale, data)
|
|
I18n.backend.store_translations(locale, data)
|
|
yield
|
|
ensure
|
|
I18n.backend.reload!
|
|
end
|
|
end
|