aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJon Moss <me@jonathanmoss.me>2017-01-05 17:39:12 -0500
committerJon Moss <me@jonathanmoss.me>2017-01-05 17:39:12 -0500
commitc5da6414715e3e61f6e51a40245525aa9504a6f3 (patch)
tree427d127b00c6316498dabbd5d13f5909d75d7177 /actionpack
parent5f03172f54a58a57a48a3121562beb2cef866cbe (diff)
downloadrails-c5da6414715e3e61f6e51a40245525aa9504a6f3.tar.gz
rails-c5da6414715e3e61f6e51a40245525aa9504a6f3.tar.bz2
rails-c5da6414715e3e61f6e51a40245525aa9504a6f3.zip
Update `cookies` helper on all HTTP requests
Regression introduced by ae29142142324545a328948e059e8b8118fd7a33 / 8363b879fe759f0645179f4521cc64795efbee6e. Previously, cookies were only updated on `GET` requests. Now we will update the helper for all requests, as part of `process`. Added regression tests for all available HTTP method helpers in `ActionController::TestCase`.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_controller/test_case.rb5
-rw-r--r--actionpack/test/dispatch/cookies_test.rb9
2 files changed, 11 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb
index 7b620ac95e..57dd605b51 100644
--- a/actionpack/lib/action_controller/test_case.rb
+++ b/actionpack/lib/action_controller/test_case.rb
@@ -389,9 +389,7 @@ module ActionController
# Note that the request method is not verified. The different methods are
# available to make the tests more expressive.
def get(action, **args)
- res = process(action, method: "GET", **args)
- cookies.update res.cookies
- res
+ process(action, method: "GET", **args)
end
# Simulate a POST request with the given parameters and set/volley the response.
@@ -519,6 +517,7 @@ module ActionController
unless @request.cookie_jar.committed?
@request.cookie_jar.write(@response)
cookies.update(@request.cookie_jar.instance_variable_get(:@cookies))
+ cookies.update(@response.cookies)
end
end
@response.prepare!
diff --git a/actionpack/test/dispatch/cookies_test.rb b/actionpack/test/dispatch/cookies_test.rb
index 664faa31bb..73ad677419 100644
--- a/actionpack/test/dispatch/cookies_test.rb
+++ b/actionpack/test/dispatch/cookies_test.rb
@@ -395,6 +395,15 @@ class CookiesTest < ActionController::TestCase
assert_equal false, cookies.deleted?("another")
end
+ # Ensure all HTTP methods have their cookies updated
+ [:get, :post, :patch, :put, :delete, :head].each do |method|
+ define_method("test_deleting_cookie_#{method}") do
+ request.cookies[:user_name] = "Joe"
+ public_send method, :logout
+ assert_nil cookies[:user_name]
+ end
+ end
+
def test_deleted_cookie_predicate_with_mismatching_options
cookies[:user_name] = "Joe"
cookies.delete("user_name", path: "/path")