Gem version 1.4.10
[stomp.git] / test / test_ssl.rb
blobcb55657313f931bc2db3db5a609823f9f20cf324
1 # -*- encoding: utf-8 -*-
3 if Kernel.respond_to?(:require_relative)
4   require_relative("test_helper")
5 else
6   $:.unshift(File.dirname(__FILE__))
7   require 'test_helper'
8 end
10 =begin
12   Main class for testing Stomp::SSLParams.
14 =end
15 class TestSSL < Test::Unit::TestCase
16   include TestBase
17   
18   def setup
19     @conn = get_ssl_connection()
20     @tssdbg = ENV['TSSDBG'] || ENV['TDBGALL']  ? true : false 
21   end
23   def teardown
24     @conn.disconnect if @conn && @conn.open? # allow tests to disconnect
25   end
26   #
27   def test_ssl_0000
28     mn = "test_ssl_0000" if @tssdbg
29     p [ "01", mn, "starts" ] if @tssdbg
30     assert @conn.open?
31     p [ "99", mn, "ends" ] if @tssdbg
32   end
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
45   end
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
60   end
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-----
68     fake_key
69     -----END PRIVATE KEY-----'
70     cert_text = '------BEGIN CERTIFICATE-----
71     fake_cert
72     ------END CERTIFICATE-----'
74     assert_raise(Stomp::Error::SSLClientParamsError) {
75       _ = Stomp::SSLParams.new(:cert_file => "dummy1")
76     }
77     assert_raise(Stomp::Error::SSLClientParamsError) {
78       _ = Stomp::SSLParams.new(:cert_text => cert_text)
79     }
80     assert_raise(Stomp::Error::SSLClientParamsError) {
81       _ = Stomp::SSLParams.new(:key_file => "dummy2")
82     }
83     assert_raise(Stomp::Error::SSLClientParamsError) {
84       _ = Stomp::SSLParams.new(:key_text => key_text)
85     }
86     assert_raise(Stomp::Error::SSLClientParamsError) {
87       _ = Stomp::SSLParams.new(:cert_text => cert_text, :cert_file => "dummy1")
88     }
89     assert_raise(Stomp::Error::SSLClientParamsError) {
90       _ = Stomp::SSLParams.new(:key_text => key_text, :cert_text => cert_text, :cert_file => "dummy1")
91     }
92     assert_raise(Stomp::Error::SSLClientParamsError) {
93       _ = Stomp::SSLParams.new(:key_file => "dummy2", :cert_text => cert_text, :cert_file => "dummy1")
94     }
95     assert_raise(Stomp::Error::SSLClientParamsError) {
96       _ = Stomp::SSLParams.new(:key_text => key_text, :key_file => "dummy2")
97     }
98     assert_raise(Stomp::Error::SSLClientParamsError) {
99       _ = Stomp::SSLParams.new(:cert_file => "dummy1", :key_text => key_text, :key_file => "dummy2")
100     }
101     assert_raise(Stomp::Error::SSLClientParamsError) {
102       _ = Stomp::SSLParams.new(:cert_text => cert_text, :key_text => key_text, :key_file => "dummy2")
103     }
104     p [ "99", mn, "ends" ] if @tssdbg
105   end
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)
115     }
116     assert_raise(Stomp::Error::SSLNoKeyFileError) {
117       _ = Stomp::SSLParams.new(:cert_file => __FILE__,
118         :key_file => "dummy2", :fsck => true)
119     }
120     assert_raise(Stomp::Error::SSLNoTruststoreFileError) {
121       _ = Stomp::SSLParams.new(:ts_files => "/tmp/not-likely-here.txt", 
122         :fsck => true)
123     }
124     p [ "99", mn, "ends" ] if @tssdbg
125   end
127   #
128 end if ENV['STOMP_TESTSSL']