Method: ActionController::TestProcess#process

Defined in:
lib/action_controller/test_process.rb

#process(action, parameters = nil, session = nil, flash = nil) ⇒ Object

execute the request and set/volley the response



373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/action_controller/test_process.rb', line 373

def process(action, parameters = nil, session = nil, flash = nil)
  # Sanity check for required instance variables so we can give an
  # understandable error message.
  %w(@controller @request @response).each do |iv_name|
    if !(instance_variable_names.include?(iv_name) || instance_variable_names.include?(iv_name.to_sym)) || instance_variable_get(iv_name).nil?
      raise "#{iv_name} is nil: make sure you set it in your test's setup method."
    end
  end

  @request.recycle!

  @html_document = nil
  @request.env['REQUEST_METHOD'] ||= "GET"
  @request.action = action.to_s

  parameters ||= {}
  @request.assign_parameters(@controller.class.controller_path, action.to_s, parameters)

  @request.session = ActionController::TestSession.new(session) unless session.nil?
  @request.session["flash"] = ActionController::Flash::FlashHash.new.update(flash) if flash
  build_request_uri(action, parameters)
  @controller.process(@request, @response)
end