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