aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http/headers.rb
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-03-13 12:25:32 +0100
committerYves Senn <yves.senn@gmail.com>2013-03-13 16:41:00 +0100
commit9af59b2468e4ad6c3c2ca89f90968fdcaa417aba (patch)
tree5102f6c010fd469fda0f7ed3161c6f4b6155c113 /actionpack/lib/action_dispatch/http/headers.rb
parente2a5de2bb200773943e605cdddb9b18bbfa77e13 (diff)
downloadrails-9af59b2468e4ad6c3c2ca89f90968fdcaa417aba.tar.gz
rails-9af59b2468e4ad6c3c2ca89f90968fdcaa417aba.tar.bz2
rails-9af59b2468e4ad6c3c2ca89f90968fdcaa417aba.zip
allow headers and env to be passed in `IntegrationTest`.
Closes #6513.
Diffstat (limited to 'actionpack/lib/action_dispatch/http/headers.rb')
-rw-r--r--actionpack/lib/action_dispatch/http/headers.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/http/headers.rb b/actionpack/lib/action_dispatch/http/headers.rb
index ecf050a869..3f3f71b280 100644
--- a/actionpack/lib/action_dispatch/http/headers.rb
+++ b/actionpack/lib/action_dispatch/http/headers.rb
@@ -12,9 +12,11 @@ module ActionDispatch
HEADER_REGEXP = /\A[A-Za-z-]+\z/
include Enumerable
+ attr_reader :env
def initialize(env = {})
- @env = env
+ @env = {}
+ merge!(env)
end
def [](key)
@@ -36,6 +38,18 @@ module ActionDispatch
@env.each(&block)
end
+ def merge(headers_or_env)
+ headers = Http::Headers.new(env.dup)
+ headers.merge!(headers_or_env)
+ headers
+ end
+
+ def merge!(headers_or_env)
+ headers_or_env.each do |key, value|
+ self[env_name(key)] = value
+ end
+ end
+
private
def env_name(key)
if key =~ HEADER_REGEXP