diff options
author | Yves Senn <yves.senn@gmail.com> | 2013-03-13 18:05:01 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2013-03-15 10:13:49 +0100 |
commit | 41a14dcd1045f61278237f34f065b87212689376 (patch) | |
tree | 0f7aafb34684d6ebf78e30b74f310a57b5a6fec1 /actionpack/lib/action_dispatch/testing | |
parent | c1003d99b00b3afb5417b6853a3e2ba92638cbe8 (diff) | |
download | rails-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/testing')
-rw-r--r-- | actionpack/lib/action_dispatch/testing/integration.rb | 5 |
1 files changed, 3 insertions, 2 deletions
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 |