instance method
build_request_uri
Ruby on Rails 4.2.9
Since v3.0.20 Last seen in v4.2.9 PrivateSignature
build_request_uri(action, parameters)
No documentation comment.
Parameters
-
actionreq -
parametersreq
Source
# File actionpack/lib/action_controller/test_case.rb, line 716
def build_request_uri(action, parameters)
unless @request.env["PATH_INFO"]
options = @controller.respond_to?(:url_options) ? @controller.__send__(:url_options).merge(parameters) : parameters
options.update(
:action => action,
:relative_url_root => nil,
:_recall => @request.path_parameters)
if route_name = options.delete(:use_route)
ActiveSupport::Deprecation.warn <<-MSG.squish
Passing the `use_route` option in functional tests are deprecated.
Support for this option in the `process` method (and the related
`get`, `head`, `post`, `patch`, `put` and `delete` helpers) will
be removed in the next version without replacement.
Functional tests are essentially unit tests for controllers and
they should not require knowledge to how the application's routes
are configured. Instead, you should explicitly pass the appropiate
params to the `process` method.
Previously the engines guide also contained an incorrect example
that recommended using this option to test an engine's controllers
within the dummy application. That recommendation was incorrect
and has since been corrected. Instead, you should override the
`@routes` variable in the test case with `Foo::Engine.routes`. See
the updated engines guide for details.
MSG
end
url, query_string = @routes.path_for(options, route_name).split("?", 2)
@request.env["SCRIPT_NAME"] = @controller.config.relative_url_root
@request.env["PATH_INFO"] = url
@request.env["QUERY_STRING"] = query_string || ""
end
end
Defined in actionpack/lib/action_controller/test_case.rb line 716
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionController::TestCase::Behavior