spec/http2_spec.rb in http2-0.0.29 vs spec/http2_spec.rb in http2-0.0.30
- old
+ new
@@ -2,15 +2,15 @@
require "json"
describe "Http2" do
it "should be able to do normal post-requests." do
#Test posting keep-alive and advanced post-data.
- Http2.new(host: "www.partyworm.dk", debug: false) do |http|
+ with_http do |http|
0.upto(5) do
- resp = http.get("multipart_test.php")
+ resp = http.get("multipart_test.rhtml")
- resp = http.post(url: "multipart_test.php?choice=post-test", post: {
+ resp = http.post(url: "multipart_test.rhtml?choice=post-test", post: {
"val1" => "test1",
"val2" => "test2",
"val3" => [
"test3"
],
@@ -29,37 +29,37 @@
res = JSON.parse(resp.body)
res.is_a?(Hash).should eq true
res["val1"].should eq "test1"
res["val2"].should eq "test2"
- res["val3"][0].should eq "test3"
+ res["val3"]["0"].should eq "test3"
res["val4"]["val5"].should eq "test5"
- res["val6"]["val7"][0]["val8"].should eq "test8"
- res["val9"][0].should eq "a"
- res["val9"][1].should eq "b"
- res["val9"][2].should eq "d"
+ res["val6"]["val7"]["0"]["val8"].should eq "test8"
+ res["val9"]["0"].should eq "a"
+ res["val9"]["1"].should eq "b"
+ res["val9"]["2"].should eq "d"
end
end
end
it "#reconnect" do
- Http2.new(host: "www.partyworm.dk", follow_redirects: false, encoding_gzip: false, debug: false) do |http|
- resp1 = http.get("multipart_test.php")
+ with_http(follow_redirects: false, encoding_gzip: false) do |http|
+ resp1 = http.get("multipart_test.rhtml")
http.reconnect
- resp2 = http.get("multipart_test.php")
+ resp2 = http.get("multipart_test.rhtml")
resp1.body.should eq resp2.body
end
end
it "should be able to do multipart-requests and keep-alive when using multipart." do
- Http2.new(host: "www.partyworm.dk", follow_redirects: false, encoding_gzip: false, debug: false) do |http|
+ with_http(follow_redirects: false) do |http|
0.upto(5) do
fpath = File.realpath(__FILE__)
fpath2 = "#{File.realpath(File.dirname(__FILE__))}/../lib/http2.rb"
- resp = http.post_multipart(url: "multipart_test.php", post: {
+ resp = http.post_multipart(url: "multipart_test.rhtml", post: {
"test_var" => "true",
"test_file1" => {
fpath: fpath,
filename: "specfile"
},
@@ -78,18 +78,15 @@
end
end
it "it should be able to handle keep-alive correctly" do
urls = [
- "?show=users_search",
- "?show=users_online",
- "?show=drinksdb",
- "?show=forum&fid=9&tid=1917&page=0"
+ "content_type_test.rhtml",
+ "json_test.rhtml"
]
- urls = ["robots.txt"]
- Http2.new(host: "www.partyworm.dk", debug: false) do |http|
+ with_http do |http|
0.upto(105) do |count|
url = urls[rand(urls.size)]
#print "Doing request #{count} of 200 (#{url}).\n"
res = http.get(url)
res.body.to_s.length.should > 0
@@ -101,56 +98,63 @@
isgd = Http2.isgdlink("https://github.com/kaspernj/http2")
raise "Expected isgd-var to be valid but it wasnt: '#{isgd}'." if !isgd.match(/^http:\/\/is\.gd\/([A-z\d]+)$/)
end
it "should raise exception when something is not found" do
- expect{
- Http2.new(host: "www.partyworm.dk") do |http|
- http.get("something_that_does_not_exist.php")
- end
- }.to raise_error(::Http2::Errors::Notfound)
+ with_http do |http|
+ expect{
+ http.get("something_that_does_not_exist.rhtml")
+ }.to raise_error(::Http2::Errors::Notfound)
+ end
end
it "should be able to post json" do
- Http2.new(host: "http2test.kaspernj.org") do |http|
+ with_http do |http|
res = http.post(
- url: "/jsontest.php",
+ url: "json_test.rhtml",
json: {testkey: "testvalue"}
)
data = JSON.parse(res.body)
- data["_SERVER"]["CONTENT_TYPE"].should eql("application/json")
- data["PHP_JSON_INPUT"]["testkey"].should eql("testvalue")
+ data["_SERVER"]["HTTP_CONTENT_TYPE"].should eq "application/json"
+
+ # Hack JSON data from Hayabusa.
+ json_data = JSON.parse(data["_POST"].keys.first)
+ json_data["testkey"].should eq "testvalue"
+
+ res.content_type.should eq "application/json"
+ res.json?.should eq true
+ res.json["_SERVER"]["REQUEST_METHOD"].should eq "POST"
end
end
it "should be able to post custom content types" do
- require "json"
-
- Http2.new(host: "http2test.kaspernj.org") do |http|
+ with_http do |http|
res = http.post(
- url: "content_type_test.php",
+ url: "content_type_test.rhtml",
content_type: "plain/text",
post: "test1_test2_test3"
)
data = JSON.parse(res.body)
- data["_SERVER"]["CONTENT_TYPE"].should eql("plain/text")
- data["PHP_INPUT"].should eql("test1_test2_test3")
+ data["_SERVER"]["HTTP_CONTENT_TYPE"].should eq "plain/text"
+
+ raw_data = data["_POST"].keys.first
+ raw_data.should eq "test1_test2_test3"
end
end
it "should set various timeouts" do
- Http2.new(host: "http2test.kaspernj.org") do |http|
- res = http.get("content_type_test.php")
- http.keepalive_timeout.should eq 5
- http.keepalive_max.should eq 100
+ with_http do |http|
+ res = http.get("content_type_test.rhtml")
+ http.keepalive_timeout.should eq 15
+ http.keepalive_max.should eq 30
end
end
it "should follow redirects" do
- Http2.new(host: "http2test.kaspernj.org", follow_redirects: true) do |http|
- resp = http.get("redirect_test.php")
+ with_http(follow_redirects: true) do |http|
+ resp = http.get("redirect_test.rhtml")
resp.code.should eq "200"
end
end
end