Sha256: 514d5cb22df18c025d1a38c0a047e995870256cd53fdc79fcd29a177dca52cc8

Contents?: true

Size: 1.95 KB

Versions: 2

Compression:

Stored size: 1.95 KB

Contents

require File.join(File.dirname(__FILE__), "test_helper")

require 'ostruct' 
 
class TestWebMock < Test::Unit::TestCase
    
  def http_request(method, uri, options = {})
    begin
      uri = URI.parse(uri)
    rescue
      uri = Addressable::URI.heuristic_parse(uri)
    end
    response = nil
    clazz = Net::HTTP.const_get("#{method.to_s.capitalize}")
    req = clazz.new("#{uri.path}#{uri.query ? '?' : ''}#{uri.query}", options[:headers])
    req.basic_auth uri.user, uri.password if uri.user
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true if uri.scheme == "https"
    response = http.start {|http|
      http.request(req, options[:body])
    }
    OpenStruct.new({
      :body => response.body,
      :headers => response,
      :status => response.code })
  end

  
  def setup
    super
    stub_http_request(:any, "http://www.google.com")
    stub_http_request(:any, "https://www.google.com")
  end
    
  def test_verification_that_expected_request_occured
    http_request(:get, "http://www.google.com/")
    assert_requested(:get, "http://www.google.com", :times => 1)
    assert_requested(:get, "http://www.google.com")
  end
  
  def test_verification_that_expected_request_didnt_occur
    assert_fail("The request GET http://www.google.com/ was expected to execute 1 time but it executed 0 times") do
      assert_requested(:get, "http://www.google.com")
    end
  end  

  def test_verification_that_expected_request_occured_with_body_and_headers
    http_request(:get, "http://www.google.com/",
      :body => "abc", :headers => {'A' => 'a'})
    assert_requested(:get, "http://www.google.com",
      :body => "abc", :headers => {'A' => 'a'})
  end

  def test_verification_that_non_expected_request_didnt_occur
    assert_fail("The request GET http://www.google.com/ was expected to execute 0 times but it executed 1 time") do
      http_request(:get, "http://www.google.com/")
      assert_not_requested(:get, "http://www.google.com")
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webmock-0.7.3 test/test_webmock.rb
webmock-0.7.2 test/test_webmock.rb