class RoadForest::TestSupport::HTTPClient
Attributes
exchanges[R]
Public Class Methods
new(app, url)
click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 6 def initialize(app, url) @app = app @default_url = Addressable::URI.parse(url) @exchanges = [] @dispatcher = DispatcherFacade.new(@app.dispatcher) end
Public Instance Methods
do_request(request) { |exchange| ... }
click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 18 def do_request(request) uri = request.url uri = Addressable::URI.parse(uri) uri = @default_url.join(uri) exchange = Exchange.new exchange.method = request.method exchange.uri = uri exchange.body = request.body exchange.dispatcher = @dispatcher @exchanges << exchange exchange.header('Host', [uri.host, uri.port].compact.join(':')) exchange.header('Accept', '*/*') request.headers.each do |name, value| exchange.header(name, value) end yield exchange if block_given? #puts; puts "#{__FILE__}:#{__LINE__} => #{(request).inspect}" exchange.do_request response = HTTP::Response.new response.headers = exchange.response.headers.dup response.status = exchange.response.code response.body_string = exchange.response.body enrich_with_server_stuff(response) #puts; puts "#{__FILE__}:#{__LINE__} => #{(response).inspect}" return response end
enrich_with_server_stuff(response)
click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 56 def enrich_with_server_stuff(response) response.headers["Server"]="RoadForest Test Server" response.headers["Date"]=Time.now.httpdate response.headers["Connection"] = "Keep-Alive" end
inspect()
click to toggle source
# File lib/roadforest/test-support/http-client.rb, line 14 def inspect "#<#{self.class.name}:#{"%0xd" % object_id} #{exchanges.length} exchanges>" end