diff options
author | Jeremy Friesen <jeremy.n.friesen@gmail.com> | 2015-08-26 09:08:18 -0400 |
---|---|---|
committer | Jeremy Friesen <jeremy.n.friesen@gmail.com> | 2015-08-26 09:08:18 -0400 |
commit | 0258ef33a5b89a25ddc5b091ba03142578a6777b (patch) | |
tree | ef1840d54f34e4cc537e3711e56b69ccfbf1f5ae /actionpack/lib/action_controller | |
parent | 479217ca34e3eb1f86fa8e8358bdde9de16effaf (diff) | |
download | rails-0258ef33a5b89a25ddc5b091ba03142578a6777b.tar.gz rails-0258ef33a5b89a25ddc5b091ba03142578a6777b.tar.bz2 rails-0258ef33a5b89a25ddc5b091ba03142578a6777b.zip |
Updating TestSession to access with indifference
The following Rails code failed (with a `KeyError` exception) under
test:
```ruby
class ApplicationController < ActionController::Base
def user_strategy
# At this point:
# ```ruby
# session == {
# "user_strategy"=>"email",
# "user_identifying_value"=>"hello@world.com"
# }
# ```
if session.key?(:user_strategy)
session.fetch(:user_strategy)
end
end
end
```
When I checked the session's keys (`session.keys`), I got an array of
strings. If I accessed `session[:user_strategy]` I got the expected
`'email'` value. However if I used `session.fetch(:user_strategy)` I
got a `KeyError` exception.
This appears to be a Rails 4.2.4 regression (as the code works under
Rails 4.2.3).
Closes #21383
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index 103986e44a..39cbc0cd70 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -174,8 +174,8 @@ module ActionController clear end - def fetch(*args, &block) - @data.fetch(*args, &block) + def fetch(key, *args, &block) + @data.fetch(key.to_s, *args, &block) end private |