46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
#include "catch2/catch_test_macros.hpp"
|
|
#include <network/tls_policy.hpp>
|
|
#include <sstream>
|
|
|
|
#ifdef BOTAN_FOUND
|
|
TEST_CASE("tls_policy")
|
|
{
|
|
BiboumiTLSPolicy policy;
|
|
const auto default_minimum_signature_strength = policy.minimum_signature_strength();
|
|
const auto default_session_ticket_lifetime = policy.session_ticket_lifetime();
|
|
const auto default_minimum_rsa_bits = policy.minimum_rsa_bits();
|
|
|
|
policy.load("does not exist");
|
|
WHEN("we fail to load the file")
|
|
{
|
|
THEN("all values are the default ones")
|
|
{
|
|
CHECK(policy.minimum_signature_strength() == default_minimum_signature_strength);
|
|
CHECK(policy.minimum_rsa_bits() == default_minimum_rsa_bits);
|
|
}
|
|
AND_WHEN("we load a valid first file")
|
|
{
|
|
std::istringstream iss("minimum_signature_strength = 128\nminimum_rsa_bits=12\n");
|
|
policy.load(iss);
|
|
THEN("the specified values are updated, and the rest is still the default")
|
|
{
|
|
CHECK(policy.minimum_signature_strength() == 128);
|
|
CHECK(policy.minimum_rsa_bits() == 12);
|
|
CHECK(policy.session_ticket_lifetime() == default_session_ticket_lifetime);
|
|
}
|
|
AND_WHEN("we load a second file")
|
|
{
|
|
std::istringstream iss("minimum_signature_strength = 15");
|
|
policy.load(iss);
|
|
THEN("the specified values are updated, and the rest is untouched")
|
|
{
|
|
CHECK(policy.minimum_signature_strength() == 15);
|
|
CHECK(policy.minimum_rsa_bits() == 12);
|
|
CHECK(policy.session_ticket_lifetime() == default_session_ticket_lifetime);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|