Sha256: 174e62d0a9cc54a404fbd03f924c03aaa21ac475ec4fe91d9d0a298c35ac814c

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

# encoding: UTF-8

if RUBY_VERSION >= "1.9.3"
  require File.expand_path("helper", File.dirname(__FILE__))

  class SslTest < Test::Unit::TestCase

    include Helper::Client

    driver(:ruby) do

      def test_verified_ssl_connection
        RedisMock.start({ :ping => proc { "+PONG" } }, ssl_server_opts("trusted")) do |port|
          redis = Redis.new(:port => port, :ssl => true, :ssl_params => { :ca_file => ssl_ca_file })
          assert_equal redis.ping, "PONG"
        end
      end

      def test_unverified_ssl_connection
        assert_raise(OpenSSL::SSL::SSLError) do
          RedisMock.start({ :ping => proc { "+PONG" } }, ssl_server_opts("untrusted")) do |port|
            redis = Redis.new(:port => port, :ssl => true, :ssl_params => { :ca_file => ssl_ca_file })
            redis.ping
          end
        end
      end

    end

    driver(:hiredis, :synchrony) do

      def test_ssl_not_implemented_exception
        assert_raise(NotImplementedError) do
          RedisMock.start({ :ping => proc { "+PONG" } }, ssl_server_opts("trusted")) do |port|
            redis = Redis.new(:port => port, :ssl => true, :ssl_params => { :ca_file => ssl_ca_file })
            redis.ping
          end
        end
      end

    end

    private

    def ssl_server_opts(prefix)
      ssl_cert = File.join(cert_path, "#{prefix}-cert.crt")
      ssl_key  = File.join(cert_path, "#{prefix}-cert.key")

      {
        :ssl => true,
        :ssl_params => {
          :cert => OpenSSL::X509::Certificate.new(File.read(ssl_cert)),
          :key  => OpenSSL::PKey::RSA.new(File.read(ssl_key))
        }
      }
    end

    def ssl_ca_file
      File.join(cert_path, "trusted-ca.crt")
    end

    def cert_path
      File.expand_path("../support/ssl/", __FILE__)
    end
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
abaci-0.3.0 vendor/bundle/gems/redis-3.3.1/test/ssl_test.rb
redis-3.3.1 test/ssl_test.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/redis-3.3.0/test/ssl_test.rb
redis-3.3.0 test/ssl_test.rb