Class: ActionDispatch::TestRequest

Inherits:
Request show all
Defined in:
actionpack/lib/action_dispatch/testing/test_request.rb

Constant Summary

DEFAULT_ENV =
Rack::MockRequest.env_for('/')

Constants inherited from Request

Request::HTTP_METHODS, Request::HTTP_METHOD_LOOKUP, Request::LOCALHOST, Request::RFC2518, Request::RFC2616, Request::RFC3253, Request::RFC3648, Request::RFC3744, Request::RFC5323, Request::RFC5789, Request::TRUSTED_PROXIES

Constants included from Http::MimeNegotiation

Http::MimeNegotiation::BROWSER_LIKE_ACCEPTS

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from Request

#GET, #POST, #authorization, #body, #body_stream, #content_length, #cookie_jar, #delete?, #flash, #forgery_whitelisted?, #form_data?, #fullpath, #get?, #head?, #headers, #ip, #key?, #local?, #media_type, #method, #method_symbol, #post?, #put?, #raw_post, #remote_ip, #request_method, #request_method_symbol, #reset_session, #server_software, #session=, #session_options=, #xml_http_request?

Methods included from Http::URL

#domain, extract_domain, extract_subdomain, extract_subdomains, #host, #host_with_port, #optional_port, #port, #port_string, #protocol, #raw_host_with_port, #server_port, #standard_port, #standard_port?, #subdomain, #subdomains, #url, url_for

Methods included from Http::FilterParameters

#filtered_env, #filtered_parameters

Methods included from ActiveSupport::Concern

#append_features, extended, #included

Methods included from Http::Parameters

#parameters, #path_parameters, #path_parameters=, #symbolized_path_parameters

Methods included from Http::MimeNegotiation

#accepts, #content_mime_type, #content_type, #format, #format=, #formats, #negotiate_mime

Methods included from Http::Cache::Request

#etag_matches?, #fresh?, #if_modified_since, #if_none_match, #not_modified?

Constructor Details

- (TestRequest) initialize(env = {})

A new instance of TestRequest



12
13
14
15
16
17
18
19
20
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 12

def initialize(env = {})
  env = Rails.application.env_config.merge(env) if defined?(Rails.application)
  super(DEFAULT_ENV.merge(env))

  @cookies = nil
  self.host        = 'test.host'
  self.remote_addr = '0.0.0.0'
  self.user_agent  = 'Rails Testing'
end

Class Method Details

+ (Object) new(env = {})



8
9
10
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 8

def self.new(env = {})
  super
end

Instance Method Details

- (Object) accept=(mime_types)



68
69
70
71
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 68

def accept=(mime_types)
  @env.delete('action_dispatch.request.accepts')
  @env['HTTP_ACCEPT'] = Array(mime_types).collect { |mime_type| mime_type.to_s }.join(",")
end

- (Object) action=(action_name)



48
49
50
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 48

def action=(action_name)
  path_parameters["action"] = action_name.to_s
end

- (Object) cookies



73
74
75
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 73

def cookies
  @cookies ||= super
end

- (Object) env



22
23
24
25
26
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 22

def env
  write_cookies!
  delete_nil_values!
  super
end

- (Object) host=(host)



32
33
34
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 32

def host=(host)
  @env['HTTP_HOST'] = host
end

- (Object) if_modified_since=(last_modified)



52
53
54
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 52

def if_modified_since=(last_modified)
  @env['HTTP_IF_MODIFIED_SINCE'] = last_modified
end

- (Object) if_none_match=(etag)



56
57
58
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 56

def if_none_match=(etag)
  @env['HTTP_IF_NONE_MATCH'] = etag
end

- (Object) path=(path)



44
45
46
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 44

def path=(path)
  @env['PATH_INFO'] = path
end

- (Object) port=(number)



36
37
38
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 36

def port=(number)
  @env['SERVER_PORT'] = number.to_i
end

- (Object) remote_addr=(addr)



60
61
62
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 60

def remote_addr=(addr)
  @env['REMOTE_ADDR'] = addr
end

- (Object) request_method=(method)



28
29
30
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 28

def request_method=(method)
  @env['REQUEST_METHOD'] = method.to_s.upcase
end

- (Object) request_uri=(uri)



40
41
42
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 40

def request_uri=(uri)
  @env['REQUEST_URI'] = uri
end

- (Object) user_agent=(user_agent)



64
65
66
# File 'actionpack/lib/action_dispatch/testing/test_request.rb', line 64

def user_agent=(user_agent)
  @env['HTTP_USER_AGENT'] = user_agent
end