1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Don't reuse a closed flash when using now

This commit is contained in:
Florent Piteau 2011-04-20 02:10:29 +08:00 committed by José Valim
parent 22fcef90b1
commit 89ed9fbd19
2 changed files with 13 additions and 1 deletions

View file

@ -70,6 +70,10 @@ module ActionDispatch
def close!(new_flash)
@flash = new_flash
end
def closed?
@flash.closed?
end
end
class FlashHash
@ -146,7 +150,7 @@ module ActionDispatch
#
# Entries set via <tt>now</tt> are accessed the same way as standard entries: <tt>flash['my-key']</tt>.
def now
@now ||= FlashNow.new(self)
@now = (!@now || @now.closed?) ? FlashNow.new(self) : @now
end
attr_reader :closed

View file

@ -272,6 +272,14 @@ class FlashIntegrationTest < ActionDispatch::IntegrationTest
end
end
def test_setting_flash_now_does_not_raise_in_following_requests
with_test_route_set do
env = { 'action_dispatch.request.flash_hash' => ActionDispatch::Flash::FlashHash.new }
get '/set_flash_now', nil, env
get '/set_flash_now', nil, env
end
end
def test_setting_flash_raises_after_stream_back_to_client_even_with_an_empty_flash
with_test_route_set do
env = { 'action_dispatch.request.flash_hash' => ActionDispatch::Flash::FlashHash.new }