Test search strategy config, detection, defaults
This commit is contained in:
Родитель
d7b83cd312
Коммит
42ffdb659c
|
@ -73,28 +73,45 @@ module GitHubLdapTestCases
|
|||
assert_equal "dc=github,dc=com", payload[:base]
|
||||
end
|
||||
|
||||
def test_membership_validator_default
|
||||
assert_equal :detect, @ldap.membership_validator
|
||||
def test_search_strategy_defaults
|
||||
assert_equal GitHub::Ldap::MembershipValidators::Recursive, @ldap.membership_validator
|
||||
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
|
||||
end
|
||||
|
||||
def test_membership_validator_configured_to_classic_strategy
|
||||
@ldap.configure_membership_validation_strategy :classic
|
||||
assert_equal :classic, @ldap.membership_validator
|
||||
def test_search_strategy_detects_active_directory
|
||||
caps = Net::LDAP::Entry.new
|
||||
caps[:supportedcapabilities] = [GitHub::Ldap::ACTIVE_DIRECTORY_V61_R2_OID]
|
||||
|
||||
@ldap.stub :capabilities, caps do
|
||||
@ldap.configure_search_strategy :detect
|
||||
|
||||
assert_equal GitHub::Ldap::MembershipValidators::ActiveDirectory, @ldap.membership_validator
|
||||
assert_equal GitHub::Ldap::MemberSearch::ActiveDirectory, @ldap.member_search_strategy
|
||||
end
|
||||
end
|
||||
|
||||
def test_membership_validator_configured_to_recursive_strategy
|
||||
@ldap.configure_membership_validation_strategy :recursive
|
||||
assert_equal :recursive, @ldap.membership_validator
|
||||
def test_search_strategy_configured_to_classic
|
||||
@ldap.configure_search_strategy :classic
|
||||
assert_equal GitHub::Ldap::MembershipValidators::Classic, @ldap.membership_validator
|
||||
assert_equal GitHub::Ldap::MemberSearch::Classic, @ldap.member_search_strategy
|
||||
end
|
||||
|
||||
def test_membership_validator_configured_to_active_directory_strategy
|
||||
@ldap.configure_membership_validation_strategy :active_directory
|
||||
assert_equal :active_directory, @ldap.membership_validator
|
||||
def test_search_strategy_configured_to_recursive
|
||||
@ldap.configure_search_strategy :recursive
|
||||
assert_equal GitHub::Ldap::MembershipValidators::Recursive, @ldap.membership_validator
|
||||
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
|
||||
end
|
||||
|
||||
def test_membership_validator_misconfigured_to_unrecognized_strategy_falls_back_to_default
|
||||
@ldap.configure_membership_validation_strategy :unknown
|
||||
assert_equal :detect, @ldap.membership_validator
|
||||
def test_search_strategy_configured_to_active_directory
|
||||
@ldap.configure_search_strategy :active_directory
|
||||
assert_equal GitHub::Ldap::MembershipValidators::ActiveDirectory, @ldap.membership_validator
|
||||
assert_equal GitHub::Ldap::MemberSearch::ActiveDirectory, @ldap.member_search_strategy
|
||||
end
|
||||
|
||||
def test_search_strategy_misconfigured_to_unrecognized_strategy_falls_back_to_default
|
||||
@ldap.configure_search_strategy :unknown
|
||||
assert_equal GitHub::Ldap::MembershipValidators::Recursive, @ldap.membership_validator
|
||||
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
|
||||
end
|
||||
|
||||
def test_capabilities
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
require_relative '../test_helper'
|
||||
|
||||
# NOTE: Since this strategy is targeted at detecting ActiveDirectory
|
||||
# capabilities, and we don't have AD setup in CI, we stub out actual queries
|
||||
# and test against what AD *would* respond with.
|
||||
|
||||
class GitHubLdapDetectMemberSearchTest < GitHub::Ldap::Test
|
||||
include GitHub::Ldap::Capabilities
|
||||
|
||||
def setup
|
||||
@ldap = GitHub::Ldap.new(options.merge(search_domains: %w(dc=github,dc=com)))
|
||||
@domain = @ldap.domain("dc=github,dc=com")
|
||||
@entry = @domain.user?('user1')
|
||||
@strategy = GitHub::Ldap::MemberSearch::Detect.new(@ldap)
|
||||
end
|
||||
|
||||
def test_defers_to_configured_strategy
|
||||
@ldap.configure_member_search_strategy(:classic)
|
||||
|
||||
assert_kind_of GitHub::Ldap::MemberSearch::Classic, @strategy.strategy
|
||||
end
|
||||
|
||||
def test_detects_active_directory
|
||||
caps = Net::LDAP::Entry.new
|
||||
caps[:supportedcapabilities] = [ACTIVE_DIRECTORY_V61_R2_OID]
|
||||
|
||||
@ldap.stub :capabilities, caps do
|
||||
assert_kind_of GitHub::Ldap::MemberSearch::ActiveDirectory,
|
||||
@strategy.strategy
|
||||
end
|
||||
end
|
||||
|
||||
def test_falls_back_to_recursive
|
||||
caps = Net::LDAP::Entry.new
|
||||
caps[:supportedcapabilities] = []
|
||||
|
||||
@ldap.stub :capabilities, caps do
|
||||
assert_kind_of GitHub::Ldap::MemberSearch::Recursive,
|
||||
@strategy.strategy
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,50 +0,0 @@
|
|||
require_relative '../test_helper'
|
||||
|
||||
# NOTE: Since this strategy is targeted at detecting ActiveDirectory
|
||||
# capabilities, and we don't have AD setup in CI, we stub out actual queries
|
||||
# and test against what AD *would* respond with.
|
||||
|
||||
class GitHubLdapDetectMembershipValidatorsTest < GitHub::Ldap::Test
|
||||
include GitHub::Ldap::Capabilities
|
||||
|
||||
def setup
|
||||
@ldap = GitHub::Ldap.new(options.merge(search_domains: %w(dc=github,dc=com)))
|
||||
@domain = @ldap.domain("dc=github,dc=com")
|
||||
@entry = @domain.user?('user1')
|
||||
@validator = GitHub::Ldap::MembershipValidators::Detect
|
||||
end
|
||||
|
||||
def make_validator(groups)
|
||||
groups = @domain.groups(groups)
|
||||
@validator.new(@ldap, groups)
|
||||
end
|
||||
|
||||
def test_defers_to_configured_strategy
|
||||
@ldap.configure_membership_validation_strategy(:classic)
|
||||
validator = make_validator(%w(group))
|
||||
|
||||
assert_kind_of GitHub::Ldap::MembershipValidators::Classic, validator.strategy
|
||||
end
|
||||
|
||||
def test_detects_active_directory
|
||||
caps = Net::LDAP::Entry.new
|
||||
caps[:supportedcapabilities] = [ACTIVE_DIRECTORY_V61_R2_OID]
|
||||
|
||||
validator = make_validator(%w(group))
|
||||
@ldap.stub :capabilities, caps do
|
||||
assert_kind_of GitHub::Ldap::MembershipValidators::ActiveDirectory,
|
||||
validator.strategy
|
||||
end
|
||||
end
|
||||
|
||||
def test_falls_back_to_recursive
|
||||
caps = Net::LDAP::Entry.new
|
||||
caps[:supportedcapabilities] = []
|
||||
|
||||
validator = make_validator(%w(group))
|
||||
@ldap.stub :capabilities, caps do
|
||||
assert_kind_of GitHub::Ldap::MembershipValidators::Recursive,
|
||||
validator.strategy
|
||||
end
|
||||
end
|
||||
end
|
Загрузка…
Ссылка в новой задаче