1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17
18 #include "ipsecvpn_config.h"
19 #include "l2tpvpn_config.h"
20 #include "openvpn_config.h"
21
22 namespace OHOS {
23 namespace NetManagerStandard {
24 namespace {
25 using namespace testing::ext;
26
27 constexpr const char *TEST_VPNID = "vpnId_";
28 constexpr const char *TEST_VPN_NAME = "vpnName_";
29 constexpr int32_t TEST_VPN_TYPE = 1;
30 constexpr const char *TEST_USER_NAME = "userName_";
31 constexpr const char *TEST_PASSWORD = "password_";
32 constexpr bool TEST_SAVE_LOGIN = false;
33 constexpr int32_t TEST_USERID = 0;
34 constexpr const char *TEST_FORWARD = "forwardingRoutes_";
35
GetIpsecVpnConfigData()36 IpsecVpnConfig GetIpsecVpnConfigData()
37 {
38 IpsecVpnConfig infoSequence;
39 infoSequence.vpnId_ = TEST_VPNID;
40 infoSequence.vpnName_ = TEST_VPN_NAME;
41 infoSequence.vpnType_ = TEST_VPN_TYPE;
42 infoSequence.userName_ = TEST_USER_NAME;
43 infoSequence.password_ = TEST_PASSWORD;
44 infoSequence.saveLogin_ = TEST_SAVE_LOGIN;
45 infoSequence.userId_ = TEST_USERID;
46 infoSequence.forwardingRoutes_ = TEST_FORWARD;
47 return infoSequence;
48 }
49
GetL2tpVpnConfigData()50 L2tpVpnConfig GetL2tpVpnConfigData()
51 {
52 L2tpVpnConfig infoSequence;
53 infoSequence.vpnId_ = TEST_VPNID;
54 infoSequence.vpnName_ = TEST_VPN_NAME;
55 infoSequence.vpnType_ = VpnType::L2TP_IPSEC_PSK;
56 infoSequence.userName_ = TEST_USER_NAME;
57 infoSequence.password_ = TEST_PASSWORD;
58 infoSequence.saveLogin_ = TEST_SAVE_LOGIN;
59 infoSequence.userId_ = TEST_USERID;
60 infoSequence.forwardingRoutes_ = TEST_FORWARD;
61 return infoSequence;
62 }
63
GetOpenvpnConfigData()64 OpenvpnConfig GetOpenvpnConfigData()
65 {
66 OpenvpnConfig infoSequence;
67 infoSequence.vpnId_ = TEST_VPNID;
68 infoSequence.vpnName_ = TEST_VPN_NAME;
69 infoSequence.vpnType_ = VpnType::L2TP_IPSEC_PSK;
70 infoSequence.userName_ = TEST_USER_NAME;
71 infoSequence.password_ = TEST_PASSWORD;
72 infoSequence.saveLogin_ = TEST_SAVE_LOGIN;
73 infoSequence.userId_ = TEST_USERID;
74 infoSequence.forwardingRoutes_ = TEST_FORWARD;
75 return infoSequence;
76 }
77 } // namespace
78
79 class SysVpnConfigTest : public testing::Test {
80 public:
81 static void SetUpTestCase();
82 static void TearDownTestCase();
83 void SetUp();
84 void TearDown();
85 };
86
SetUpTestCase()87 void SysVpnConfigTest::SetUpTestCase() {}
88
TearDownTestCase()89 void SysVpnConfigTest::TearDownTestCase() {}
90
SetUp()91 void SysVpnConfigTest::SetUp() {}
92
TearDown()93 void SysVpnConfigTest::TearDown() {}
94
95 HWTEST_F(SysVpnConfigTest, Unmarshalling001, TestSize.Level1)
96 {
97 Parcel parcel;
98 IpsecVpnConfig info = GetIpsecVpnConfigData();
99 info.vpnType_ = VpnType::IKEV2_IPSEC_MSCHAPv2;
100 EXPECT_TRUE(info.Marshalling(parcel));
101 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
102 EXPECT_TRUE(result != nullptr);
103 }
104
105 HWTEST_F(SysVpnConfigTest, Unmarshalling002, TestSize.Level1)
106 {
107 Parcel parcel;
108 IpsecVpnConfig info = GetIpsecVpnConfigData();
109 info.vpnType_ = VpnType::IKEV2_IPSEC_PSK;
110 EXPECT_TRUE(info.Marshalling(parcel));
111 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
112 EXPECT_TRUE(result != nullptr);
113 }
114
115 HWTEST_F(SysVpnConfigTest, Unmarshalling003, TestSize.Level1)
116 {
117 Parcel parcel;
118 IpsecVpnConfig info = GetIpsecVpnConfigData();
119 info.vpnType_ = VpnType::IKEV2_IPSEC_RSA;
120 EXPECT_TRUE(info.Marshalling(parcel));
121 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
122 EXPECT_TRUE(result != nullptr);
123 }
124
125 HWTEST_F(SysVpnConfigTest, Unmarshalling004, TestSize.Level1)
126 {
127 Parcel parcel;
128 L2tpVpnConfig info = GetL2tpVpnConfigData();
129 info.vpnType_ = VpnType::L2TP_IPSEC_PSK;
130 EXPECT_TRUE(info.Marshalling(parcel));
131 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
132 EXPECT_TRUE(result != nullptr);
133 }
134
135 HWTEST_F(SysVpnConfigTest, Unmarshalling005, TestSize.Level1)
136 {
137 Parcel parcel;
138 L2tpVpnConfig info = GetL2tpVpnConfigData();
139 info.vpnType_ = VpnType::L2TP_IPSEC_RSA;
140 EXPECT_TRUE(info.Marshalling(parcel));
141 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
142 EXPECT_TRUE(result != nullptr);
143 }
144
145 HWTEST_F(SysVpnConfigTest, Unmarshalling006, TestSize.Level1)
146 {
147 Parcel parcel;
148 IpsecVpnConfig info = GetIpsecVpnConfigData();
149 info.vpnType_ = VpnType::IPSEC_XAUTH_PSK;
150 EXPECT_TRUE(info.Marshalling(parcel));
151 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
152 EXPECT_TRUE(result != nullptr);
153 }
154
155 HWTEST_F(SysVpnConfigTest, Unmarshalling007, TestSize.Level1)
156 {
157 Parcel parcel;
158 IpsecVpnConfig info = GetIpsecVpnConfigData();
159 info.vpnType_ = VpnType::IPSEC_XAUTH_RSA;
160 EXPECT_TRUE(info.Marshalling(parcel));
161 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
162 EXPECT_TRUE(result != nullptr);
163 }
164
165 HWTEST_F(SysVpnConfigTest, Unmarshalling008, TestSize.Level1)
166 {
167 Parcel parcel;
168 IpsecVpnConfig info = GetIpsecVpnConfigData();
169 info.vpnType_ = VpnType::IPSEC_HYBRID_RSA;
170 EXPECT_TRUE(info.Marshalling(parcel));
171 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
172 EXPECT_TRUE(result != nullptr);
173 }
174
175 HWTEST_F(SysVpnConfigTest, Unmarshalling009, TestSize.Level1)
176 {
177 Parcel parcel;
178 IpsecVpnConfig info = GetIpsecVpnConfigData();
179 info.vpnType_ = -1;
180 EXPECT_TRUE(info.Marshalling(parcel));
181 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
182 EXPECT_TRUE(result == nullptr);
183 }
184
185 HWTEST_F(SysVpnConfigTest, Unmarshalling010, TestSize.Level1)
186 {
187 Parcel parcel;
188 OpenvpnConfig info = GetOpenvpnConfigData();
189 info.vpnType_ = VpnType::OPENVPN;
190 EXPECT_TRUE(info.Marshalling(parcel));
191 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
192 EXPECT_TRUE(result != nullptr);
193 }
194 } // namespace NetManagerStandard
195 } // namespace OHOS