spec/settings/proxy_examples.rb in spidr-0.6.1 vs spec/settings/proxy_examples.rb in spidr-0.7.0

- old
+ new

@@ -14,53 +14,73 @@ it "should return the disabled proxy" do expect(subject.proxy).to be_disabled end it "should retain the default value" do - expect(subject.proxy.object_id).to be subject.proxy.object_id + expect(subject.proxy.object_id).to be(subject.proxy.object_id) end end context "when @proxy is set" do before do subject.instance_variable_set(:"@proxy",proxy) end it "should return the set @proxy" do - expect(subject.proxy).to be proxy + expect(subject.proxy).to be(proxy) end end end describe "proxy=" do context "when given a Proxy object" do let(:proxy) { Proxy.new(host: proxy_host, port: proxy_port) } - before do - subject.proxy = proxy - end + before { subject.proxy = proxy } it "should save it" do - expect(subject.proxy).to be proxy + expect(subject.proxy).to be(proxy) end end context "when given a Hash" do before do subject.proxy = {host: proxy_host, port: proxy_port} end it "should create a new Proxy object" do expect(subject.proxy).to be_kind_of(Proxy) - expect(subject.proxy[:host]).to be proxy_host - expect(subject.proxy[:port]).to be proxy_port + expect(subject.proxy[:host]).to be(proxy_host) + expect(subject.proxy[:port]).to be(proxy_port) end end - context "when given nil" do - before do - subject.proxy = nil + context "when given a URI::HTTP" do + let(:uri) { URI::HTTP.build(host: proxy_host, port: proxy_port) } + + before { subject.proxy = uri } + + it "should create a new Proxy object based on the URI" do + expect(subject.proxy).to be_kind_of(Proxy) + expect(subject.proxy[:host]).to eq(proxy_host) + expect(subject.proxy[:port]).to eq(proxy_port) end + end + + context "when given a String" do + let(:url) { "http://#{proxy_host}:#{proxy_port}" } + + before { subject.proxy = url } + + it "should parse the String as a URI and create a new Proxy object" do + expect(subject.proxy).to be_kind_of(Proxy) + expect(subject.proxy[:host]).to eq(proxy_host) + expect(subject.proxy[:port]).to eq(proxy_port) + end + end + + context "when given nil" do + before { subject.proxy = nil } it "should leave an empty proxy" do expect(subject.proxy).to be_kind_of(Proxy) expect(subject.proxy[:host]).to be_nil end