test/integration/test_bind.rb in net-ldap-0.16.1 vs test/integration/test_bind.rb in net-ldap-0.16.2
- old
+ new
@@ -1,15 +1,19 @@
require_relative '../test_helper'
class TestBindIntegration < LDAPIntegrationTestCase
+
+ INTEGRATION_HOSTNAME = 'ldap.example.org'.freeze
+
def test_bind_success
assert @ldap.bind(BIND_CREDS),
@ldap.get_operation_result.inspect
end
def test_bind_timeout
- @ldap.port = 8389
+ @ldap.host = "10.255.255.1" # non-routable IP
+
error = assert_raise Net::LDAP::Error do
@ldap.bind BIND_CREDS
end
msgs = ['Operation timed out - user specified timeout',
'Connection timed out - user specified timeout']
@@ -32,20 +36,21 @@
refute @ldap.bind(BIND_CREDS.merge(password: "not my password")),
@ldap.get_operation_result.inspect
end
def test_bind_tls_with_cafile
+ @ldap.host = INTEGRATION_HOSTNAME
@ldap.encryption(
method: :start_tls,
tls_options: TLS_OPTS.merge(ca_file: CA_FILE),
)
assert @ldap.bind(BIND_CREDS),
@ldap.get_operation_result.inspect
end
def test_bind_tls_with_bad_hostname_verify_none_no_ca_passes
- @ldap.host = '127.0.0.1'
+ @ldap.host = INTEGRATION_HOSTNAME
@ldap.encryption(
method: :start_tls,
tls_options: { verify_mode: OpenSSL::SSL::VERIFY_NONE },
)
assert @ldap.bind(BIND_CREDS),
@@ -110,22 +115,22 @@
error.message,
)
end
def test_bind_tls_with_valid_hostname_default_opts_passes
- @ldap.host = 'localhost'
+ @ldap.host = INTEGRATION_HOSTNAME
@ldap.encryption(
method: :start_tls,
tls_options: TLS_OPTS.merge(verify_mode: OpenSSL::SSL::VERIFY_PEER,
ca_file: CA_FILE),
)
assert @ldap.bind(BIND_CREDS),
@ldap.get_operation_result.inspect
end
def test_bind_tls_with_valid_hostname_just_verify_peer_ca_passes
- @ldap.host = 'localhost'
+ @ldap.host = INTEGRATION_HOSTNAME
@ldap.encryption(
method: :start_tls,
tls_options: { verify_mode: OpenSSL::SSL::VERIFY_PEER,
ca_file: CA_FILE },
)
@@ -144,29 +149,23 @@
"hostname \"#{@ldap.host}\" does not match the server certificate",
error.message,
)
end
- # The following depend on /etc/hosts hacking.
- # We can do that on CI, but it's less than cool on people's dev boxes
def test_bind_tls_with_multiple_hosts
- omit_unless ENV['TRAVIS'] == 'true'
-
@ldap.host = nil
- @ldap.hosts = [['ldap01.example.com', 389], ['ldap02.example.com', 389]]
+ @ldap.hosts = [[INTEGRATION_HOSTNAME, 389], [INTEGRATION_HOSTNAME, 389]]
@ldap.encryption(
method: :start_tls,
tls_options: TLS_OPTS.merge(verify_mode: OpenSSL::SSL::VERIFY_PEER,
ca_file: CA_FILE),
)
assert @ldap.bind(BIND_CREDS),
@ldap.get_operation_result.inspect
end
def test_bind_tls_with_multiple_bogus_hosts
- omit_unless ENV['TRAVIS'] == 'true'
-
@ldap.host = nil
@ldap.hosts = [['127.0.0.1', 389], ['bogus.example.com', 389]]
@ldap.encryption(
method: :start_tls,
tls_options: TLS_OPTS.merge(verify_mode: OpenSSL::SSL::VERIFY_PEER,
@@ -179,12 +178,10 @@
assert_equal("Unable to connect to any given server: ",
error.message.split("\n").shift)
end
def test_bind_tls_with_multiple_bogus_hosts_no_verification
- omit_unless ENV['TRAVIS'] == 'true'
-
@ldap.host = nil
@ldap.hosts = [['127.0.0.1', 389], ['bogus.example.com', 389]]
@ldap.encryption(
method: :start_tls,
tls_options: TLS_OPTS.merge(verify_mode: OpenSSL::SSL::VERIFY_NONE),
@@ -192,12 +189,10 @@
assert @ldap.bind(BIND_CREDS),
@ldap.get_operation_result.inspect
end
def test_bind_tls_with_multiple_bogus_hosts_ca_check_only_fails
- omit_unless ENV['TRAVIS'] == 'true'
-
@ldap.host = nil
@ldap.hosts = [['127.0.0.1', 389], ['bogus.example.com', 389]]
@ldap.encryption(
method: :start_tls,
tls_options: { ca_file: CA_FILE },
@@ -211,34 +206,17 @@
end
# This test is CI-only because we can't add the fixture CA
# to the system CA store on people's dev boxes.
def test_bind_tls_valid_hostname_system_ca_on_travis_passes
+ omit "not sure how to install custom CA cert in travis"
omit_unless ENV['TRAVIS'] == 'true'
+ @ldap.host = INTEGRATION_HOSTNAME
@ldap.encryption(
method: :start_tls,
tls_options: { verify_mode: OpenSSL::SSL::VERIFY_PEER },
)
assert @ldap.bind(BIND_CREDS),
@ldap.get_operation_result.inspect
- end
-
- # Inverse of the above! Don't run this on Travis, only on Vagrant.
- # Since Vagrant's hypervisor *won't* have the CA in the system
- # x509 store, we can assume validation will fail
- def test_bind_tls_valid_hostname_system_on_vagrant_fails
- omit_if ENV['TRAVIS'] == 'true'
-
- @ldap.encryption(
- method: :start_tls,
- tls_options: { verify_mode: OpenSSL::SSL::VERIFY_PEER },
- )
- error = assert_raise Net::LDAP::Error do
- @ldap.bind BIND_CREDS
- end
- assert_equal(
- "SSL_connect returned=1 errno=0 state=error: certificate verify failed",
- error.message,
- )
end
end