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