Executes a request simulating DELETE HTTP method and set/volley the response
# File lib/action_controller/test_case.rb, line 364
364: def delete(action, parameters = nil, session = nil, flash = nil)
365: process(action, parameters, session, flash, "DELETE")
366: end
Executes a request simulating GET HTTP method and set/volley the response
# File lib/action_controller/test_case.rb, line 349
349: def get(action, parameters = nil, session = nil, flash = nil)
350: process(action, parameters, session, flash, "GET")
351: end
Executes a request simulating HEAD HTTP method and set/volley the response
# File lib/action_controller/test_case.rb, line 369
369: def head(action, parameters = nil, session = nil, flash = nil)
370: process(action, parameters, session, flash, "HEAD")
371: end
Executes a request simulating POST HTTP method and set/volley the response
# File lib/action_controller/test_case.rb, line 354
354: def post(action, parameters = nil, session = nil, flash = nil)
355: process(action, parameters, session, flash, "POST")
356: end
# File lib/action_controller/test_case.rb, line 383
383: def process(action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
384: # Sanity check for required instance variables so we can give an
385: # understandable error message.
386: %(@routes @controller @request @response).each do |iv_name|
387: if !(instance_variable_names.include?(iv_name) || instance_variable_names.include?(iv_name.to_sym)) || instance_variable_get(iv_name).nil?
388: raise "#{iv_name} is nil: make sure you set it in your test's setup method."
389: end
390: end
391:
392: @request.recycle!
393: @response.recycle!
394: @controller.response_body = nil
395: @controller.formats = nil
396: @controller.params = nil
397:
398: @html_document = nil
399: @request.env['REQUEST_METHOD'] = http_method
400:
401: parameters ||= {}
402: @request.assign_parameters(@routes, @controller.class.name.underscore.sub(/_controller$/, ''), action.to_s, parameters)
403:
404: @request.session = ActionController::TestSession.new(session) unless session.nil?
405: @request.session["flash"] = @request.flash.update(flash || {})
406: @request.session["flash"].sweep
407:
408: @controller.request = @request
409: @controller.params.merge!(parameters)
410: build_request_uri(action, parameters)
411: Base.class_eval { include Testing }
412: @controller.process_with_new_base_test(@request, @response)
413: @request.session.delete('flash') if @request.session['flash'].blank?
414: @response
415: end
Executes a request simulating PUT HTTP method and set/volley the response
# File lib/action_controller/test_case.rb, line 359
359: def put(action, parameters = nil, session = nil, flash = nil)
360: process(action, parameters, session, flash, "PUT")
361: end
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 434
434: def rescue_action_in_public!
435: @request.remote_addr = '208.77.188.166' # example.com
436: end
# File lib/action_controller/test_case.rb, line 417
417: def setup_controller_request_and_response
418: @request = TestRequest.new
419: @response = TestResponse.new
420:
421: if klass = self.class.controller_class
422: @controller ||= klass.new rescue nil
423: end
424:
425: @request.env.delete('PATH_INFO')
426:
427: if @controller
428: @controller.request = @request
429: @controller.params = {}
430: end
431: end
# File lib/action_controller/test_case.rb, line 373
373: def xml_http_request(request_method, action, parameters = nil, session = nil, flash = nil)
374: @request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
375: @request.env['HTTP_ACCEPT'] ||= [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
376: __send__(request_method, action, parameters, session, flash).tap do
377: @request.env.delete 'HTTP_X_REQUESTED_WITH'
378: @request.env.delete 'HTTP_ACCEPT'
379: end
380: end
# File lib/action_controller/test_case.rb, line 446
446: def build_request_uri(action, parameters)
447: unless @request.env["PATH_INFO"]
448: options = @controller.__send__(:url_options).merge(parameters)
449: options.update(
450: :only_path => true,
451: :action => action,
452: :relative_url_root => nil,
453: :_path_segments => @request.symbolized_path_parameters)
454:
455: url, query_string = @routes.url_for(options).split("?", 2)
456:
457: @request.env["SCRIPT_NAME"] = @controller.config.relative_url_root
458: @request.env["PATH_INFO"] = url
459: @request.env["QUERY_STRING"] = query_string || ""
460: end
461: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.