File: test_ssl.rb

package info (click to toggle)
ruby-stomp 1.4.10-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 832 kB
  • sloc: ruby: 8,595; sh: 77; makefile: 3
file content (129 lines) | stat: -rw-r--r-- 4,157 bytes parent folder | download | duplicates (3)
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']