Module: Merb::Test::Rspec::ControllerMatchers
- Defined in:
- lib/merb-core/test/matchers/controller_matchers.rb
Defined Under Namespace
Classes: BeMissing, BeRedirect, BeSuccess, Provide, RedirectTo
Instance Method Summary collapse
-
#be_missing ⇒ Object
(also: #be_client_error)
Passes if the request that generated the target was missing, or the target is a client-side error (400 level) response code.
-
#provide(expected) ⇒ Object
Passes if the controller actually provides the target format.
-
#redirect ⇒ Object
(also: #be_redirection)
Passes if the target was redirected, or the target is a redirection (300 level) response code.
-
#redirect_to(expected) ⇒ Object
(also: #be_redirection_to)
Passes if the target was redirected to the expected location.
-
#respond_successfully ⇒ Object
(also: #be_successful)
Passes if the request that generated the target was successful, or the target is a success (200 level) response code.
Instance Method Details
#be_missing ⇒ Object Also known as: be_client_error
Passes if the request that generated the target was missing, or the target is a client-side error (400 level) response code.
Examples
Passes if the controller call was unknown or not understood
controller.should be_missing
# Also passes if the target is a response code
controller.status.should be_missing
Notes
valid HTTP Client Error codes:
- 400: Bad Request
- 401: Unauthorized
- 402: Payment Required
- 403: Forbidden
- 404: Not Found
- 405: Method Not Allowed
- 406: Not Acceptable
- 407: Proxy Authentication Required
- 408: Request Timeout
- 409: Conflict
- 410: Gone
- 411: Length Required
- 412: Precondition Failed
- 413: Request Entity Too Large
- 414: Request-URI Too Long
- 415: Unsupported Media Type
- 416: Requested Range Not Satisfiable
- 417: Expectation Failed
- 422: Unprocessable Entity
-- status codes based on: http://cheat.errtheblog.com/s/http_status_codes/
302 303 304 |
# File 'lib/merb-core/test/matchers/controller_matchers.rb', line 302 def be_missing BeMissing.new end |
#provide(expected) ⇒ Object
Passes if the controller actually provides the target format
Parameters
- expected
A format to check
Examples
ControllerClass.should provide( :html ) controller_instance.should provide( :xml )
316 317 318 |
# File 'lib/merb-core/test/matchers/controller_matchers.rb', line 316 def provide( expected ) Provide.new( expected ) end |
#redirect ⇒ Object Also known as: be_redirection
Passes if the target was redirected, or the target is a redirection (300 level) response code.
Examples
Passes if the controller was redirected
controller.should redirect
# Also works if the target is the response code
controller.status.should redirect
Notes
valid HTTP Redirection codes:
- 300: Multiple Choices
- 301: Moved Permanently
- 302: Moved Temporarily (HTTP/1.0)
- 302: Found (HTTP/1.1)
- 303: See Other (HTTP/1.1)
- 304: Not Modified
- 305: Use Proxy
- 307: Temporary Redirect
-- status codes based on: http://cheat.errtheblog.com/s/http_status_codes/
221 222 223 |
# File 'lib/merb-core/test/matchers/controller_matchers.rb', line 221 def redirect BeRedirect.new end |
#redirect_to(expected) ⇒ Object Also known as: be_redirection_to
Passes if the target was redirected to the expected location.
Paramters
- expected
A relative or absolute url.
Examples
Passes if the controller was redirected to http://example.com/
controller.should redirect_to('http://example.com/')
235 236 237 |
# File 'lib/merb-core/test/matchers/controller_matchers.rb', line 235 def redirect_to(expected) RedirectTo.new(expected) end |
#respond_successfully ⇒ Object Also known as: be_successful
Passes if the request that generated the target was successful, or the target is a success (200 level) response code.
Examples
Passes if the controller call was successful
controller.should respond_successfully
# Also works if the target is the response code
controller.status.should respond_successfully
Notes
valid HTTP Success codes:
- 200: OK
- 201: Created
- 202: Accepted
- 203: Non-Authoritative Information
- 204: No Content
- 205: Reset Content
- 206: Partial Content
- 207: Multi-Status
-- status codes based on: http://cheat.errtheblog.com/s/http_status_codes/
263 264 265 |
# File 'lib/merb-core/test/matchers/controller_matchers.rb', line 263 def respond_successfully BeSuccess.new end |