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