|
1 | 1 | require 'spec_helper' |
2 | 2 |
|
3 | | -describe Mongo::Socket::SSL do |
| 3 | +describe Mongo::Socket::SSL, if: running_ssl? do |
4 | 4 |
|
5 | | - describe '#connect!', if: running_ssl? do |
6 | | - |
7 | | - let(:socket) do |
8 | | - described_class.new(*DEFAULT_ADDRESS.split(":"), DEFAULT_ADDRESS.split(":")[0], 5, Socket::PF_INET, options) |
9 | | - end |
| 5 | + let(:socket) do |
| 6 | + described_class.new(*DEFAULT_ADDRESS.split(":"), DEFAULT_ADDRESS.split(":")[0], 5, Socket::PF_INET, options) |
| 7 | + end |
10 | 8 |
|
11 | | - context 'when a certificate is provided' do |
| 9 | + let(:options) do |
| 10 | + { |
| 11 | + :ssl => true, |
| 12 | + :ssl_cert => CLIENT_PEM, |
| 13 | + :ssl_key => CLIENT_PEM, |
| 14 | + :ssl_verify => false |
| 15 | + } |
| 16 | + end |
12 | 17 |
|
13 | | - let(:options) do |
14 | | - { |
15 | | - :ssl => true, |
16 | | - :ssl_cert => CLIENT_PEM, |
17 | | - :ssl_key => CLIENT_PEM, |
18 | | - :ssl_verify => false |
19 | | - } |
20 | | - end |
| 18 | + describe '#connect!' do |
21 | 19 |
|
| 20 | + context 'when a certificate is provided' do |
22 | 21 |
|
23 | 22 | context 'when connecting the tcp socket is successful' do |
24 | 23 |
|
|
55 | 54 | context 'when a bad certificate is provided' do |
56 | 55 |
|
57 | 56 | let(:options) do |
58 | | - { |
59 | | - :ssl => true, |
60 | | - :ssl_cert => CLIENT_PEM, |
61 | | - :ssl_key => CRL_PEM, |
62 | | - :ssl_verify => false |
63 | | - } |
| 57 | + super().merge({ |
| 58 | + :ssl_key => CRL_PEM |
| 59 | + }) |
64 | 60 | end |
65 | 61 |
|
66 | 62 | it 'raises an exception' do |
|
73 | 69 | context 'when a CA certificate is provided', if: testing_ssl_locally? do |
74 | 70 |
|
75 | 71 | let(:options) do |
76 | | - { |
77 | | - :ssl => true, |
78 | | - :ssl_cert => CLIENT_PEM, |
79 | | - :ssl_key => CLIENT_PEM, |
80 | | - :ssl_ca_cert => CA_PEM, |
81 | | - :ssl_verify => true |
82 | | - } |
| 72 | + super().merge({ |
| 73 | + :ssl_ca_cert => CA_PEM, |
| 74 | + :ssl_verify => true |
| 75 | + }) |
83 | 76 | end |
84 | 77 |
|
85 | 78 | before do |
|
94 | 87 | context 'when a CA certificate is not provided', if: testing_ssl_locally? do |
95 | 88 |
|
96 | 89 | let(:options) do |
97 | | - { |
98 | | - :ssl => true, |
99 | | - :ssl_cert => CLIENT_PEM, |
100 | | - :ssl_key => CLIENT_PEM, |
101 | | - :ssl_verify => true |
102 | | - } |
| 90 | + super().merge({ |
| 91 | + :ssl_verify => true |
| 92 | + }) |
103 | 93 | end |
104 | 94 |
|
105 | 95 | before do |
|
115 | 105 | context 'when ssl_verify is not specified', if: testing_ssl_locally? do |
116 | 106 |
|
117 | 107 | let(:options) do |
118 | | - { |
119 | | - :ssl => true, |
120 | | - :ssl_cert => CLIENT_PEM, |
121 | | - :ssl_key => CLIENT_PEM, |
122 | | - :ssl_ca_cert => CA_PEM |
123 | | - } |
| 108 | + super().merge({ |
| 109 | + :ssl_ca_cert => CA_PEM |
| 110 | + }).tap { |options| options.delete(:ssl_verify) } |
124 | 111 | end |
125 | 112 |
|
126 | 113 | before do |
|
135 | 122 | context 'when ssl_verify is true', if: testing_ssl_locally? do |
136 | 123 |
|
137 | 124 | let(:options) do |
138 | | - { |
139 | | - :ssl => true, |
140 | | - :ssl_cert => CLIENT_PEM, |
141 | | - :ssl_key => CLIENT_PEM, |
142 | | - :ssl_ca_cert => CA_PEM, |
143 | | - :ssl_verify => true |
144 | | - } |
| 125 | + super().merge({ |
| 126 | + :ssl_ca_cert => CA_PEM, |
| 127 | + :ssl_verify => true |
| 128 | + }) |
145 | 129 | end |
146 | 130 |
|
147 | 131 | before do |
|
156 | 140 | context 'when ssl_verify is false' do |
157 | 141 |
|
158 | 142 | let(:options) do |
159 | | - { |
160 | | - :ssl => true, |
161 | | - :ssl_cert => CLIENT_PEM, |
162 | | - :ssl_key => CLIENT_PEM, |
163 | | - :ssl_ca_cert => 'invalid', |
164 | | - :ssl_verify => false |
165 | | - } |
| 143 | + super().merge({ |
| 144 | + :ssl_ca_cert => 'invalid', |
| 145 | + :ssl_verify => false |
| 146 | + }) |
166 | 147 | end |
167 | 148 |
|
168 | 149 | before do |
|
0 commit comments