Class/Module Index [+]

Quicksearch

Merb::Test::MultipartRequestHelper

Public Instance Methods

dispatch_multipart_to(controller_klass, action, params = {}, env = {}, &blk) click to toggle source

Similar to dispatch_to but allows for sending files inside params.

Paramters

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).

&blk

The block is executed in the context of the controller.

Example

dispatch_multipart_to(MyController, :create, :my_file => @a_file ) do |controller|
  controller.stub!(:current_user).and_return(@user)
end

Notes

Set your option to contain a file object to simulate file uploads.

Does not use routes.

# File lib/merb-core/test/helpers/multipart_request_helper.rb, line 110
def dispatch_multipart_to(controller_klass, action, params = {}, env = {}, &blk)
  request = multipart_fake_request(env, params)
  dispatch_request(request, controller_klass, action, &blk)
end
multipart_fake_request(env = {}, params = {}) click to toggle source

Parameters

env<Hash>

An optional hash that is passed to the fake request. Any request options should go here (see fake_request).

params<Hash>

An optional hash that will end up as params in the controller instance.

Returns

FakeRequest

A multipart Request object that is built based on the parameters.

# File lib/merb-core/test/helpers/multipart_request_helper.rb, line 165
def multipart_fake_request(env = {}, params = {})
  if params.empty?
    fake_request(env)
  else
    m = Post.new(params)
    body, head = m.to_multipart
    fake_request(env.merge( :content_type => head, 
                            :content_length => body.length), :post_body => body)
  end
end
multipart_post(path, params = {}, env = {}, &block) click to toggle source

An HTTP POST request that operates through the router and uses multipart parameters.

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).

block<Proc>

The block is executed in the context of the controller.

Notes

To include an uploaded file, put a file object as a value in params.

# File lib/merb-core/test/helpers/multipart_request_helper.rb, line 129
def multipart_post(path, params = {}, env = {}, &block)
  env[:request_method] = "POST"
  env[:test_with_multipart] = true
  mock_request(path, params, env, &block)
end
multipart_put(path, params = {}, env = {}, &block) click to toggle source

An HTTP PUT request that operates through the router and uses multipart parameters.

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).

block<Proc>

The block is executed in the context of the controller.

Notes

To include an uplaoded file, put a file object as a value in params.

# File lib/merb-core/test/helpers/multipart_request_helper.rb, line 149
def multipart_put(path, params = {}, env = {}, &block)
  env[:request_method] = "PUT"
  env[:test_with_multipart] = true
  mock_request(path, params, env, &block)
end
multipart_request(path, params = {}, env = {}) click to toggle source
# File lib/merb-core/two-oh.rb, line 3
def multipart_request(path, params = {}, env = {})
  multipart = Merb::Test::MultipartRequestHelper::Post.new(params)
  body, head = multipart.to_multipart
  env["CONTENT_TYPE"] = head
  env["CONTENT_LENGTH"] = body.size
  env[:input] = StringIO.new(body)
  request(path, env)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.