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