From 74168562e8786beafec4e8eb0eeef913b04f67c4 Mon Sep 17 00:00:00 2001 From: Vincent Landgraf Date: Mon, 31 Jan 2011 23:55:07 +0100 Subject: [PATCH] implemented most of the tests and added main test case test.rb --- base.rb | 17 ----------------- test.rb | 30 ++++++++++++++++++++++++++++++ test_curb.rb | 10 ++++++++++ test_curl.rb | 8 ++++++++ test_em_http.rb | 17 +++++++++++++++++ test_httparty.rb | 16 ++++++++++++++++ test_httpclient.rb | 1 - test_httprb.rb | 1 - test_net_http.rb | 1 - test_patron.rb | 1 - test_rest_client.rb | 1 - test_righttp.rb | 1 - test_rufus_jig.rb | 3 +-- 13 files changed, 82 insertions(+), 25 deletions(-) delete mode 100644 base.rb create mode 100644 test.rb diff --git a/base.rb b/base.rb deleted file mode 100644 index d397c1f..0000000 --- a/base.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'rubygems' -require 'uri' -require 'benchmark' -require 'yajl' -require 'yajl/json_gem' - -ITERATIONS = 10 - -def test_http(name, &block) - Benchmark.bm do |x| - x.report("testing #{name}") do - ITERATIONS.times(&block) - end - end -end - -URL = URI.parse("http://toevolve.org/test.json") diff --git a/test.rb b/test.rb new file mode 100644 index 0000000..e93c379 --- /dev/null +++ b/test.rb @@ -0,0 +1,30 @@ +require 'rubygems' +require 'uri' +require 'benchmark' +require 'yajl' +require 'yajl/json_gem' + +ITERATIONS = 1000 +TESTS = [] + +def test_http(name, &block) + TESTS << [name, block] +end + +URL = URI.parse("http://localhost/~vincentlandgraf/test.json") + +dir = File.dirname(__FILE__) + +Dir[File.join(dir, "test_*.rb")].each do |file| + require file +end + +at_exit do + Benchmark.bm(20) do |x| + for name, block in TESTS do + x.report("testing #{name}") do + ITERATIONS.times(&block) + end + end + end +end diff --git a/test_curb.rb b/test_curb.rb index e69de29..3312883 100644 --- a/test_curb.rb +++ b/test_curb.rb @@ -0,0 +1,10 @@ +require "curb" + +c = Curl::Easy.new +test_http("curb") do + c.url = URL.to_s + c.headers["X-Test"] = "test" + c.perform + data = JSON.parse(c.body_str) + raise Exception.new unless data.first["number"] != 123123 +end diff --git a/test_curl.rb b/test_curl.rb index e69de29..e68996d 100644 --- a/test_curl.rb +++ b/test_curl.rb @@ -0,0 +1,8 @@ +test_http("curl") do + header = {"X-Test" => "test"} + header_str = "" + header.each { |key, value| header_str += "-H \"#{key}: #{value}\" "} + response = `curl #{header_str} -s #{URL.to_s.inspect}` + data = JSON.parse(response) + raise Exception.new unless data.first["number"] != 123123 +end diff --git a/test_em_http.rb b/test_em_http.rb index e69de29..70f1298 100644 --- a/test_em_http.rb +++ b/test_em_http.rb @@ -0,0 +1,17 @@ +# require 'em-http' +# +# evm_count = ITERATIONS +# EventMachine.run do +# test_http("em-http") do +# http = EventMachine::HttpRequest.new(URL.to_s).get :head => {"X-Test" => "test"}, +# :timeout => 60 +# +# http.callback do +# data = JSON.parse(http.response) +# raise Exception.new unless data.first["number"] != 123123 +# evm_count -= 1 +# EventMachine.stop if evm_count <= 0 +# end +# end +# end +# \ No newline at end of file diff --git a/test_httparty.rb b/test_httparty.rb index e69de29..62e2284 100644 --- a/test_httparty.rb +++ b/test_httparty.rb @@ -0,0 +1,16 @@ +require "httparty" + +class PartyService + include HTTParty + base_uri URL.to_s + + def fetch! + data = self.class.get(URL.path, "X-Test" => "test") + raise Exception.new unless data.first["number"] != 123123 + end +end + +party_service = PartyService.new +test_http("httparty") do + party_service.fetch! +end diff --git a/test_httpclient.rb b/test_httpclient.rb index fd726c0..69b858a 100644 --- a/test_httpclient.rb +++ b/test_httpclient.rb @@ -1,4 +1,3 @@ -require 'base' require 'httpclient' client = HTTPClient.new diff --git a/test_httprb.rb b/test_httprb.rb index 27549d2..fb18db8 100644 --- a/test_httprb.rb +++ b/test_httprb.rb @@ -1,4 +1,3 @@ -require 'base' require 'httprb' test_http("httprb") do diff --git a/test_net_http.rb b/test_net_http.rb index bf5e878..ea538c6 100644 --- a/test_net_http.rb +++ b/test_net_http.rb @@ -1,4 +1,3 @@ -require 'base' require 'net/http' test_http("net/http") do diff --git a/test_patron.rb b/test_patron.rb index b65d9d5..1e9522c 100644 --- a/test_patron.rb +++ b/test_patron.rb @@ -1,4 +1,3 @@ -require 'base' require 'patron' sess = Patron::Session.new diff --git a/test_rest_client.rb b/test_rest_client.rb index a656dfa..51bd70a 100644 --- a/test_rest_client.rb +++ b/test_rest_client.rb @@ -1,4 +1,3 @@ -require 'base' require 'restclient' test_http("RestClient") do diff --git a/test_righttp.rb b/test_righttp.rb index 2d612ec..f1e99f5 100644 --- a/test_righttp.rb +++ b/test_righttp.rb @@ -1,4 +1,3 @@ -require 'base' require 'righttp' test_http("righttp") do diff --git a/test_rufus_jig.rb b/test_rufus_jig.rb index 1ea6da8..c706fa8 100644 --- a/test_rufus_jig.rb +++ b/test_rufus_jig.rb @@ -1,8 +1,7 @@ -require 'base' require 'patron' require 'rufus/jig' -h = Rufus::Jig::Http.new(URL.host, URL.port) +h = Rufus::Jig::Http.new(URL.host, URL.port, :timeout => 60) test_http("rufus-jig") do data = h.get(URL.path, "X-Test" => "test") raise Exception.new unless data.first["number"] != 123123