Sha256: dcbee994293fdd3e0748a4e80e41d8b684dc185916bd8ab3c762326dc192d4c3

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

require 'open-uri'

module NetHTTPHelpers
  def perform_net_http_get_with_returning_block(uri, path)
    Net::HTTP.new(uri.host, uri.port).request(Net::HTTP::Get.new(path, {})) do |response|
      return response
    end
  end
end
World(NetHTTPHelpers)

When /^I make an asynchronous Net::HTTP get request to "([^\"]*)"$/ do |url|
  capture_response(url) do |uri, path|
    result = Net::HTTP.new(uri.host, uri.port).request_get(path) { |r| r.read_body { } }
    result.body.should be_a(Net::ReadAdapter)
    result
  end
end

When /^I make a replayed asynchronous Net::HTTP get request to "([^\"]*)"$/ do |url|
  capture_response(url) do |uri, path|
    result_body = ''
    result = Net::HTTP.new(uri.host, uri.port).request_get(path) { |r| r.read_body { |fragment| result_body << fragment } }
    def result_body.body; self; end # make the string a fake response (so response.body can be called on it)
    result_body
  end
end

When /^I make a recursive Net::HTTP post request to "([^\"]*)"$/ do |url|
  capture_response(url) do |uri, path|
    Net::HTTP.new(uri.host, uri.port).post(path, nil)
  end
end

When /^I make a returning block Net::HTTP get request to "([^\"]*)"$/ do |url|
  capture_response(url) do |uri, path|
    perform_net_http_get_with_returning_block(uri, path)
  end
end

When /^I make an open uri Net::HTTP get request to "([^"]*)"$/ do |url|
  capture_response(url) do |uri, path|
    result = open(url)
    # #open returns a StringIO rather than a Net::HTTPResponse, so we add #body to make it conform to the same interface
    def result.body; read; end
    result
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vcr-1.3.1 features/step_definitions/net_http_steps.rb
vcr-1.3.0 features/step_definitions/net_http_steps.rb
vcr-1.2.0 features/step_definitions/net_http_steps.rb