aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/test_case.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_controller/test_case.rb')
-rw-r--r--actionpack/lib/action_controller/test_case.rb24
1 files changed, 13 insertions, 11 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb
index 49a6d1c145..c63dde4ff6 100644
--- a/actionpack/lib/action_controller/test_case.rb
+++ b/actionpack/lib/action_controller/test_case.rb
@@ -14,6 +14,18 @@ module ActionController
TestSession.new
end
+ # Create a new test request with default `env` values
+ def self.create
+ env = {}
+ env = Rails.application.env_config.merge(env) if defined?(Rails.application) && Rails.application
+ new(default_env.merge(env), new_session)
+ end
+
+ def self.default_env
+ DEFAULT_ENV
+ end
+ private_class_method :default_env
+
def initialize(env, session)
super(env)
@@ -70,12 +82,6 @@ module ActionController
@fullpath = @ip = @remote_ip = @protocol = nil
@env['action_dispatch.request.query_parameters'] = {}
end
-
- private
-
- def default_env
- DEFAULT_ENV
- end
end
class TestResponse < ActionDispatch::TestResponse
@@ -516,7 +522,7 @@ module ActionController
end
end
- @request = build_request({}, TestRequest.new_session)
+ @request = TestRequest.create
@request.env["rack.request.cookie_hash"] = {}.with_indifferent_access
@response = build_response @response_klass
@response.request = @request
@@ -527,10 +533,6 @@ module ActionController
end
end
- def build_request(env, session)
- TestRequest.new(env, session)
- end
-
def build_response(klass)
klass.new
end