2017-05-12 15:16:55 -04:00
|
|
|
require_relative "helper"
|
2012-11-30 07:47:47 -05:00
|
|
|
|
2020-07-05 21:57:35 -04:00
|
|
|
require "puma/minissl" if ::Puma::HAS_SSL
|
2016-11-22 10:05:49 -05:00
|
|
|
|
|
|
|
class TestMiniSSL < Minitest::Test
|
2012-11-30 07:47:47 -05:00
|
|
|
|
2016-11-22 19:27:30 -05:00
|
|
|
if Puma.jruby?
|
2014-05-05 17:30:15 -04:00
|
|
|
def test_raises_with_invalid_keystore_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
2012-11-30 07:47:47 -05:00
|
|
|
|
2016-11-22 10:05:49 -05:00
|
|
|
exception = assert_raises(ArgumentError) { ctx.keystore = "/no/such/keystore" }
|
2022-04-02 17:19:21 -04:00
|
|
|
assert_equal("Keystore file '/no/such/keystore' does not exist", exception.message)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_raises_with_unreadable_keystore_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
|
|
|
|
|
|
|
File.stub(:exist?, true) do
|
|
|
|
File.stub(:readable?, false) do
|
|
|
|
exception = assert_raises(ArgumentError) { ctx.keystore = "/unreadable/keystore" }
|
|
|
|
assert_equal("Keystore file '/unreadable/keystore' is not readable", exception.message)
|
|
|
|
end
|
|
|
|
end
|
2014-05-05 17:30:15 -04:00
|
|
|
end
|
|
|
|
else
|
|
|
|
def test_raises_with_invalid_key_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
2012-11-30 07:47:47 -05:00
|
|
|
|
2016-11-22 10:05:49 -05:00
|
|
|
exception = assert_raises(ArgumentError) { ctx.key = "/no/such/key" }
|
2022-04-02 17:19:21 -04:00
|
|
|
assert_equal("Key file '/no/such/key' does not exist", exception.message)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_raises_with_unreadable_key_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
|
|
|
|
|
|
|
File.stub(:exist?, true) do
|
|
|
|
File.stub(:readable?, false) do
|
|
|
|
exception = assert_raises(ArgumentError) { ctx.key = "/unreadable/key" }
|
|
|
|
assert_equal("Key file '/unreadable/key' is not readable", exception.message)
|
|
|
|
end
|
|
|
|
end
|
2014-05-05 17:30:15 -04:00
|
|
|
end
|
2012-11-30 07:47:47 -05:00
|
|
|
|
2014-05-05 17:30:15 -04:00
|
|
|
def test_raises_with_invalid_cert_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
2012-11-30 07:47:47 -05:00
|
|
|
|
2016-11-22 10:05:49 -05:00
|
|
|
exception = assert_raises(ArgumentError) { ctx.cert = "/no/such/cert" }
|
2022-04-02 17:19:21 -04:00
|
|
|
assert_equal("Cert file '/no/such/cert' does not exist", exception.message)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_raises_with_unreadable_cert_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
|
|
|
|
|
|
|
File.stub(:exist?, true) do
|
|
|
|
File.stub(:readable?, false) do
|
|
|
|
exception = assert_raises(ArgumentError) { ctx.key = "/unreadable/cert" }
|
|
|
|
assert_equal("Key file '/unreadable/cert' is not readable", exception.message)
|
|
|
|
end
|
|
|
|
end
|
2014-05-05 17:30:15 -04:00
|
|
|
end
|
2021-10-31 09:59:21 -04:00
|
|
|
|
|
|
|
def test_raises_with_invalid_key_pem
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
|
|
|
|
|
|
|
exception = assert_raises(ArgumentError) { ctx.key_pem = nil }
|
|
|
|
assert_equal("'key_pem' is not a String", exception.message)
|
|
|
|
end
|
|
|
|
|
2022-04-02 17:19:21 -04:00
|
|
|
def test_raises_with_unreadable_ca_file
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
|
|
|
|
|
|
|
File.stub(:exist?, true) do
|
|
|
|
File.stub(:readable?, false) do
|
|
|
|
exception = assert_raises(ArgumentError) { ctx.ca = "/unreadable/cert" }
|
|
|
|
assert_equal("ca file '/unreadable/cert' is not readable", exception.message)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2021-10-31 09:59:21 -04:00
|
|
|
def test_raises_with_invalid_cert_pem
|
|
|
|
ctx = Puma::MiniSSL::Context.new
|
|
|
|
|
|
|
|
exception = assert_raises(ArgumentError) { ctx.cert_pem = nil }
|
|
|
|
assert_equal("'cert_pem' is not a String", exception.message)
|
|
|
|
end
|
2014-05-05 17:30:15 -04:00
|
|
|
end
|
2020-07-05 21:57:35 -04:00
|
|
|
end if ::Puma::HAS_SSL
|