spec/httpi/adapter/curb_spec.rb in httpi-0.9.3 vs spec/httpi/adapter/curb_spec.rb in httpi-0.9.4

- old
+ new

@@ -1,229 +1,232 @@ require "spec_helper" require "httpi/adapter/curb" require "httpi/request" -require "curb" +# curb does not run on jruby +unless RUBY_PLATFORM =~ /java/ + require "curb" -describe HTTPI::Adapter::Curb do - let(:adapter) { HTTPI::Adapter::Curb.new } - let(:curb) { Curl::Easy.any_instance } + describe HTTPI::Adapter::Curb do + let(:adapter) { HTTPI::Adapter::Curb.new } + let(:curb) { Curl::Easy.any_instance } - describe "#get" do - before do - curb.expects(:http_get) - curb.expects(:response_code).returns(200) - curb.expects(:header_str).returns("Accept-encoding: utf-8") - curb.expects(:body_str).returns(Fixture.xml) - end + describe "#get" do + before do + curb.expects(:http_get) + curb.expects(:response_code).returns(200) + curb.expects(:header_str).returns("Accept-encoding: utf-8") + curb.expects(:body_str).returns(Fixture.xml) + end - it "should return a valid HTTPI::Response" do - adapter.get(basic_request).should match_response(:body => Fixture.xml) + it "returns a valid HTTPI::Response" do + adapter.get(basic_request).should match_response(:body => Fixture.xml) + end end - end - describe "#post" do - before do - curb.expects(:http_post) - curb.expects(:response_code).returns(200) - curb.expects(:header_str).returns("Accept-encoding: utf-8") - curb.expects(:body_str).returns(Fixture.xml) - end + describe "#post" do + before do + curb.expects(:http_post) + curb.expects(:response_code).returns(200) + curb.expects(:header_str).returns("Accept-encoding: utf-8") + curb.expects(:body_str).returns(Fixture.xml) + end - it "should return a valid HTTPI::Response" do - adapter.post(basic_request).should match_response(:body => Fixture.xml) + it "returns a valid HTTPI::Response" do + adapter.post(basic_request).should match_response(:body => Fixture.xml) + end end - end - describe "#post includes body of request" do - it "should send the body in the request" do - curb.expects(:http_post).with('xml=hi&name=123') - adapter.post(basic_request { |request| request.body = 'xml=hi&name=123' } ) + describe "#post" do + it "sends the body in the request" do + curb.expects(:http_post).with('xml=hi&name=123') + adapter.post(basic_request { |request| request.body = 'xml=hi&name=123' } ) + end end - end - describe "#head" do - before do - curb.expects(:http_head) - curb.expects(:response_code).returns(200) - curb.expects(:header_str).returns("Accept-encoding: utf-8") - curb.expects(:body_str).returns(Fixture.xml) - end + describe "#head" do + before do + curb.expects(:http_head) + curb.expects(:response_code).returns(200) + curb.expects(:header_str).returns("Accept-encoding: utf-8") + curb.expects(:body_str).returns(Fixture.xml) + end - it "should return a valid HTTPI::Response" do - adapter.head(basic_request).should match_response(:body => Fixture.xml) + it "returns a valid HTTPI::Response" do + adapter.head(basic_request).should match_response(:body => Fixture.xml) + end end - end - describe "#put" do - before do - curb.expects(:http_put) - curb.expects(:response_code).returns(200) - curb.expects(:header_str).returns("Accept-encoding: utf-8") - curb.expects(:body_str).returns(Fixture.xml) - end + describe "#put" do + before do + curb.expects(:http_put) + curb.expects(:response_code).returns(200) + curb.expects(:header_str).returns("Accept-encoding: utf-8") + curb.expects(:body_str).returns(Fixture.xml) + end - it "should return a valid HTTPI::Response" do - adapter.put(basic_request).should match_response(:body => Fixture.xml) + it "returns a valid HTTPI::Response" do + adapter.put(basic_request).should match_response(:body => Fixture.xml) + end end - end - describe "#put includes body of request" do - it "should send the body in the request" do - curb.expects(:http_put).with('xml=hi&name=123') - adapter.put(basic_request { |request| request.body = 'xml=hi&name=123' } ) + describe "#put" do + it "sends the body in the request" do + curb.expects(:http_put).with('xml=hi&name=123') + adapter.put(basic_request { |request| request.body = 'xml=hi&name=123' } ) + end end - end - describe "#delete" do - before do - curb.expects(:http_delete) - curb.expects(:response_code).returns(200) - curb.expects(:header_str).returns("Accept-encoding: utf-8") - curb.expects(:body_str).returns("") - end + describe "#delete" do + before do + curb.expects(:http_delete) + curb.expects(:response_code).returns(200) + curb.expects(:header_str).returns("Accept-encoding: utf-8") + curb.expects(:body_str).returns("") + end - it "should return a valid HTTPI::Response" do - adapter.delete(basic_request).should match_response(:body => "") + it "returns a valid HTTPI::Response" do + adapter.delete(basic_request).should match_response(:body => "") + end end - end - describe "settings:" do - before { curb.stubs(:http_get) } + describe "settings:" do + before { curb.stubs(:http_get) } - describe "url" do - it "should always set the request url" do - curb.expects(:url=).with(basic_request.url.to_s) - adapter.get(basic_request) + describe "url" do + it "always sets the request url" do + curb.expects(:url=).with(basic_request.url.to_s) + adapter.get(basic_request) + end end - end - describe "proxy_url" do - it "should not be set if not specified" do - curb.expects(:proxy_url=).never - adapter.get(basic_request) - end + describe "proxy_url" do + it "is not set unless it's specified" do + curb.expects(:proxy_url=).never + adapter.get(basic_request) + end - it "should be set if specified" do - request = basic_request { |request| request.proxy = "http://proxy.example.com" } + it "is set if specified" do + request = basic_request { |request| request.proxy = "http://proxy.example.com" } - curb.expects(:proxy_url=).with(request.proxy.to_s) - adapter.get(request) + curb.expects(:proxy_url=).with(request.proxy.to_s) + adapter.get(request) + end end - end - describe "timeout" do - it "should not be set if not specified" do - curb.expects(:timeout=).never - adapter.get(basic_request) - end + describe "timeout" do + it "is not set unless it's specified" do + curb.expects(:timeout=).never + adapter.get(basic_request) + end - it "should be set if specified" do - request = basic_request { |request| request.read_timeout = 30 } + it "is set if specified" do + request = basic_request { |request| request.read_timeout = 30 } - curb.expects(:timeout=).with(30) - adapter.get(request) + curb.expects(:timeout=).with(30) + adapter.get(request) + end end - end - describe "connect_timeout" do - it "should not be set if not specified" do - curb.expects(:connect_timeout=).never - adapter.get(basic_request) - end + describe "connect_timeout" do + it "is not set unless it's specified" do + curb.expects(:connect_timeout=).never + adapter.get(basic_request) + end - it "should be set if specified" do - request = basic_request { |request| request.open_timeout = 30 } + it "is set if specified" do + request = basic_request { |request| request.open_timeout = 30 } - curb.expects(:connect_timeout=).with(30) - adapter.get(request) + curb.expects(:connect_timeout=).with(30) + adapter.get(request) + end end - end - describe "headers" do - it "should always be set" do - curb.expects(:headers=).with({}) - adapter.get(basic_request) + describe "headers" do + it "is always set" do + curb.expects(:headers=).with({}) + adapter.get(basic_request) + end end - end - describe "verbose" do - it "should always be set to false" do - curb.expects(:verbose=).with(false) - adapter.get(basic_request) + describe "verbose" do + it "is always set to false" do + curb.expects(:verbose=).with(false) + adapter.get(basic_request) + end end - end - describe "http_auth_types" do - it "should be set to :basic for HTTP basic auth" do - request = basic_request { |request| request.auth.basic "username", "password" } + describe "http_auth_types" do + it "is set to :basic for HTTP basic auth" do + request = basic_request { |request| request.auth.basic "username", "password" } - curb.expects(:http_auth_types=).with(:basic) - adapter.get(request) - end + curb.expects(:http_auth_types=).with(:basic) + adapter.get(request) + end - it "should be set to :digest for HTTP digest auth" do - request = basic_request { |request| request.auth.digest "username", "password" } + it "is set to :digest for HTTP digest auth" do + request = basic_request { |request| request.auth.digest "username", "password" } - curb.expects(:http_auth_types=).with(:digest) - adapter.get(request) + curb.expects(:http_auth_types=).with(:digest) + adapter.get(request) + end end - end - describe "username and password" do - it "should be set for HTTP basic auth" do - request = basic_request { |request| request.auth.basic "username", "password" } + describe "username and password" do + it "is set for HTTP basic auth" do + request = basic_request { |request| request.auth.basic "username", "password" } - curb.expects(:username=).with("username") - curb.expects(:password=).with("password") - adapter.get(request) - end + curb.expects(:username=).with("username") + curb.expects(:password=).with("password") + adapter.get(request) + end - it "should be set for HTTP digest auth" do - request = basic_request { |request| request.auth.digest "username", "password" } + it "is set for HTTP digest auth" do + request = basic_request { |request| request.auth.digest "username", "password" } - curb.expects(:username=).with("username") - curb.expects(:password=).with("password") - adapter.get(request) + curb.expects(:username=).with("username") + curb.expects(:password=).with("password") + adapter.get(request) + end end - end - context "(for SSL client auth)" do - let(:ssl_auth_request) do - basic_request do |request| - request.auth.ssl.cert_key_file = "spec/fixtures/client_key.pem" - request.auth.ssl.cert_file = "spec/fixtures/client_cert.pem" + context "(for SSL client auth)" do + let(:ssl_auth_request) do + basic_request do |request| + request.auth.ssl.cert_key_file = "spec/fixtures/client_key.pem" + request.auth.ssl.cert_file = "spec/fixtures/client_cert.pem" + end end - end - it "cert_key, cert and ssl_verify_peer should be set" do - curb.expects(:cert_key=).with(ssl_auth_request.auth.ssl.cert_key_file) - curb.expects(:cert=).with(ssl_auth_request.auth.ssl.cert_file) - curb.expects(:ssl_verify_peer=).with(true) - curb.expects(:certtype=).with(ssl_auth_request.auth.ssl.cert_type.to_s.upcase) + it "cert_key, cert and ssl_verify_peer should be set" do + curb.expects(:cert_key=).with(ssl_auth_request.auth.ssl.cert_key_file) + curb.expects(:cert=).with(ssl_auth_request.auth.ssl.cert_file) + curb.expects(:ssl_verify_peer=).with(true) + curb.expects(:certtype=).with(ssl_auth_request.auth.ssl.cert_type.to_s.upcase) - adapter.get(ssl_auth_request) - end + adapter.get(ssl_auth_request) + end - it "should set the cert_type to DER if specified" do - ssl_auth_request.auth.ssl.cert_type = :der - curb.expects(:certtype=).with(:der.to_s.upcase) + it "sets the cert_type to DER if specified" do + ssl_auth_request.auth.ssl.cert_type = :der + curb.expects(:certtype=).with(:der.to_s.upcase) - adapter.get(ssl_auth_request) - end + adapter.get(ssl_auth_request) + end - it "should set the cacert if specified" do - ssl_auth_request.auth.ssl.ca_cert_file = "spec/fixtures/client_cert.pem" - curb.expects(:cacert=).with(ssl_auth_request.auth.ssl.ca_cert_file) + it "sets the cacert if specified" do + ssl_auth_request.auth.ssl.ca_cert_file = "spec/fixtures/client_cert.pem" + curb.expects(:cacert=).with(ssl_auth_request.auth.ssl.ca_cert_file) - adapter.get(ssl_auth_request) + adapter.get(ssl_auth_request) + end end end - end - def basic_request - request = HTTPI::Request.new :url => "http://example.com" - yield request if block_given? - request - end + def basic_request + request = HTTPI::Request.new :url => "http://example.com" + yield request if block_given? + request + end + end end