class RspecApiDocumentation::HttpTestClient

Constants

LastRequest

Attributes

last_request[R]
last_response[R]

Public Instance Methods

do_request(method, path, params, request_headers) click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 60
def do_request(method, path, params, request_headers)
  http_test_session.send(method, path, params, headers(method, path, params, request_headers))
end
last_request=(env) click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 64
def last_request=(env)
  @last_request = LastRequest.new(env.url, env.method, env.request_headers, env.body)
end
last_response=(env) click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 68
def last_response=(env)
  @last_response = env
end
query_string() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 40
def query_string
  last_request.url.query
end
request_content_type() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 52
def request_content_type
  last_request.request_headers["CONTENT_TYPE"]
end
request_headers() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 32
def request_headers
  env_to_headers(last_request.request_headers)
end
response_body() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 48
def response_body
  last_response.body
end
response_content_type() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 56
def response_content_type
  last_response.request_headers["CONTENT_TYPE"]
end
response_headers() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 36
def response_headers
  last_response.response_headers
end
status() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 44
def status
  last_response.status
end

Protected Instance Methods

handle_multipart_body(request_headers, request_body) click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 78
def handle_multipart_body(request_headers, request_body)
  parsed_parameters = Rack::Request.new({
    "CONTENT_TYPE" => request_headers["Content-Type"],
    "rack.input" => StringIO.new(request_body)
  }).params

  clean_out_uploaded_data(parsed_parameters, request_body)
end
headers(*args) click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 74
def headers(*args)
  headers_to_env(super)
end
read_request_body() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 87
def read_request_body
  if [:post, :put].include?(last_request.method)
    last_request.body || ""
  else
    ""
  end
end

Private Instance Methods

http_test_session() click to toggle source
# File lib/rspec_api_documentation/http_test_client.rb, line 97
def http_test_session
  ::Faraday.new(:url => options[:host]) do |faraday|
    faraday.request :url_encoded            # form-encode POST params
    faraday.request :request_saver, self    # save the request and response
    faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
  end
end