mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #30361 from mfo/master
StreamingTemplateRenderer fails to forward I18n.locale in layouts
This commit is contained in:
commit
4edce566ad
4 changed files with 25 additions and 1 deletions
|
@ -65,7 +65,9 @@ module ActionView
|
|||
yielder = lambda { |*name| view._layout_for(*name) }
|
||||
|
||||
instrument(:template, identifier: template.identifier, layout: layout.try(:virtual_path)) do
|
||||
outer_config = I18n.config
|
||||
fiber = Fiber.new do
|
||||
I18n.config = outer_config
|
||||
if layout
|
||||
layout.render(view, locals, output, &yielder)
|
||||
else
|
||||
|
|
2
actionview/test/fixtures/layouts/streaming_with_locale.erb
vendored
Normal file
2
actionview/test/fixtures/layouts/streaming_with_locale.erb
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
layout.locale: <%= I18n.locale %>
|
||||
<%= yield %>
|
1
actionview/test/fixtures/test/streaming_with_locale.erb
vendored
Normal file
1
actionview/test/fixtures/test/streaming_with_locale.erb
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
view.locale: <%= I18n.locale %>
|
|
@ -5,7 +5,7 @@ require "abstract_unit"
|
|||
class TestController < ActionController::Base
|
||||
end
|
||||
|
||||
class FiberedTest < ActiveSupport::TestCase
|
||||
class SetupFiberedBase < ActiveSupport::TestCase
|
||||
def setup
|
||||
view_paths = ActionController::Base.view_paths
|
||||
@assigns = { secret: "in the sauce", name: nil }
|
||||
|
@ -25,7 +25,9 @@ class FiberedTest < ActiveSupport::TestCase
|
|||
end
|
||||
string
|
||||
end
|
||||
end
|
||||
|
||||
class FiberedTest < SetupFiberedBase
|
||||
def test_streaming_works
|
||||
content = []
|
||||
body = render_body(template: "test/hello_world", layout: "layouts/yield")
|
||||
|
@ -111,3 +113,20 @@ class FiberedTest < ActiveSupport::TestCase
|
|||
buffered_render(template: "test/streaming", layout: "layouts/streaming_with_capture")
|
||||
end
|
||||
end
|
||||
|
||||
class FiberedWithLocaleTest < SetupFiberedBase
|
||||
def setup
|
||||
@old_locale = I18n.locale
|
||||
I18n.locale = "da"
|
||||
super
|
||||
end
|
||||
|
||||
def teardown
|
||||
I18n.locale = @old_locale
|
||||
end
|
||||
|
||||
def test_render_with_streaming_and_locale
|
||||
assert_equal "layout.locale: da\nview.locale: da\n\n",
|
||||
buffered_render(template: "test/streaming_with_locale", layout: "layouts/streaming_with_locale")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue