From 29dd6c45bc2579d012ac78ba3100a2485c78ff1d Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 15 Jul 2024 18:42:54 +0200 Subject: gpgv: Add IsAssertedPubKeyAlgo() function This checks whether a public key algorithm is asserted. --- test/libapt/assert_pubkeyalgo_test.cc | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 test/libapt/assert_pubkeyalgo_test.cc (limited to 'test') diff --git a/test/libapt/assert_pubkeyalgo_test.cc b/test/libapt/assert_pubkeyalgo_test.cc new file mode 100644 index 000000000..88a070bbe --- /dev/null +++ b/test/libapt/assert_pubkeyalgo_test.cc @@ -0,0 +1,56 @@ +#include + +#include +#include + +#include "common.h" + +TEST(AssertPubKeyAlgo_Test, test) +{ + EXPECT_TRUE(IsAssertedPubKeyAlgo("rsa2048", ">=rsa2048")); + _error->DumpErrors(); + EXPECT_TRUE(_error->empty()); + + EXPECT_TRUE(IsAssertedPubKeyAlgo("rsa2048", "another,>=rsa2048")); + EXPECT_TRUE(_error->empty()); + + EXPECT_FALSE(IsAssertedPubKeyAlgo("rsa2048", ">=rsa2049")); + EXPECT_TRUE(_error->empty()); + + EXPECT_TRUE(IsAssertedPubKeyAlgo("ed25519", ">=rsa2048,ed25519")); + EXPECT_TRUE(_error->empty()); +} + +TEST(AssertPubKeyAlgo_Test, CanOnlyCompareRSA) +{ + std::string msg; + EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ">=ed25519")); + EXPECT_TRUE(_error->PopMessage(msg)); + EXPECT_EQ("Unrecognized public key specification '>=ed25519' in option >=ed25519", msg); + EXPECT_TRUE(_error->empty()); +} + +TEST(AssertPubKeyAlgo_Test, EmptyOption) +{ + std::string msg; + EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", "")); + EXPECT_TRUE(_error->empty()); + + EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ",")); + EXPECT_TRUE(_error->PopMessage(msg)); + EXPECT_EQ("Empty item in public key assertion string option ,", msg); + EXPECT_TRUE(_error->empty()); + + EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", "moo,")); + EXPECT_TRUE(_error->empty()); + + EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", "moo,,")); + EXPECT_TRUE(_error->PopMessage(msg)); + EXPECT_EQ("Empty item in public key assertion string option moo,,", msg); + EXPECT_TRUE(_error->empty()); + + EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ",moo")); + EXPECT_TRUE(_error->PopMessage(msg)); + EXPECT_EQ("Empty item in public key assertion string option ,moo", msg); + EXPECT_TRUE(_error->empty()); +} -- cgit v1.2.3-70-g09d2