diff options
author | Andrew White <pixeltrix@users.noreply.github.com> | 2016-04-04 21:50:26 +0100 |
---|---|---|
committer | Andrew White <pixeltrix@users.noreply.github.com> | 2016-04-04 21:50:26 +0100 |
commit | 0f51dda718696b67b5e98b748e75ea49fc05b360 (patch) | |
tree | b51fa31fb8b8a4df4211fd9af12573760408cacf | |
parent | 426458d50cc0ef5b25d42572c46dac1001fc8007 (diff) | |
parent | f99106805d7275c790466b31514e52544ee1a8d6 (diff) | |
download | rails-0f51dda718696b67b5e98b748e75ea49fc05b360.tar.gz rails-0f51dda718696b67b5e98b748e75ea49fc05b360.tar.bz2 rails-0f51dda718696b67b5e98b748e75ea49fc05b360.zip |
Merge pull request #24304 from rthbound/24239-work
Fixes #24239
-rw-r--r-- | actionpack/CHANGELOG.md | 9 | ||||
-rw-r--r-- | actionpack/lib/action_controller/metal/cookies.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/api/with_cookies_test.rb | 21 |
3 files changed, 31 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 7d400eaa22..20321eece4 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,3 +1,12 @@ +* Adds support for including ActionController::Cookies in API controllers. + Previously, including the module would raise when trying to define + a `cookies` helper method. Skip calling #helper_method if it is not + defined -- if we don't have helpers, we needn't define one. + + Fixes #24304 + + *Ryan T. Hosford* + * ETags: Introduce `Response#strong_etag=` and `#weak_etag=` and analogous options for `fresh_when` and `stale?`. `Response#etag=` sets a weak ETag. diff --git a/actionpack/lib/action_controller/metal/cookies.rb b/actionpack/lib/action_controller/metal/cookies.rb index f8efb2b076..44925641a1 100644 --- a/actionpack/lib/action_controller/metal/cookies.rb +++ b/actionpack/lib/action_controller/metal/cookies.rb @@ -3,7 +3,7 @@ module ActionController #:nodoc: extend ActiveSupport::Concern included do - helper_method :cookies + helper_method :cookies if defined?(helper_method) end private diff --git a/actionpack/test/controller/api/with_cookies_test.rb b/actionpack/test/controller/api/with_cookies_test.rb new file mode 100644 index 0000000000..4491dc9002 --- /dev/null +++ b/actionpack/test/controller/api/with_cookies_test.rb @@ -0,0 +1,21 @@ +require 'abstract_unit' + +class WithCookiesController < ActionController::API + include ActionController::Cookies + + def with_cookies + render plain: cookies[:foobar] + end +end + +class WithCookiesTest < ActionController::TestCase + tests WithCookiesController + + def test_with_cookies + request.cookies[:foobar] = 'bazbang' + + get :with_cookies + + assert_equal 'bazbang', response.body + end +end |