spec/httpi/adapter/excon_spec.rb in httpi-2.4.3 vs spec/httpi/adapter/excon_spec.rb in httpi-2.4.4
- old
+ new
@@ -1,124 +1,28 @@
require "spec_helper"
-require "integration/support/server"
+require "httpi/adapter/excon"
+require "httpi/request"
-describe HTTPI::Adapter::Excon do
+begin
+ HTTPI::Adapter.load_adapter(:excon)
- subject(:adapter) { :excon }
+ describe HTTPI::Adapter::Excon do
+ let(:adapter) { HTTPI::Adapter::Excon.new(request) }
+ let(:request) { HTTPI::Request.new("http://example.com") }
- context "http requests" do
- before :all do
- @server = IntegrationServer.run
- end
+ describe "settings" do
+ describe "connect_timeout, read_timeout, write_timeout" do
+ it "are passed as connection options" do
+ request.open_timeout = 30
+ request.read_timeout = 40
+ request.write_timeout = 50
- after :all do
- @server.stop
- end
-
- it "sends and receives HTTP headers" do
- request = HTTPI::Request.new(@server.url + "x-header")
- request.headers["X-Header"] = "HTTPI"
-
- response = HTTPI.get(request, adapter)
- expect(response.body).to include("HTTPI")
- end
-
- it "executes GET requests" do
- response = HTTPI.get(@server.url, adapter)
- expect(response.body).to eq("get")
- expect(response.headers["Content-Type"]).to eq("text/plain")
- end
-
- it "executes POST requests" do
- response = HTTPI.post(@server.url, "<some>xml</some>", adapter)
- expect(response.body).to eq("post")
- expect(response.headers["Content-Type"]).to eq("text/plain")
- end
-
- it "executes HEAD requests" do
- response = HTTPI.head(@server.url, adapter)
- expect(response.code).to eq(200)
- expect(response.headers["Content-Type"]).to eq("text/plain")
- end
-
- it "executes PUT requests" do
- response = HTTPI.put(@server.url, "<some>xml</some>", adapter)
- expect(response.body).to eq("put")
- expect(response.headers["Content-Type"]).to eq("text/plain")
- end
-
- it "executes DELETE requests" do
- response = HTTPI.delete(@server.url, adapter)
- expect(response.body).to eq("delete")
- expect(response.headers["Content-Type"]).to eq("text/plain")
- end
-
- it "supports basic authentication" do
- request = HTTPI::Request.new(@server.url + "basic-auth")
- request.auth.basic("admin", "secret")
-
- response = HTTPI.get(request, adapter)
- expect(response.body).to eq("basic-auth")
- end
-
- it "does not support ntlm authentication" do
- request = HTTPI::Request.new(@server.url + "ntlm-auth")
- request.auth.ntlm("tester", "vReqSoafRe5O")
-
- expect { HTTPI.get(request, adapter) }.
- to raise_error(HTTPI::NotSupportedError, /does not support NTLM authentication/)
- end
-
- it "supports disabling verify mode" do
- request = HTTPI::Request.new(@server.url)
- request.auth.ssl.verify_mode = :none
- adapter_class = HTTPI::Adapter.load(adapter).new(request)
- expect(adapter_class.client.data[:ssl_verify_peer]).to eq(false)
- end
- end
-
- # it does not support digest auth
-
- if RUBY_PLATFORM =~ /java/
- pending "Puma Server complains: SSL not supported on JRuby"
- else
- context "https requests" do
- before :all do
- @server = IntegrationServer.run(:ssl => true)
+ expect(adapter.client.data).to include(
+ connect_timeout: 30,
+ read_timeout: 40,
+ write_timeout: 50
+ )
+ end
end
- after :all do
- @server.stop
- end
-
- # it does not raise when no certificate was set up
- it "works when no client cert is specified" do
- request = HTTPI::Request.new(@server.url)
- request.auth.ssl.ca_cert_file = IntegrationServer.ssl_ca_file
-
- response = HTTPI.get(request, adapter)
- expect(response.body).to eq("get")
- end
-
- it "works with client cert and key provided as file path" do
- request = HTTPI::Request.new(@server.url)
- request.auth.ssl.ca_cert_file = IntegrationServer.ssl_ca_file
- request.auth.ssl.cert_file = "spec/fixtures/client_cert.pem"
- request.auth.ssl.cert_key_file = "spec/fixtures/client_key.pem"
-
- response = HTTPI.get(request, adapter)
- expect(response.body).to eq("get")
- end
-
- it "works with client cert and key set directly" do
- request = HTTPI::Request.new(@server.url)
-
- request.auth.ssl.ca_cert_file = IntegrationServer.ssl_ca_file
- request.auth.ssl.cert = OpenSSL::X509::Certificate.new File.open("spec/fixtures/client_cert.pem").read
- request.auth.ssl.cert_key = OpenSSL::PKey.read File.open("spec/fixtures/client_key.pem").read
-
- response = HTTPI.get(request, adapter)
- expect(response.body).to eq("get")
- end
end
end
-
end