aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch
diff options
context:
space:
mode:
authorAndré Luis Leal Cardoso Junior <andrehjr@gmail.com>2019-03-17 00:43:43 -0300
committerAndré Luis Leal Cardoso Junior <andrehjr@gmail.com>2019-03-17 01:26:51 -0300
commitca937c59cd69c05cbb92bad4839d931061e15b69 (patch)
treeef94b64f9ba5502add4c20c297a4885c986ec472 /actionpack/test/dispatch
parentfdac932707fb16b7d074b1d0bc7c255157d72675 (diff)
downloadrails-ca937c59cd69c05cbb92bad4839d931061e15b69.tar.gz
rails-ca937c59cd69c05cbb92bad4839d931061e15b69.tar.bz2
rails-ca937c59cd69c05cbb92bad4839d931061e15b69.zip
Don't override @set_cookies on CookieJar#update_cookies_from_jar'
When building the cookie_jar for the current test request. It was possible for this method to override keys currently being set on the test itself. In situations such as when making two requests mixing creating the cookie on the test and the controller.
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r--actionpack/test/dispatch/cookies_test.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/cookies_test.rb b/actionpack/test/dispatch/cookies_test.rb
index 4aaac1320e..2c67bb779f 100644
--- a/actionpack/test/dispatch/cookies_test.rb
+++ b/actionpack/test/dispatch/cookies_test.rb
@@ -123,6 +123,11 @@ class CookiesTest < ActionController::TestCase
head :ok
end
+ def set_cookie_if_not_present
+ cookies["user_name"] = "alice" unless cookies["user_name"].present?
+ head :ok
+ end
+
def logout
cookies.delete("user_name")
head :ok
@@ -1128,6 +1133,14 @@ class CookiesTest < ActionController::TestCase
assert_equal "bar", @controller.encrypted_cookie
end
+ def test_cookie_override
+ get :set_cookie_if_not_present
+ assert_equal "alice", cookies["user_name"]
+ cookies["user_name"] = "bob"
+ get :set_cookie_if_not_present
+ assert_equal "bob", cookies["user_name"]
+ end
+
def test_signed_cookie_with_expires_set_relatively
request.env["action_dispatch.use_cookies_with_metadata"] = true