module ActionController::TestCase::Behavior

def setup_request(controller_class_name, action, parameters, session, flash, xhr)

def setup_request(controller_class_name, action, parameters, session, flash, xhr)
  generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action))
  generated_path = generated_path(generated_extras)
  query_string_keys = query_parameter_names(generated_extras)
  @request.assign_parameters(@routes, controller_class_name, action, parameters, generated_path, query_string_keys)
  @request.session.update(session) if session
  @request.flash.update(flash || {})
  if xhr
    @request.set_header "HTTP_X_REQUESTED_WITH", "XMLHttpRequest"
    @request.fetch_header("HTTP_ACCEPT") do |k|
      @request.set_header k, [Mime[:js], Mime[:html], Mime[:xml], "text/xml", "*/*"].join(", ")
    end
  end
  @request.fetch_header("SCRIPT_NAME") do |k|
    @request.set_header k, @controller.config.relative_url_root
  end
end