module ActionController::TestCase::Behavior

Attributes

request[R]
response[R]

Public Instance Methods

delete(action, parameters = nil, session = nil, flash = nil) click to toggle source

Executes a request simulating DELETE HTTP method and set/volley the response

# File lib/action_controller/test_case.rb, line 366
def delete(action, parameters = nil, session = nil, flash = nil)
  process(action, parameters, session, flash, "DELETE")
end
get(action, parameters = nil, session = nil, flash = nil) click to toggle source

Executes a request simulating GET HTTP method and set/volley the response

# File lib/action_controller/test_case.rb, line 351
def get(action, parameters = nil, session = nil, flash = nil)
  process(action, parameters, session, flash, "GET")
end
head(action, parameters = nil, session = nil, flash = nil) click to toggle source

Executes a request simulating HEAD HTTP method and set/volley the response

# File lib/action_controller/test_case.rb, line 371
def head(action, parameters = nil, session = nil, flash = nil)
  process(action, parameters, session, flash, "HEAD")
end
post(action, parameters = nil, session = nil, flash = nil) click to toggle source

Executes a request simulating POST HTTP method and set/volley the response

# File lib/action_controller/test_case.rb, line 356
def post(action, parameters = nil, session = nil, flash = nil)
  process(action, parameters, session, flash, "POST")
end
process(action, parameters = nil, session = nil, flash = nil, http_method = 'GET') click to toggle source
# File lib/action_controller/test_case.rb, line 385
def process(action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
  # Sanity check for required instance variables so we can give an
  # understandable error message.
  %w(@routes @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!
  @response.recycle!
  @controller.response_body = nil
  @controller.formats = nil
  @controller.params = nil

  @html_document = nil
  @request.env['REQUEST_METHOD'] = http_method

  parameters ||= {}
  @request.assign_parameters(@routes, @controller.class.name.underscore.sub(%r_controller$/, ''), action.to_s, parameters)

  @request.session = ActionController::TestSession.new(session) unless session.nil?
  @request.session["flash"] = @request.flash.update(flash || {})
  @request.session["flash"].sweep

  @controller.request = @request
  @controller.params.merge!(parameters)
  build_request_uri(action, parameters)
  Base.class_eval { include Testing }
  @controller.process_with_new_base_test(@request, @response)
  @request.session.delete('flash') if @request.session['flash'].blank?
  @response
end
put(action, parameters = nil, session = nil, flash = nil) click to toggle source

Executes a request simulating PUT HTTP method and set/volley the response

# File lib/action_controller/test_case.rb, line 361
def put(action, parameters = nil, session = nil, flash = nil)
  process(action, parameters, session, flash, "PUT")
end
rescue_action_in_public!() click to toggle source

Cause the action to be rescued according to the regular rules for rescue_action when the visitor is not local

# File lib/action_controller/test_case.rb, line 436
def rescue_action_in_public!
  @request.remote_addr = '208.77.188.166' # example.com
end
setup_controller_request_and_response() click to toggle source
# File lib/action_controller/test_case.rb, line 419
def setup_controller_request_and_response
  @request = TestRequest.new
  @response = TestResponse.new

  if klass = self.class.controller_class
    @controller ||= klass.new rescue nil
  end

  @request.env.delete('PATH_INFO')

  if @controller
    @controller.request = @request
    @controller.params = {}
  end
end
xhr(request_method, action, parameters = nil, session = nil, flash = nil) click to toggle source
Alias for: xml_http_request
xml_http_request(request_method, action, parameters = nil, session = nil, flash = nil) click to toggle source
# File lib/action_controller/test_case.rb, line 375
def xml_http_request(request_method, action, parameters = nil, session = nil, flash = nil)
  @request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
  @request.env['HTTP_ACCEPT'] ||=  [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
  __send__(request_method, action, parameters, session, flash).tap do
    @request.env.delete 'HTTP_X_REQUESTED_WITH'
    @request.env.delete 'HTTP_ACCEPT'
  end
end
Also aliased as: xhr