spec/network/ssl_spec.rb in ronin-support-0.5.0 vs spec/network/ssl_spec.rb in ronin-support-0.5.1
- old
+ new
@@ -15,6 +15,56 @@
it "should raise an exception for unknown verify modes" do
lambda { subject[:foo_bar] }.should raise_error
end
end
+
+ describe "helpers", :network do
+ let(:host) { 'github.com' }
+ let(:port) { 443 }
+
+ subject do
+ obj = Object.new
+ obj.extend described_class
+ obj
+ end
+
+ describe "#ssl_connect" do
+ it "should connect to an SSL protected port" do
+ lambda {
+ subject.ssl_connect(host,port)
+ }.should_not raise_error(OpenSSL::SSL::SSLError)
+ end
+
+ it "should return an OpenSSL::SSL::SSLSocket" do
+ socket = subject.ssl_connect(host,port)
+
+ socket.should be_kind_of(OpenSSL::SSL::SSLSocket)
+ end
+
+ context "when a block is given" do
+ it "should yield the OpenSSL::SSL::SSLSocket" do
+ socket = nil
+
+ subject.ssl_connect(host,port) do |yielded_socket|
+ socket = yielded_socket
+ end
+
+ socket.should be_kind_of(OpenSSL::SSL::SSLSocket)
+ end
+ end
+ end
+
+ describe "#ssl_session" do
+ it "should open then close a OpenSSL::SSL::SSLSocket" do
+ socket = nil
+
+ subject.ssl_session(host,port) do |yielded_socket|
+ socket = yielded_socket
+ end
+
+ socket.should be_kind_of(OpenSSL::SSL::SSLSocket)
+ socket.should be_closed
+ end
+ end
+ end
end