Module Merb::Test::RequestHelper
In: lib/merb-core/test/helpers/request_helper.rb

Methods

Classes and Modules

Class Merb::Test::RequestHelper::FakeRequest

Public Instance methods

Checks to see that a request is routable.

Parameters

request<Merb::Test::FakeRequest, Merb::Request>:The request object to inspect.

Raises

Merb::ControllerExceptions::BadRequest:No matching route was found.

Returns

Hash:The parameters built based on the matching route.

An HTTP DELETE request that operates through the router

Parameters

path<String>:The path that should go to the router as the request uri.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request).
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

The workhorse for the dispatch*to helpers.

Parameters

request<Merb::Test::FakeRequest, Merb::Request>:A request object that has been setup for testing.
controller_klass<Merb::Controller>:The class object off the controller to dispatch the action to.
action<Symbol>:The action to dispatch the request to.
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

Returns

An instance of controller_klass based on the parameters.

Notes

Does not use routes.

Dispatches an action to the given class. This bypasses the router and is suitable for unit testing of controllers.

Parameters

controller_klass<Controller>:The controller class object that the action should be dispatched to.
action<Symbol>:The action name, as a symbol.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request), including :req or :post_body for setting the request body itself.
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

Example

  dispatch_to(MyController, :create, :name => 'Homer' ) do
    self.stub!(:current_user).and_return(@user)
  end

Notes

Does not use routes.

Dispatches an action to the given class and using HTTP Basic Authentication This bypasses the router and is suitable for unit testing of controllers.

Parameters

controller_klass<Controller>:The controller class object that the action should be dispatched to.
action<Symbol>:The action name, as a symbol.
username<String>:The username.
password<String>:The password.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request), including :req or :post_body for setting the request body itself.
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

Example

  dispatch_with_basic_authentication_to(MyController, :create, 'Fred', 'secret', :name => 'Homer' ) do
    self.stub!(:current_user).and_return(@user)
  end

Notes

Does not use routes.

Parameters

env<Hash>:A hash of environment keys to be merged into the default list.
opt<Hash>:A hash of options (see below).

Options (opt)

:post_body<String>:The post body for the request.
:req<String>:The request string. This will only be used if :post_body is left out.

Returns

FakeRequest:A Request object that is built based on the parameters.

Notes

If you pass a post body, the content-type will be set to URL-encoded.

An HTTP GET request that operates through the router.

Parameters

path<String>:The path that should go to the router as the request uri.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request).
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

An HTTP POST request that operates through the router.

Parameters

path<String>:The path that should go to the router as the request uri.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request).
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

An HTTP PUT request that operates through the router.

Parameters

path<String>:The path that should go to the router as the request uri.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request).
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

A generic request that checks the router for the controller and action. This request goes through the Merb::Router and finishes at the controller.

Parameters

path<String>:The path that should go to the router as the request uri.
params<Hash>:An optional hash that will end up as params in the controller instance.
env<Hash>:An optional hash that is passed to the fake request. Any request options should go here (see fake_request).
&blk:The controller is yielded to the block provided for actions prior to the action being dispatched.

Example

  request(path, { :name => 'Homer' }, { :request_method => "PUT" }) do
    self.stub!(:current_user).and_return(@user)
  end

Notes

Uses Routes.

[Validate]