Skip to content

Commit

Permalink
HTTP::Headers#key? correctly converts
Browse files Browse the repository at this point in the history
Previously if you were looking for a given key, the header may incorrectly tell you that it did not exist even though it would return a valid value:

```ruby
env     = { "CONTENT_TYPE" => "text/plain" }
headers = ActionDispatch::Http::Headers.new(env)
headers["Content-Type"] 
# => "text/plain"

headers.key?("Content-Type")
# => false
```

This PR fixes that behavior by converting the key before checking for presence
  • Loading branch information
schneems committed May 7, 2014
1 parent 98baa82 commit ca97ec5
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
4 changes: 3 additions & 1 deletion actionpack/lib/action_dispatch/http/headers.rb
Expand Up @@ -26,7 +26,9 @@ def []=(key, value)
@env[env_name(key)] = value
end

def key?(key); @env.key? key; end
def key?(key)
@env.key? env_name(key)
end
alias :include? :key?

def fetch(key, *args, &block)
Expand Down
2 changes: 2 additions & 0 deletions actionpack/test/dispatch/header_test.rb
Expand Up @@ -55,6 +55,8 @@ class HeaderTest < ActiveSupport::TestCase
test "key?" do
assert @headers.key?("CONTENT_TYPE")
assert @headers.include?("CONTENT_TYPE")
assert @headers.key?("Content-Type")
assert @headers.include?("Content-Type")
end

test "fetch with block" do
Expand Down

0 comments on commit ca97ec5

Please sign in to comment.