aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-03-13 18:05:01 +0100
committerYves Senn <yves.senn@gmail.com>2013-03-15 10:13:49 +0100
commit41a14dcd1045f61278237f34f065b87212689376 (patch)
tree0f7aafb34684d6ebf78e30b74f310a57b5a6fec1 /actionpack/lib/action_dispatch
parentc1003d99b00b3afb5417b6853a3e2ba92638cbe8 (diff)
downloadrails-41a14dcd1045f61278237f34f065b87212689376.tar.gz
rails-41a14dcd1045f61278237f34f065b87212689376.tar.bz2
rails-41a14dcd1045f61278237f34f065b87212689376.zip
`Http::Headers` directly modifies the passed environment.
The env hash passed to `Http::Headers#new` must be in env format. Also be aware that the passed hash is modified directly. docs and test-cases for setting headers/env in functional tests. Follow up to #9700.
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r--actionpack/lib/action_dispatch/http/headers.rb3
-rw-r--r--actionpack/lib/action_dispatch/testing/integration.rb5
2 files changed, 4 insertions, 4 deletions
diff --git a/actionpack/lib/action_dispatch/http/headers.rb b/actionpack/lib/action_dispatch/http/headers.rb
index 1574518a16..2666cd4b0a 100644
--- a/actionpack/lib/action_dispatch/http/headers.rb
+++ b/actionpack/lib/action_dispatch/http/headers.rb
@@ -15,8 +15,7 @@ module ActionDispatch
attr_reader :env
def initialize(env = {})
- @env = {}
- merge!(env)
+ @env = env
end
def [](key)
diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb
index ae1b0b5dea..56c31255f3 100644
--- a/actionpack/lib/action_dispatch/testing/integration.rb
+++ b/actionpack/lib/action_dispatch/testing/integration.rb
@@ -269,7 +269,6 @@ module ActionDispatch
# Performs the actual request.
def process(method, path, parameters = nil, headers_or_env = nil)
- rack_env = Http::Headers.new(headers_or_env || {}).env
if path =~ %r{://}
location = URI.parse(path)
https! URI::HTTPS === location if location.scheme
@@ -300,10 +299,12 @@ module ActionDispatch
"CONTENT_TYPE" => "application/x-www-form-urlencoded",
"HTTP_ACCEPT" => accept
}
+ # this modifies the passed env directly
+ Http::Headers.new(env).merge!(headers_or_env || {})
session = Rack::Test::Session.new(_mock_session)
- env.merge!(rack_env)
+ env.merge!(env)
# NOTE: rack-test v0.5 doesn't build a default uri correctly
# Make sure requested path is always a full uri