From 78a5124bf09d0cd285d4d1a6242bd67badb2f621 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 8 Jul 2015 16:09:49 -0700 Subject: add a new constructor for allocating test requests --- actionpack/lib/action_controller/test_case.rb | 24 ++++++++++++---------- .../action_dispatch/testing/assertions/routing.rb | 2 +- .../lib/action_dispatch/testing/test_request.rb | 16 +++++++-------- 3 files changed, 22 insertions(+), 20 deletions(-) (limited to 'actionpack/lib') 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 diff --git a/actionpack/lib/action_dispatch/testing/assertions/routing.rb b/actionpack/lib/action_dispatch/testing/assertions/routing.rb index 48765fe83c..543c7b78a1 100644 --- a/actionpack/lib/action_dispatch/testing/assertions/routing.rb +++ b/actionpack/lib/action_dispatch/testing/assertions/routing.rb @@ -183,7 +183,7 @@ module ActionDispatch end # Assume given controller - request = build_request({}, ActionController::TestRequest.new_session) + request = ActionController::TestRequest.create if path =~ %r{://} fail_on(URI::InvalidURIError, msg) do diff --git a/actionpack/lib/action_dispatch/testing/test_request.rb b/actionpack/lib/action_dispatch/testing/test_request.rb index 0d712f0592..b9d11cb530 100644 --- a/actionpack/lib/action_dispatch/testing/test_request.rb +++ b/actionpack/lib/action_dispatch/testing/test_request.rb @@ -10,11 +10,17 @@ module ActionDispatch "rack.request.cookie_hash" => {}.with_indifferent_access ) - def initialize(env) + # 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 - super(default_env.merge(env)) + new(default_env.merge(env)) end + def self.default_env + DEFAULT_ENV + end + private_class_method :default_env + def request_method=(method) @env['REQUEST_METHOD'] = method.to_s.upcase end @@ -59,11 +65,5 @@ module ActionDispatch @env.delete('action_dispatch.request.accepts') @env['HTTP_ACCEPT'] = Array(mime_types).collect(&:to_s).join(",") end - - private - - def default_env - DEFAULT_ENV - end end end -- cgit v1.2.3