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
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. |
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
An HTTP POST request that operates through the router and uses multipart 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. |
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
An HTTP POST request that operates through the router and uses multipart 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. |
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
An HTTP PUT request that operates through the router and uses multipart 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. |
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
An HTTP PUT request that operates through the router and uses multipart 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. |
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
# 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.
Generated with the Darkfish Rdoc Generator 1.1.6.