Similar to dispatch_to but allows for sending files inside params.
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. |
dispatch_multipart_to(MyController, :create, :my_file => @a_file ) do |controller| controller.stub!(:current_user).and_return(@user) end
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
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. |
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
An HTTP POST request that operates through the router and uses multipart 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. |
To include an uploaded file, put a file object as a value in params.
# File lib/merb-core/two-oh.rb, line 26 def multipart_post(path, params = {}, env = {}) env[:method] = "POST" multipart_request(path, params, env) end
An HTTP PUT request that operates through the router and uses multipart 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. |
To include an uplaoded file, put a file object as a value in params.
# File lib/merb-core/two-oh.rb, line 45 def multipart_put(path, params = {}, env = {}, &block) env[:method] = "PUT" multipart_request(path, params, env) end
# 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
Generated with the Darkfish Rdoc Generator 2.