Parent

Included Modules

Object

Public Instance Methods

build_request_signature(req) click to toggle source
# File lib/webmock/http_lib_adapters/httpclient.rb, line 97
def build_request_signature(req)
  uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s)
  uri.query_values = req.header.request_query if req.header.request_query
  uri.port = req.header.request_uri.port
  uri = uri.omit(:userinfo)

  auth = www_auth.basic_auth
  auth.challenge(req.header.request_uri, nil)
  
  headers = req.header.all.inject({}) do |headers, header| 
    headers[header[0]] ||= [];
    headers[header[0]] << header[1]
    headers
  end

  if (auth_cred = auth.get(req)) && auth.scheme == 'Basic'
    userinfo = WebMock::Util::Headers.decode_userinfo_from_header(auth_cred)
    userinfo = WebMock::Util::URI.encode_unsafe_chars_in_userinfo(userinfo)
    headers.reject! {|k,v| k =~ /[Aa]uthorization/ && v =~ /^Basic / } #we added it to url userinfo
    uri.userinfo = userinfo
  end

  request_signature = WebMock::RequestSignature.new(
    req.header.request_method.downcase.to_sym,
    uri.to_s,
    :body => req.content,
    :headers => headers
  )
end
build_webmock_response(httpclient_response) click to toggle source
# File lib/webmock/http_lib_adapters/httpclient.rb, line 82
def build_webmock_response(httpclient_response)
  webmock_response = WebMock::Response.new
  webmock_response.status = [httpclient_response.status, httpclient_response.reason]
  webmock_response.headers = httpclient_response.header.all
  if  httpclient_response.content.respond_to?(:read)
    webmock_response.body = httpclient_response.content.read
    body = HTTP::Message::Body.new
    body.init_response(StringIO.new(webmock_response.body))
    httpclient_response.body = body
  else
    webmock_response.body = httpclient_response.content
  end
  webmock_response
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.