From: Francis Dupont Date: Sat, 16 Nov 2024 08:44:38 +0000 (+0100) Subject: [#3609] Checkpoint before rebase X-Git-Tag: Kea-2.7.5~63 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5485a3d27df2d60cec52f074e70700b2589cfcde;p=thirdparty%2Fkea.git [#3609] Checkpoint before rebase --- diff --git a/src/bin/agent/tests/ca_cfg_mgr_unittests.cc b/src/bin/agent/tests/ca_cfg_mgr_unittests.cc index a7b40c5567..7c9a6364f1 100644 --- a/src/bin/agent/tests/ca_cfg_mgr_unittests.cc +++ b/src/bin/agent/tests/ca_cfg_mgr_unittests.cc @@ -358,6 +358,11 @@ const char* AGENT_CONFIGS[] = { " \"user-context\": { \"comment\": \"Indirect comment\" },\n" " \"http-host\": \"betelgeuse\",\n" " \"http-port\": 8001,\n" + " \"http-headers\": [ {\n" + " \"comment\": \"HSTS header\",\n" + " \"name\": \"Strict-Transport-Security\",\n" + " \"value\": \"max-age=31536000\"\n" + " } ],\n" " \"authentication\": {\n" " \"comment\": \"basic HTTP authentication\",\n" " \"type\": \"basic\",\n" @@ -624,14 +629,23 @@ TEST_F(AgentParserTest, comments) { ASSERT_TRUE(ctx6->get("version")); EXPECT_EQ("1", ctx6->get("version")->str()); - // Check authentication comment. - const HttpAuthConfigPtr& auth = agent_ctx->getAuthConfig(); - ASSERT_TRUE(auth); - ConstElementPtr ctx7 = auth->getContext(); + // Check HTTP header comment. + const CfgHttpHeaders& headers = agent_ctx->getHttpHeaders(); + ASSERT_EQ(1, headers.size()); + ConstElementPtr ctx7 = headers[0].getContext(); ASSERT_TRUE(ctx7); ASSERT_EQ(1, ctx7->size()); ASSERT_TRUE(ctx7->get("comment")); - EXPECT_EQ("\"basic HTTP authentication\"", ctx7->get("comment")->str()); + EXPECT_EQ("\"HSTS header\"", ctx7->get("comment")->str()); + + // Check authentication comment. + const HttpAuthConfigPtr& auth = agent_ctx->getAuthConfig(); + ASSERT_TRUE(auth); + ConstElementPtr ctx8 = auth->getContext(); + ASSERT_TRUE(ctx8); + ASSERT_EQ(1, ctx8->size()); + ASSERT_TRUE(ctx8->get("comment")); + EXPECT_EQ("\"basic HTTP authentication\"", ctx8->get("comment")->str()); // Check basic HTTP authentication client comment. const BasicHttpAuthConfigPtr& basic_auth = @@ -639,18 +653,18 @@ TEST_F(AgentParserTest, comments) { ASSERT_TRUE(basic_auth); auto clients = basic_auth->getClientList(); ASSERT_EQ(2, clients.size()); - ConstElementPtr ctx8 = clients.front().getContext(); - ASSERT_TRUE(ctx8); - ASSERT_EQ(1, ctx8->size()); - ASSERT_TRUE(ctx8->get("comment")); - EXPECT_EQ("\"foo is authorized\"", ctx8->get("comment")->str()); - - // Check basic HTTP authentication client user context. - ConstElementPtr ctx9 = clients.back().getContext(); + ConstElementPtr ctx9 = clients.front().getContext(); ASSERT_TRUE(ctx9); ASSERT_EQ(1, ctx9->size()); - ASSERT_TRUE(ctx9->get("no password")); - EXPECT_EQ("true", ctx9->get("no password")->str()); + ASSERT_TRUE(ctx9->get("comment")); + EXPECT_EQ("\"foo is authorized\"", ctx9->get("comment")->str()); + + // Check basic HTTP authentication client user context. + ConstElementPtr ctx10 = clients.back().getContext(); + ASSERT_TRUE(ctx10); + ASSERT_EQ(1, ctx10->size()); + ASSERT_TRUE(ctx10->get("no password")); + EXPECT_EQ("true", ctx10->get("no password")->str()); } // This test checks if a config with TLS parameters is parsed properly. diff --git a/src/bin/dhcp4/tests/config_parser_unittest.cc b/src/bin/dhcp4/tests/config_parser_unittest.cc index 396b4ae9a4..d178dce589 100644 --- a/src/bin/dhcp4/tests/config_parser_unittest.cc +++ b/src/bin/dhcp4/tests/config_parser_unittest.cc @@ -246,6 +246,11 @@ const char* PARSER_CONFIGS[] = { " \"socket-type\": \"http\"," " \"socket-address\": \"::1\"," " \"socket-port\": 8000," + " \"http-headers\": [ {" + " \"comment\": \"HSTS header\"," + " \"name\": \"Strict-Transport-Security\"," + " \"value\": \"max-age=31536000\"" + " } ]," " \"authentication\": {" " \"comment\": \"basic HTTP authentication\"," " \"type\": \"basic\"," @@ -7110,6 +7115,18 @@ TEST_F(Dhcp4ParserTest, comments) { ASSERT_TRUE(ctx_socket->get("comment")); EXPECT_EQ("\"HTTP control socket\"", ctx_socket->get("comment")->str()); + // HTTP headers. + ConstElementPtr headers = socket->get("http-headers"); + ASSERT_TRUE(headers); + ASSERT_EQ(1, headers->size()); + ConstElementPtr header = headers->get(0); + ASSERT_TRUE(header); + ConstElementPtr ctx_header = header->get("user-context"); + ASSERT_TRUE(ctx_header); + ASSERT_EQ(1, ctx_header->size()); + ASSERT_TRUE(ctx_header->get("comment")); + EXPECT_EQ("\"HSTS header\"", ctx_header->get("comment")->str()); + // HTTP authentication. ConstElementPtr auth = socket->get("authentication"); ASSERT_TRUE(auth); diff --git a/src/bin/dhcp6/tests/config_parser_unittest.cc b/src/bin/dhcp6/tests/config_parser_unittest.cc index e91da6b796..c3f20bf3f4 100644 --- a/src/bin/dhcp6/tests/config_parser_unittest.cc +++ b/src/bin/dhcp6/tests/config_parser_unittest.cc @@ -327,6 +327,11 @@ const char* PARSER_CONFIGS[] = { " \"socket-type\": \"http\"," " \"socket-address\": \"127.0.0.1\"," " \"socket-port\": 8000," + " \"http-headers\": [ {" + " \"comment\": \"HSTS header\"," + " \"name\": \"Strict-Transport-Security\"," + " \"value\": \"max-age=31536000\"" + " } ]," " \"authentication\": {" " \"comment\": \"basic HTTP authentication\"," " \"type\": \"basic\"," @@ -7924,6 +7929,18 @@ TEST_F(Dhcp6ParserTest, comments) { ASSERT_TRUE(ctx_socket->get("comment")); EXPECT_EQ("\"HTTP control socket\"", ctx_socket->get("comment")->str()); + // HTTP headers. + ConstElementPtr headers = socket->get("http-headers"); + ASSERT_TRUE(headers); + ASSERT_EQ(1, headers->size()); + ConstElementPtr header = headers->get(0); + ASSERT_TRUE(header); + ConstElementPtr ctx_header = header->get("user-context"); + ASSERT_TRUE(ctx_header); + ASSERT_EQ(1, ctx_header->size()); + ASSERT_TRUE(ctx_header->get("comment")); + EXPECT_EQ("\"HSTS header\"", ctx_header->get("comment")->str()); + // HTTP authentication. ConstElementPtr auth = socket->get("authentication"); ASSERT_TRUE(auth);