diff options
Diffstat (limited to 'actionpack/lib/action_controller/test_case.rb')
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index aec21eb35e..329e321888 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -34,8 +34,8 @@ module ActionController self.session_options = TestSession::DEFAULT_OPTIONS end - def query_parameters=(params) - @env["action_dispatch.request.query_parameters"] = params + def query_string=(string) + @env[Rack::QUERY_STRING] = string end def request_parameters=(params) @@ -70,8 +70,11 @@ module ActionController end if get? - self.query_parameters = non_path_parameters + if self.query_string.blank? + self.query_string = non_path_parameters.to_query + end else + @env['action_dispatch.request.query_parameters'] = {} self.request_parameters = non_path_parameters end @@ -506,6 +509,7 @@ module ActionController @request.env.delete 'HTTP_X_REQUESTED_WITH' @request.env.delete 'HTTP_ACCEPT' end + @request.query_string = '' @response end @@ -554,7 +558,7 @@ module ActionController def scrub_env!(env) env.delete_if { |k, v| k =~ /^(action_dispatch|rack)\.request/ } env.delete_if { |k, v| k =~ /^action_dispatch\.rescue/ } - env['action_dispatch.request.query_parameters'] = {} + env.delete 'action_dispatch.request.query_parameters' env end @@ -613,11 +617,10 @@ module ActionController :relative_url_root => nil, :_recall => @request.path_parameters) - url, query_string = @routes.path_for(options).split("?", 2) + url, = @routes.path_for(options).split("?", 2) @request.env["SCRIPT_NAME"] = @controller.config.relative_url_root @request.env["PATH_INFO"] = url - @request.env["QUERY_STRING"] = query_string || "" end end |