Module: ActionDispatch::Integration::RequestHelpers
- Included in:
- Session
- Defined in:
- lib/action_dispatch/testing/integration.rb
Instance Method Summary collapse
-
#delete(path, parameters = nil, headers = nil) ⇒ Object
Performs a DELETE request with the given parameters.
-
#delete_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a DELETE request, following any subsequent redirect.
-
#follow_redirect! ⇒ Object
Follow a single redirect response.
-
#get(path, parameters = nil, headers = nil) ⇒ Object
Performs a GET request with the given parameters.
-
#get_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a GET request, following any subsequent redirect.
-
#head(path, parameters = nil, headers = nil) ⇒ Object
Performs a HEAD request with the given parameters.
-
#post(path, parameters = nil, headers = nil) ⇒ Object
Performs a POST request with the given parameters.
-
#post_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a POST request, following any subsequent redirect.
-
#put(path, parameters = nil, headers = nil) ⇒ Object
Performs a PUT request with the given parameters.
-
#put_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a PUT request, following any subsequent redirect.
-
#request_via_redirect(http_method, path, parameters = nil, headers = nil) ⇒ Object
Performs a request using the specified method, following any subsequent redirect.
-
#xml_http_request(request_method, path, parameters = nil, headers = nil) ⇒ Object
(also: #xhr)
Performs an XMLHttpRequest request with the given parameters, mirroring a request from the Prototype library.
Instance Method Details
#delete(path, parameters = nil, headers = nil) ⇒ Object
Performs a DELETE request with the given parameters. See #get
for more details.
50 51 52 |
# File 'lib/action_dispatch/testing/integration.rb', line 50 def delete(path, parameters = nil, headers = nil) process :delete, path, parameters, headers end |
#delete_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a DELETE request, following any subsequent redirect. See request_via_redirect
for more information.
113 114 115 |
# File 'lib/action_dispatch/testing/integration.rb', line 113 def delete_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:delete, path, parameters, headers) end |
#follow_redirect! ⇒ Object
Follow a single redirect response. If the last response was not a redirect, an exception will be raised. Otherwise, the redirect is performed on the location header.
77 78 79 80 81 |
# File 'lib/action_dispatch/testing/integration.rb', line 77 def follow_redirect! raise "not a redirect! #{status} #{}" unless redirect? get(response.location) status end |
#get(path, parameters = nil, headers = nil) ⇒ Object
Performs a GET request with the given parameters.
-
path
: The URI (as a String) on which you want to perform a GET request. -
parameters
: The HTTP parameters that you want to pass. This may benil
, a Hash, or a String that is appropriately encoded (application/x-www-form-urlencoded
ormultipart/form-data
). -
headers
: Additional headers to pass, as a Hash. The headers will be merged into the Rack env hash.
This method returns an Response object, which one can use to inspect the details of the response. Furthermore, if this method was called from an ActionDispatch::IntegrationTest object, then that object’s @response
instance variable will point to the same response object.
You can also perform POST, PUT, DELETE, and HEAD requests with #post
, #put
, #delete
, and #head
.
32 33 34 |
# File 'lib/action_dispatch/testing/integration.rb', line 32 def get(path, parameters = nil, headers = nil) process :get, path, parameters, headers end |
#get_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a GET request, following any subsequent redirect. See request_via_redirect
for more information.
95 96 97 |
# File 'lib/action_dispatch/testing/integration.rb', line 95 def get_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:get, path, parameters, headers) end |
#head(path, parameters = nil, headers = nil) ⇒ Object
Performs a HEAD request with the given parameters. See #get
for more details.
56 57 58 |
# File 'lib/action_dispatch/testing/integration.rb', line 56 def head(path, parameters = nil, headers = nil) process :head, path, parameters, headers end |
#post(path, parameters = nil, headers = nil) ⇒ Object
Performs a POST request with the given parameters. See #get
for more details.
38 39 40 |
# File 'lib/action_dispatch/testing/integration.rb', line 38 def post(path, parameters = nil, headers = nil) process :post, path, parameters, headers end |
#post_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a POST request, following any subsequent redirect. See request_via_redirect
for more information.
101 102 103 |
# File 'lib/action_dispatch/testing/integration.rb', line 101 def post_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:post, path, parameters, headers) end |
#put(path, parameters = nil, headers = nil) ⇒ Object
Performs a PUT request with the given parameters. See #get
for more details.
44 45 46 |
# File 'lib/action_dispatch/testing/integration.rb', line 44 def put(path, parameters = nil, headers = nil) process :put, path, parameters, headers end |
#put_via_redirect(path, parameters = nil, headers = nil) ⇒ Object
Performs a PUT request, following any subsequent redirect. See request_via_redirect
for more information.
107 108 109 |
# File 'lib/action_dispatch/testing/integration.rb', line 107 def put_via_redirect(path, parameters = nil, headers = nil) request_via_redirect(:put, path, parameters, headers) end |
#request_via_redirect(http_method, path, parameters = nil, headers = nil) ⇒ Object
Performs a request using the specified method, following any subsequent redirect. Note that the redirects are followed until the response is not a redirect–this means you may run into an infinite loop if your redirect loops back to itself.
87 88 89 90 91 |
# File 'lib/action_dispatch/testing/integration.rb', line 87 def request_via_redirect(http_method, path, parameters = nil, headers = nil) process(http_method, path, parameters, headers) follow_redirect! while redirect? status end |
#xml_http_request(request_method, path, parameters = nil, headers = nil) ⇒ Object Also known as: xhr
Performs an XMLHttpRequest request with the given parameters, mirroring a request from the Prototype library.
The request_method is :get
, :post
, :put
, :delete
or :head
; the parameters are nil
, a hash, or a url-encoded or multipart string; the headers are a hash.
66 67 68 69 70 71 |
# File 'lib/action_dispatch/testing/integration.rb', line 66 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 |