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

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

Parameters

env

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

params

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
165:   def multipart_fake_request(env = {}, params = {})
166:     if params.empty?
167:       fake_request(env)
168:     else
169:       m = Post.new(params)
170:       body, head = m.to_multipart
171:       fake_request(env.merge( :content_type => head, 
172:                               :content_length => body.length), :post_body => body)
173:     end
174:   end
multipart_post(path, params = {}, env = {}) click to toggle source

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

Parameters

path

The path that should go to the router as the request uri.

params

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

env

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

block

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/two-oh.rb, line 26
26:   def multipart_post(path, params = {}, env = {})
27:     env[:method] = "POST"
28:     multipart_request(path, params, env)
29:   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

The path that should go to the router as the request uri.

params

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

env

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

block

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
129:   def multipart_post(path, params = {}, env = {}, &block)
130:     env[:request_method] = "POST"
131:     env[:test_with_multipart] = true
132:     mock_request(path, params, env, &block)
133:   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

The path that should go to the router as the request uri.

params

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

env

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

block

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
149:   def multipart_put(path, params = {}, env = {}, &block)
150:     env[:request_method] = "PUT"
151:     env[:test_with_multipart] = true
152:     mock_request(path, params, env, &block)
153:   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

The path that should go to the router as the request uri.

params

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

env

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

block

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/two-oh.rb, line 45
45:   def multipart_put(path, params = {}, env = {}, &block)
46:     env[:method] = "PUT"
47:     multipart_request(path, params, env)
48:   end
multipart_request(path, params = {}, env = {}) click to toggle source
    # File lib/merb-core/two-oh.rb, line 3
 3:   def multipart_request(path, params = {}, env = {})
 4:     multipart = Merb::Test::MultipartRequestHelper::Post.new(params)
 5:     body, head = multipart.to_multipart
 6:     env["CONTENT_TYPE"] = head
 7:     env["CONTENT_LENGTH"] = body.size
 8:     env[:input] = StringIO.new(body)
 9:     request(path, env)
10:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.