1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #include "http/mutual_tls_meta.hpp"
4
5 #include <optional>
6 #include <string>
7 #include <vector>
8
9 #include <gtest/gtest.h>
10
11 namespace redfish
12 {
13 namespace
14 {
15
TEST(MetaParseSslUser,userTest)16 TEST(MetaParseSslUser, userTest)
17 {
18 std::string sslUser = "user:kawajiri/hostname.facebook.com";
19 EXPECT_EQ(mtlsMetaParseSslUser(sslUser), "kawajiri");
20 }
21
TEST(MetaParseSslUser,userNohostnameTest)22 TEST(MetaParseSslUser, userNohostnameTest)
23 {
24 // hostname is optional
25 std::string sslUser = "user:kawajiri";
26 EXPECT_EQ(mtlsMetaParseSslUser(sslUser), "kawajiri");
27 }
28
TEST(MetaParseSslUser,invalidUsers)29 TEST(MetaParseSslUser, invalidUsers)
30 {
31 std::vector<std::string> invalidSslUsers = {
32 "",
33 ":",
34 ":/",
35 "ijslakd",
36 "user:",
37 "user:/",
38 "user:/hostname.facebook.com",
39 "user:/hostname.facebook.c om",
40 "user: space/hostname.facebook.com",
41 "svc:",
42 "svc:/",
43 "svc:/hostname.facebook.com",
44 "host:/",
45 "host:unexpected_user/",
46 };
47
48 for (const std::string& sslUser : invalidSslUsers)
49 {
50 EXPECT_EQ(mtlsMetaParseSslUser(sslUser), std::nullopt);
51 }
52 }
53
54 } // namespace
55 } // namespace redfish
56