xref: /openbmc/bmcweb/test/http/mutual_tls_meta.cpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
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