1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
# -*- encoding: utf-8 -*-
if Kernel.respond_to?(:require_relative)
require_relative("test_helper")
else
$:.unshift(File.dirname(__FILE__))
require 'test_helper'
end
=begin
Main class for testing Stomp::SSLParams.
=end
class TestSSL < Test::Unit::TestCase
include TestBase
def setup
@conn = get_ssl_connection()
@tssdbg = ENV['TSSDBG'] || ENV['TDBGALL'] ? true : false
end
def teardown
@conn.disconnect if @conn && @conn.open? # allow tests to disconnect
end
#
def test_ssl_0000
mn = "test_ssl_0000" if @tssdbg
p [ "01", mn, "starts" ] if @tssdbg
assert @conn.open?
p [ "99", mn, "ends" ] if @tssdbg
end
# Test SSLParams basic.
def test_ssl_0010_parms
mn = "test_ssl_0010_parms" if @tssdbg
p [ "01", mn, "starts" ] if @tssdbg
ssl_params = Stomp::SSLParams.new
assert ssl_params.ts_files.nil?
assert ssl_params.cert_file.nil?
assert ssl_params.key_file.nil?
assert ssl_params.fsck.nil?
p [ "99", mn, "ends" ] if @tssdbg
end
# Test using correct parameters.
def test_ssl_0020_noraise
mn = "test_ssl_0020_noraise" if @tssdbg
p [ "01", mn, "starts" ] if @tssdbg
_ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_file => "dummy2")
_ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_text => "dummy3")
_ = Stomp::SSLParams.new(:cert_text => "dummy1", :key_file => "dummy2")
_ = Stomp::SSLParams.new(:cert_text => "dummy4", :key_text => "dummy3")
_ = Stomp::SSLParams.new(:ts_files => "dummyts1")
_ = Stomp::SSLParams.new(:ts_files => "dummyts1",
:cert_file => "dummy1", :key_file => "dummy2")
p [ "99", mn, "ends" ] if @tssdbg
end
# Test using incorrect / incomplete parameters.
def test_ssl_0030_raise
mn = "test_ssl_0030_raise" if @tssdbg
p [ "01", mn, "starts" ] if @tssdbg
key_text = '-----BEGIN PRIVATE KEY-----
fake_key
-----END PRIVATE KEY-----'
cert_text = '------BEGIN CERTIFICATE-----
fake_cert
------END CERTIFICATE-----'
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:cert_file => "dummy1")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:cert_text => cert_text)
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:key_file => "dummy2")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:key_text => key_text)
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:cert_text => cert_text, :cert_file => "dummy1")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:key_text => key_text, :cert_text => cert_text, :cert_file => "dummy1")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:key_file => "dummy2", :cert_text => cert_text, :cert_file => "dummy1")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:key_text => key_text, :key_file => "dummy2")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_text => key_text, :key_file => "dummy2")
}
assert_raise(Stomp::Error::SSLClientParamsError) {
_ = Stomp::SSLParams.new(:cert_text => cert_text, :key_text => key_text, :key_file => "dummy2")
}
p [ "99", mn, "ends" ] if @tssdbg
end
# Test that :fsck works.
def test_ssl_0040_fsck
mn = "test_ssl_0040_fsck" if @tssdbg
p [ "01", mn, "starts" ] if @tssdbg
assert_raise(Stomp::Error::SSLNoCertFileError) {
_ = Stomp::SSLParams.new(:cert_file => "dummy1",
:key_file => "dummy2", :fsck => true)
}
assert_raise(Stomp::Error::SSLNoKeyFileError) {
_ = Stomp::SSLParams.new(:cert_file => __FILE__,
:key_file => "dummy2", :fsck => true)
}
assert_raise(Stomp::Error::SSLNoTruststoreFileError) {
_ = Stomp::SSLParams.new(:ts_files => "/tmp/not-likely-here.txt",
:fsck => true)
}
p [ "99", mn, "ends" ] if @tssdbg
end
#
end if ENV['STOMP_TESTSSL']
|