1 #include "phosphor-ldap-config/utils.hpp"
2 
3 #include <ldap.h>
4 #include <netinet/in.h>
5 
6 #include <gtest/gtest.h>
7 
8 namespace phosphor
9 {
10 namespace ldap
11 {
12 constexpr auto ldapScheme = "ldap";
13 constexpr auto ldapsScheme = "ldaps";
14 
15 class TestUtil : public testing::Test
16 {
17   public:
18     TestUtil()
19     {
20         // Empty
21     }
22 };
23 
24 TEST_F(TestUtil, URIValidation)
25 {
26     std::string ipAddress = "ldap://0.0.0.0";
27     EXPECT_EQ(true, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
28 
29     ipAddress = "ldap://9.3.185.83";
30     EXPECT_EQ(true, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
31 
32     ipAddress = "ldaps://9.3.185.83";
33     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
34 
35     ipAddress = "ldap://9.3.a.83";
36     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
37 
38     ipAddress = "ldap://9.3.185.a";
39     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
40 
41     ipAddress = "ldap://x.x.x.x";
42     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
43 
44     ipAddress = "ldaps://0.0.0.0";
45     EXPECT_EQ(true, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
46 
47     ipAddress = "ldap://0.0.0.0";
48     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
49 
50     ipAddress = "ldaps://9.3.185.83";
51     EXPECT_EQ(true, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
52 
53     ipAddress = "ldap://9.3.185.83";
54     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
55 
56     ipAddress = "ldaps://9.3.185.83";
57     EXPECT_EQ(true, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
58 
59     ipAddress = "ldaps://9.3.185.a";
60     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
61 
62     ipAddress = "ldaps://9.3.a.83";
63     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
64 
65     ipAddress = "ldaps://x.x.x.x";
66     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapsScheme));
67 
68     ipAddress = "ldap://9.3.185.83:70000";
69     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
70 
71     ipAddress = "ldap://9.3.185.83:-3";
72     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
73 
74     ipAddress = "ldap://9.3.185.83:221";
75     EXPECT_EQ(true, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
76 
77     ipAddress = "ldap://9.3.185.83:0";
78     EXPECT_EQ(false, isValidLDAPURI(ipAddress.c_str(), ldapScheme));
79 }
80 } // namespace ldap
81 } // namespace phosphor
82