module ActionDispatch::Integration::RequestHelpers
def delete(path, parameters = nil, headers = nil)
Performs a DELETE request with the given parameters. See get() for
def delete(path, parameters = nil, headers = nil) process :delete, path, parameters, headers end
def delete_via_redirect(path, parameters = nil, headers = nil)
Performs a DELETE request, following any subsequent redirect.
def delete_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:delete, path, parameters, headers) end
def follow_redirect!
redirect, an exception will be raised. Otherwise, the redirect is
Follow a single redirect response. If the last response was not a
def follow_redirect! raise "not a redirect! #{status} #{status_message}" unless redirect? get(response.location) status end
def get(path, parameters = nil, headers = nil)
You can also perform POST, PUT, DELETE, and HEAD requests with +post+,
response object.
object's @response instance variable will point to the same
called from an ActionDispatch::IntegrationTest object, then that
inspect the details of the response. Furthermore, if this method was
This method returns an Response object, which one can use to
automatically be upcased, with the prefix 'HTTP_' added if needed.
- +headers+: Additional HTTP headers to pass, as a Hash. The keys will
multipart/form-data).
(application/x-www-form-urlencoded or
a Hash, or a String that is appropriately encoded
be +nil+,
- +parameters+: The HTTP parameters that you want to pass. This may
request.
- +path+: The URI (as a String) on which you want to perform a GET
Performs a GET request with the given parameters.
def get(path, parameters = nil, headers = nil) process :get, path, parameters, headers end
def get_via_redirect(path, parameters = nil, headers = nil)
Performs a GET request, following any subsequent redirect.
def get_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:get, path, parameters, headers) end
def head(path, parameters = nil, headers = nil)
Performs a HEAD request with the given parameters. See get() for more
def head(path, parameters = nil, headers = nil) process :head, path, parameters, headers end
def post(path, parameters = nil, headers = nil)
Performs a POST request with the given parameters. See get() for more
def post(path, parameters = nil, headers = nil) process :post, path, parameters, headers end
def post_via_redirect(path, parameters = nil, headers = nil)
Performs a POST request, following any subsequent redirect.
def post_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:post, path, parameters, headers) end
def put(path, parameters = nil, headers = nil)
Performs a PUT request with the given parameters. See get() for more
def put(path, parameters = nil, headers = nil) process :put, path, parameters, headers end
def put_via_redirect(path, parameters = nil, headers = nil)
Performs a PUT request, following any subsequent redirect.
def put_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:put, path, parameters, headers) end
def request_via_redirect(http_method, path, parameters = nil, headers = nil)
not a redirect--this means you may run into an infinite loop if your
redirect. Note that the redirects are followed until the response is
Performs a request using the specified method, following any subsequent
def request_via_redirect(http_method, path, parameters = nil, headers = nil) process(http_method, path, parameters, headers) follow_redirect! while redirect? status end
def xml_http_request(request_method, path, parameters = nil, headers = nil)
the headers are a hash. Keys are automatically upcased and prefixed
parameters are +nil+, a hash, or a url-encoded or multipart string;
The request_method is :get, :post, :put, :delete or :head; the
a request from the Prototype library.
Performs an XMLHttpRequest request with the given parameters, mirroring
def xml_http_request(request_method, path, parameters = nil, headers = nil) headers ||= {} headers['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest' headers['HTTP_ACCEPT'] ||= [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ') process(request_method, path, parameters, headers) end