In Files

Parent

Rack::Test::Session

This class represents a series of requests issued to a Rack app, sharing a single cookie jar

Rack::Test::Session’s methods are most often called through Rack::Test::Methods, which will automatically build a session when it’s first used.

Public Class Methods

new(mock_session) click to toggle source

Creates a Rack::Test::Session for a given Rack app or Rack::MockSession.

Note: Generally, you won’t need to initialize a Rack::Test::Session directly. Instead, you should include Rack::Test::Methods into your testing context. (See README.rdoc for an example)

# File lib/rack/test.rb, line 36
def initialize(mock_session)
  @headers = {}

  if mock_session.is_a?(MockSession)
    @rack_mock_session = mock_session
  else
    @rack_mock_session = MockSession.new(mock_session)
  end

  @default_host = @rack_mock_session.default_host
end

Public Instance Methods

authorize(username, password) click to toggle source
Alias for: basic_authorize
basic_authorize(username, password) click to toggle source

Set the username and password for HTTP Basic authorization, to be included in subsequent requests in the HTTP_AUTHORIZATION header.

Example:

basic_authorize "bryan", "secret"
# File lib/rack/test.rb, line 129
def basic_authorize(username, password)
  encoded_login = ["#{username}:#{password}"].pack("m*")
  header('Authorization', "Basic #{encoded_login}")
end
Also aliased as: authorize
delete(uri, params = {}, env = {}, &block) click to toggle source

Issue a DELETE request for the given URI. See get

Example:

delete "/"
# File lib/rack/test.rb, line 82
def delete(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "DELETE", :params => params))
  process_request(uri, env, &block)
end
digest_authorize(username, password) click to toggle source

Set the username and password for HTTP Digest authorization, to be included in subsequent requests in the HTTP_AUTHORIZATION header.

Example:

digest_authorize "bryan", "secret"
# File lib/rack/test.rb, line 141
def digest_authorize(username, password)
  @digest_username = username
  @digest_password = password
end
follow_redirect!() click to toggle source

Rack::Test will not follow any redirects automatically. This method will follow the redirect returned in the last response. If the last response was not a redirect, an error will be raised.

# File lib/rack/test.rb, line 149
def follow_redirect!
  unless last_response.redirect?
    raise Error.new("Last response was not a redirect. Cannot follow_redirect!")
  end

  get(last_response["Location"])
end
get(uri, params = {}, env = {}, &block) click to toggle source

Issue a GET request for the given URI with the given params and Rack environment. Stores the issues request object in last_request and the app’s response in last_response. Yield last_response to a block if given.

Example:

get "/"
# File lib/rack/test.rb, line 55
def get(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "GET", :params => params))
  process_request(uri, env, &block)
end
head(uri, params = {}, env = {}, &block) click to toggle source

Issue a HEAD request for the given URI. See get

Example:

head "/"
# File lib/rack/test.rb, line 91
def head(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "HEAD", :params => params))
  process_request(uri, env, &block)
end
header(name, value) click to toggle source

Set a header to be included on all subsequent requests through the session. Use a value of nil to remove a previously configured header.

In accordance with the Rack spec, headers will be included in the Rack environment hash in HTTP_USER_AGENT form.

Example:

header "User-Agent", "Firefox"
# File lib/rack/test.rb, line 116
def header(name, value)
  if value.nil?
    @headers.delete(name)
  else
    @headers[name] = value
  end
end
post(uri, params = {}, env = {}, &block) click to toggle source

Issue a POST request for the given URI. See get

Example:

post "/signup", "name" => "Bryan"
# File lib/rack/test.rb, line 64
def post(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "POST", :params => params))
  process_request(uri, env, &block)
end
put(uri, params = {}, env = {}, &block) click to toggle source

Issue a PUT request for the given URI. See get

Example:

put "/"
# File lib/rack/test.rb, line 73
def put(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "PUT", :params => params))
  process_request(uri, env, &block)
end
request(uri, env = {}, &block) click to toggle source

Issue a request to the Rack app for the given URI and optional Rack environment. Stores the issues request object in last_request and the app’s response in last_response. Yield last_response to a block if given.

Example:

request "/"
# File lib/rack/test.rb, line 103
def request(uri, env = {}, &block)
  env = env_for(uri, env)
  process_request(uri, env, &block)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.