mirror of https://github.com/rails/rails
porting session.clear fix to master branch. [#5030 state:resolved]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
This commit is contained in:
parent
4a0c514eb4
commit
f8720a04d1
|
@ -64,6 +64,11 @@ module ActionDispatch
|
||||||
super(key.to_s, value)
|
super(key.to_s, value)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def clear
|
||||||
|
load_for_write!
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
def to_hash
|
def to_hash
|
||||||
load_for_read!
|
load_for_read!
|
||||||
h = {}.replace(self)
|
h = {}.replace(self)
|
||||||
|
|
|
@ -30,6 +30,11 @@ class CookieStoreTest < ActionController::IntegrationTest
|
||||||
render :text => "id: #{request.session_options[:id]}"
|
render :text => "id: #{request.session_options[:id]}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def call_session_clear
|
||||||
|
session.clear
|
||||||
|
head :ok
|
||||||
|
end
|
||||||
|
|
||||||
def call_reset_session
|
def call_reset_session
|
||||||
reset_session
|
reset_session
|
||||||
head :ok
|
head :ok
|
||||||
|
@ -175,6 +180,23 @@ class CookieStoreTest < ActionController::IntegrationTest
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_setting_session_value_after_session_clear
|
||||||
|
with_test_route_set do
|
||||||
|
get '/set_session_value'
|
||||||
|
assert_response :success
|
||||||
|
session_payload = response.body
|
||||||
|
assert_equal "_myapp_session=#{response.body}; path=/; HttpOnly",
|
||||||
|
headers['Set-Cookie']
|
||||||
|
|
||||||
|
get '/call_session_clear'
|
||||||
|
assert_response :success
|
||||||
|
|
||||||
|
get '/get_session_value'
|
||||||
|
assert_response :success
|
||||||
|
assert_equal 'foo: nil', response.body
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_persistent_session_id
|
def test_persistent_session_id
|
||||||
with_test_route_set do
|
with_test_route_set do
|
||||||
cookies[SessionKey] = SignedBar
|
cookies[SessionKey] = SignedBar
|
||||||
|
|
Loading…
Reference in New Issue