1 # -*- encoding: utf-8 -*-
3 if Kernel.respond_to?(:require_relative)
4 require_relative("test_helper")
6 $:.unshift(File.dirname(__FILE__))
12 Main class for testing Stomp::SSLParams.
15 class TestSSL < Test::Unit::TestCase
19 @conn = get_ssl_connection()
20 @tssdbg = ENV['TSSDBG'] || ENV['TDBGALL'] ? true : false
24 @conn.disconnect if @conn && @conn.open? # allow tests to disconnect
28 mn = "test_ssl_0000" if @tssdbg
29 p [ "01", mn, "starts" ] if @tssdbg
31 p [ "99", mn, "ends" ] if @tssdbg
34 # Test SSLParams basic.
35 def test_ssl_0010_parms
36 mn = "test_ssl_0010_parms" if @tssdbg
37 p [ "01", mn, "starts" ] if @tssdbg
39 ssl_params = Stomp::SSLParams.new
40 assert ssl_params.ts_files.nil?
41 assert ssl_params.cert_file.nil?
42 assert ssl_params.key_file.nil?
43 assert ssl_params.fsck.nil?
44 p [ "99", mn, "ends" ] if @tssdbg
47 # Test using correct parameters.
48 def test_ssl_0020_noraise
49 mn = "test_ssl_0020_noraise" if @tssdbg
50 p [ "01", mn, "starts" ] if @tssdbg
52 _ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_file => "dummy2")
53 _ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_text => "dummy3")
54 _ = Stomp::SSLParams.new(:cert_text => "dummy1", :key_file => "dummy2")
55 _ = Stomp::SSLParams.new(:cert_text => "dummy4", :key_text => "dummy3")
56 _ = Stomp::SSLParams.new(:ts_files => "dummyts1")
57 _ = Stomp::SSLParams.new(:ts_files => "dummyts1",
58 :cert_file => "dummy1", :key_file => "dummy2")
59 p [ "99", mn, "ends" ] if @tssdbg
62 # Test using incorrect / incomplete parameters.
63 def test_ssl_0030_raise
64 mn = "test_ssl_0030_raise" if @tssdbg
65 p [ "01", mn, "starts" ] if @tssdbg
67 key_text = '-----BEGIN PRIVATE KEY-----
69 -----END PRIVATE KEY-----'
70 cert_text = '------BEGIN CERTIFICATE-----
72 ------END CERTIFICATE-----'
74 assert_raise(Stomp::Error::SSLClientParamsError) {
75 _ = Stomp::SSLParams.new(:cert_file => "dummy1")
77 assert_raise(Stomp::Error::SSLClientParamsError) {
78 _ = Stomp::SSLParams.new(:cert_text => cert_text)
80 assert_raise(Stomp::Error::SSLClientParamsError) {
81 _ = Stomp::SSLParams.new(:key_file => "dummy2")
83 assert_raise(Stomp::Error::SSLClientParamsError) {
84 _ = Stomp::SSLParams.new(:key_text => key_text)
86 assert_raise(Stomp::Error::SSLClientParamsError) {
87 _ = Stomp::SSLParams.new(:cert_text => cert_text, :cert_file => "dummy1")
89 assert_raise(Stomp::Error::SSLClientParamsError) {
90 _ = Stomp::SSLParams.new(:key_text => key_text, :cert_text => cert_text, :cert_file => "dummy1")
92 assert_raise(Stomp::Error::SSLClientParamsError) {
93 _ = Stomp::SSLParams.new(:key_file => "dummy2", :cert_text => cert_text, :cert_file => "dummy1")
95 assert_raise(Stomp::Error::SSLClientParamsError) {
96 _ = Stomp::SSLParams.new(:key_text => key_text, :key_file => "dummy2")
98 assert_raise(Stomp::Error::SSLClientParamsError) {
99 _ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_text => key_text, :key_file => "dummy2")
101 assert_raise(Stomp::Error::SSLClientParamsError) {
102 _ = Stomp::SSLParams.new(:cert_text => cert_text, :key_text => key_text, :key_file => "dummy2")
104 p [ "99", mn, "ends" ] if @tssdbg
107 # Test that :fsck works.
108 def test_ssl_0040_fsck
109 mn = "test_ssl_0040_fsck" if @tssdbg
110 p [ "01", mn, "starts" ] if @tssdbg
112 assert_raise(Stomp::Error::SSLNoCertFileError) {
113 _ = Stomp::SSLParams.new(:cert_file => "dummy1",
114 :key_file => "dummy2", :fsck => true)
116 assert_raise(Stomp::Error::SSLNoKeyFileError) {
117 _ = Stomp::SSLParams.new(:cert_file => __FILE__,
118 :key_file => "dummy2", :fsck => true)
120 assert_raise(Stomp::Error::SSLNoTruststoreFileError) {
121 _ = Stomp::SSLParams.new(:ts_files => "/tmp/not-likely-here.txt",
124 p [ "99", mn, "ends" ] if @tssdbg
128 end if ENV['STOMP_TESTSSL']