Merge pull request #39452 from rolandasb/fix-nil-encrypted-cookie-value
Fix nil encrypted/signed cookie value when value is stored as `false`
This commit is contained in:
commit
f3f86be7b4
@ -472,7 +472,13 @@ def initialize(parent_jar)
|
||||
|
||||
def [](name)
|
||||
if data = @parent_jar[name.to_s]
|
||||
parse(name, data, purpose: "cookie.#{name}") || parse(name, data)
|
||||
result = parse(name, data, purpose: "cookie.#{name}")
|
||||
|
||||
if result.nil?
|
||||
parse(name, data)
|
||||
else
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1282,6 +1282,20 @@ def test_vanilla_cookie_with_expires_set_relatively
|
||||
end
|
||||
end
|
||||
|
||||
def test_signed_cookie_with_false_value_and_metadata
|
||||
request.env["action_dispatch.use_cookies_with_metadata"] = true
|
||||
|
||||
cookies.signed[:foo] = false
|
||||
assert_equal false, cookies.signed[:foo]
|
||||
end
|
||||
|
||||
def test_encrypted_cookie_with_false_value_and_metadata
|
||||
request.env["action_dispatch.use_cookies_with_metadata"] = true
|
||||
|
||||
cookies.encrypted[:foo] = false
|
||||
assert_equal false, cookies.encrypted[:foo]
|
||||
end
|
||||
|
||||
def test_purpose_metadata_for_encrypted_cookies
|
||||
get :encrypted_discount_and_user_id_cookie
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user