diff options
Diffstat (limited to 'vendor/gems/fakeweb-1.3.0/test/test_helper.rb')
-rw-r--r-- | vendor/gems/fakeweb-1.3.0/test/test_helper.rb | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/vendor/gems/fakeweb-1.3.0/test/test_helper.rb b/vendor/gems/fakeweb-1.3.0/test/test_helper.rb deleted file mode 100644 index b181391b1..000000000 --- a/vendor/gems/fakeweb-1.3.0/test/test_helper.rb +++ /dev/null @@ -1,90 +0,0 @@ -require 'test/unit' -require 'open-uri' -require 'pathname' -require 'fake_web' -require 'rbconfig' -require 'rubygems' -require 'mocha' - - -# Give all tests a common setup and teardown that prevents shared state -class Test::Unit::TestCase - alias setup_without_fakeweb setup - def setup - FakeWeb.clean_registry - @original_allow_net_connect = FakeWeb.allow_net_connect? - FakeWeb.allow_net_connect = false - end - - alias teardown_without_fakeweb teardown - def teardown - FakeWeb.allow_net_connect = @original_allow_net_connect - end -end - - -module FakeWebTestHelper - - def fixture_path(basename) - "test/fixtures/#{basename}" - end - - def capture_stderr - $stderr = StringIO.new - yield - $stderr.rewind && $stderr.read - ensure - $stderr = STDERR - end - - # The path to the current ruby interpreter. Adapted from Rake's FileUtils. - def ruby_path - ext = ((RbConfig::CONFIG['ruby_install_name'] =~ /\.(com|cmd|exe|bat|rb|sh)$/) ? "" : RbConfig::CONFIG['EXEEXT']) - File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'] + ext).sub(/.*\s.*/m, '"\&"') - end - - # Sets several expectations (using Mocha) that a real HTTP request makes it - # past FakeWeb to the socket layer. You can use this when you need to check - # that a request isn't handled by FakeWeb. - def setup_expectations_for_real_request(options = {}) - # Socket handling - if options[:port] == 443 - socket = mock("SSLSocket") - OpenSSL::SSL::SSLSocket.expects(:===).with(socket).returns(true).at_least_once - OpenSSL::SSL::SSLSocket.expects(:new).with(socket, instance_of(OpenSSL::SSL::SSLContext)).returns(socket).at_least_once - socket.stubs(:sync_close=).returns(true) - socket.expects(:connect).with().at_least_once - else - socket = mock("TCPSocket") - Socket.expects(:===).with(socket).at_least_once.returns(true) - end - - TCPSocket.expects(:open).with(options[:host], options[:port]).returns(socket).at_least_once - socket.stubs(:closed?).returns(false) - socket.stubs(:close).returns(true) - - # Request/response handling - request_parts = ["#{options[:method]} #{options[:path]} HTTP/1.1", "Host: #{options[:host]}"] - socket.expects(:write).with(all_of(includes(request_parts[0]), includes(request_parts[1]))).returns(100) - if !options[:request_body].nil? - socket.expects(:write).with(options[:request_body]).returns(100) - end - - read_method = RUBY_VERSION >= "1.9.2" ? :read_nonblock : :sysread - socket.expects(read_method).at_least_once.returns("HTTP/1.1 #{options[:response_code]} #{options[:response_message]}\nContent-Length: #{options[:response_body].length}\n\n#{options[:response_body]}").then.raises(EOFError) - end - - - # A helper that calls #setup_expectations_for_real_request for you, using - # defaults for our commonly used test request to images.apple.com. - def setup_expectations_for_real_apple_hot_news_request(options = {}) - defaults = { :host => "images.apple.com", :port => 80, :method => "GET", - :path => "/main/rss/hotnews/hotnews.rss", - :response_code => 200, :response_message => "OK", - :response_body => "<title>Apple Hot News</title>" } - setup_expectations_for_real_request(defaults.merge(options)) - end - -end - -Test::Unit::TestCase.send(:include, FakeWebTestHelper) |