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 constexpr const char *TEST_PKCS12_PASSWORD = "123456";
36 std::vector<uint8_t> TEST_PKCS12_DATA{0x30, 0x82, 0x0b, 0xc1, 0x02, 0x01};
37
GetIpsecVpnConfigData()38 IpsecVpnConfig GetIpsecVpnConfigData()
39 {
40 IpsecVpnConfig infoSequence;
41 infoSequence.vpnId_ = TEST_VPNID;
42 infoSequence.vpnName_ = TEST_VPN_NAME;
43 infoSequence.vpnType_ = TEST_VPN_TYPE;
44 infoSequence.userName_ = TEST_USER_NAME;
45 infoSequence.password_ = TEST_PASSWORD;
46 infoSequence.saveLogin_ = TEST_SAVE_LOGIN;
47 infoSequence.userId_ = TEST_USERID;
48 infoSequence.forwardingRoutes_ = TEST_FORWARD;
49 infoSequence.pkcs12Password_ = TEST_PKCS12_PASSWORD;
50 infoSequence.pkcs12FileData_ = TEST_PKCS12_DATA;
51 return infoSequence;
52 }
53
GetL2tpVpnConfigData()54 L2tpVpnConfig GetL2tpVpnConfigData()
55 {
56 L2tpVpnConfig infoSequence;
57 infoSequence.vpnId_ = TEST_VPNID;
58 infoSequence.vpnName_ = TEST_VPN_NAME;
59 infoSequence.vpnType_ = VpnType::L2TP_IPSEC_PSK;
60 infoSequence.userName_ = TEST_USER_NAME;
61 infoSequence.password_ = TEST_PASSWORD;
62 infoSequence.saveLogin_ = TEST_SAVE_LOGIN;
63 infoSequence.userId_ = TEST_USERID;
64 infoSequence.forwardingRoutes_ = TEST_FORWARD;
65 infoSequence.pkcs12Password_ = TEST_PKCS12_PASSWORD;
66 infoSequence.pkcs12FileData_ = TEST_PKCS12_DATA;
67 return infoSequence;
68 }
69
GetOpenvpnConfigData()70 OpenvpnConfig GetOpenvpnConfigData()
71 {
72 OpenvpnConfig infoSequence;
73 infoSequence.vpnId_ = TEST_VPNID;
74 infoSequence.vpnName_ = TEST_VPN_NAME;
75 infoSequence.vpnType_ = VpnType::L2TP_IPSEC_PSK;
76 infoSequence.userName_ = TEST_USER_NAME;
77 infoSequence.password_ = TEST_PASSWORD;
78 infoSequence.saveLogin_ = TEST_SAVE_LOGIN;
79 infoSequence.userId_ = TEST_USERID;
80 infoSequence.forwardingRoutes_ = TEST_FORWARD;
81 infoSequence.pkcs12Password_ = TEST_PKCS12_PASSWORD;
82 infoSequence.pkcs12FileData_ = TEST_PKCS12_DATA;
83 return infoSequence;
84 }
85 } // namespace
86
87 class SysVpnConfigTest : public testing::Test {
88 public:
89 static void SetUpTestCase();
90 static void TearDownTestCase();
91 void SetUp();
92 void TearDown();
93 };
94
SetUpTestCase()95 void SysVpnConfigTest::SetUpTestCase() {}
96
TearDownTestCase()97 void SysVpnConfigTest::TearDownTestCase() {}
98
SetUp()99 void SysVpnConfigTest::SetUp() {}
100
TearDown()101 void SysVpnConfigTest::TearDown() {}
102
103 HWTEST_F(SysVpnConfigTest, Unmarshalling001, TestSize.Level1)
104 {
105 Parcel parcel;
106 IpsecVpnConfig info = GetIpsecVpnConfigData();
107 info.vpnType_ = VpnType::IKEV2_IPSEC_MSCHAPv2;
108 EXPECT_TRUE(info.Marshalling(parcel));
109 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
110 EXPECT_TRUE(result != nullptr);
111 }
112
113 HWTEST_F(SysVpnConfigTest, Unmarshalling002, TestSize.Level1)
114 {
115 Parcel parcel;
116 IpsecVpnConfig info = GetIpsecVpnConfigData();
117 info.vpnType_ = VpnType::IKEV2_IPSEC_PSK;
118 EXPECT_TRUE(info.Marshalling(parcel));
119 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
120 EXPECT_TRUE(result != nullptr);
121 }
122
123 HWTEST_F(SysVpnConfigTest, Unmarshalling003, TestSize.Level1)
124 {
125 Parcel parcel;
126 IpsecVpnConfig info = GetIpsecVpnConfigData();
127 info.vpnType_ = VpnType::IKEV2_IPSEC_RSA;
128 EXPECT_TRUE(info.Marshalling(parcel));
129 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
130 EXPECT_TRUE(result != nullptr);
131 }
132
133 HWTEST_F(SysVpnConfigTest, Unmarshalling004, TestSize.Level1)
134 {
135 Parcel parcel;
136 L2tpVpnConfig info = GetL2tpVpnConfigData();
137 info.vpnType_ = VpnType::L2TP_IPSEC_PSK;
138 EXPECT_TRUE(info.Marshalling(parcel));
139 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
140 EXPECT_TRUE(result != nullptr);
141 }
142
143 HWTEST_F(SysVpnConfigTest, Unmarshalling005, TestSize.Level1)
144 {
145 Parcel parcel;
146 L2tpVpnConfig info = GetL2tpVpnConfigData();
147 info.vpnType_ = VpnType::L2TP_IPSEC_RSA;
148 EXPECT_TRUE(info.Marshalling(parcel));
149 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
150 EXPECT_TRUE(result != nullptr);
151 }
152
153 HWTEST_F(SysVpnConfigTest, Unmarshalling006, TestSize.Level1)
154 {
155 Parcel parcel;
156 IpsecVpnConfig info = GetIpsecVpnConfigData();
157 info.vpnType_ = VpnType::IPSEC_XAUTH_PSK;
158 EXPECT_TRUE(info.Marshalling(parcel));
159 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
160 EXPECT_TRUE(result != nullptr);
161 }
162
163 HWTEST_F(SysVpnConfigTest, Unmarshalling007, TestSize.Level1)
164 {
165 Parcel parcel;
166 IpsecVpnConfig info = GetIpsecVpnConfigData();
167 info.vpnType_ = VpnType::IPSEC_XAUTH_RSA;
168 EXPECT_TRUE(info.Marshalling(parcel));
169 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
170 EXPECT_TRUE(result != nullptr);
171 }
172
173 HWTEST_F(SysVpnConfigTest, Unmarshalling008, TestSize.Level1)
174 {
175 Parcel parcel;
176 IpsecVpnConfig info = GetIpsecVpnConfigData();
177 info.vpnType_ = VpnType::IPSEC_HYBRID_RSA;
178 EXPECT_TRUE(info.Marshalling(parcel));
179 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
180 EXPECT_TRUE(result != nullptr);
181 }
182
183 HWTEST_F(SysVpnConfigTest, Unmarshalling009, TestSize.Level1)
184 {
185 Parcel parcel;
186 IpsecVpnConfig info = GetIpsecVpnConfigData();
187 info.vpnType_ = -1;
188 EXPECT_TRUE(info.Marshalling(parcel));
189 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
190 EXPECT_TRUE(result == nullptr);
191 }
192
193 HWTEST_F(SysVpnConfigTest, Unmarshalling010, TestSize.Level1)
194 {
195 Parcel parcel;
196 OpenvpnConfig info = GetOpenvpnConfigData();
197 info.vpnType_ = VpnType::OPENVPN;
198 EXPECT_TRUE(info.Marshalling(parcel));
199 sptr<SysVpnConfig> result = SysVpnConfig::Unmarshalling(parcel);
200 EXPECT_TRUE(result != nullptr);
201 }
202 } // namespace NetManagerStandard
203 } // namespace OHOS