• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 "edm_utils.h"
19 #include "bundle_constants.h"
20 #include "message_parcel_utils.h"
21 #ifdef WIFI_EDM_ENABLE
22 #include "wifi_msg.h"
23 #endif
24 using namespace testing::ext;
25 using namespace OHOS::EDM;
26 
27 namespace OHOS {
28 namespace EDM {
29 namespace TEST {
30 
31 class MessageParcelUtilsTest : public testing::Test {};
32 #ifdef WIFI_EDM_ENABLE
33 /**
34  * @tc.name: TestReadWifiDeviceConfig
35  * @tc.desc: Test MessageParcelUtils::ReadWifiDeviceConfig
36  * @tc.type: FUNC
37  */
38 HWTEST_F(MessageParcelUtilsTest, TestReadWifiDeviceConfig, TestSize.Level1)
39 {
40     MessageParcel data;
41     Wifi::WifiDeviceConfig config;
42     WifiPassword pwd;
43     config.networkId = -1;
44     config.bssid = "";
45     config.ssid = "";
46     config.band = 0;
47     config.channel = 0;
48     config.frequency = 0;
49     config.level = 0;
50     config.isPasspoint = true;
51     config.isEphemeral = true;
52     config.keyMgmt = "";
53     config.wepTxKeyIndex = 0;
54     config.priority = 0;
55     config.hiddenSSID = true;
56     config.wifiIpConfig.assignMethod = Wifi::AssignIpMethod::DHCP;
57     config.wifiIpConfig.staticIpAddress.ipAddress.address.family = -1;
58     config.wifiIpConfig.staticIpAddress.ipAddress.address.addressIpv4 = 0;
59     config.wifiIpConfig.staticIpAddress.ipAddress.prefixLength = 0;
60     config.wifiIpConfig.staticIpAddress.ipAddress.flags = 0;
61     config.wifiIpConfig.staticIpAddress.ipAddress.scope = 0;
62     config.wifiIpConfig.staticIpAddress.gateway.family = -1;
63     config.wifiIpConfig.staticIpAddress.gateway.addressIpv4 = 0;
64     config.wifiIpConfig.staticIpAddress.dnsServer1.family = -1;
65     config.wifiIpConfig.staticIpAddress.dnsServer1.addressIpv4 = 0;
66     config.wifiIpConfig.staticIpAddress.dnsServer2.family = -1;
67     config.wifiIpConfig.staticIpAddress.dnsServer2.addressIpv4 = 0;
68     config.wifiIpConfig.staticIpAddress.domains = "";
69     config.wifiEapConfig.eap = "";
70     config.wifiEapConfig.identity = "";
71     config.wifiEapConfig.clientCert = "";
72     config.wifiEapConfig.privateKey = "";
73     std::vector<uint8_t> lists{1, 3, 56};
74     config.wifiEapConfig.certEntry = lists;
75     config.wifiEapConfig.phase2Method = Wifi::Phase2Method::NONE;
76     config.wifiProxyconfig.configureMethod = Wifi::ConfigureProxyMethod::CLOSED;
77     config.wifiProxyconfig.autoProxyConfig.pacWebAddress = "";
78     config.wifiProxyconfig.manualProxyConfig.serverPort = 1;
79     config.wifiProxyconfig.manualProxyConfig.exclusionObjectList = "";
80     config.wifiPrivacySetting = Wifi::WifiPrivacyConfig::RANDOMMAC;
81     MessageParcelUtils::WriteWifiDeviceConfig(config, data, pwd);
82 
83     Wifi::WifiDeviceConfig config2;
84     MessageParcelUtils::ReadWifiDeviceConfig(data, config2);
85     ASSERT_TRUE(config2.networkId == -1);
86     ASSERT_TRUE(config2.bssid == "");
87     ASSERT_TRUE(config2.ssid == "");
88     ASSERT_TRUE(config2.band == 0);
89     ASSERT_TRUE(config2.channel == 0);
90     ASSERT_TRUE(config2.frequency == 0);
91     ASSERT_TRUE(config2.level == 0);
92     ASSERT_TRUE(config2.isPasspoint == true);
93     ASSERT_TRUE(config2.isEphemeral == true);
94     ASSERT_TRUE(config2.keyMgmt == "");
95     ASSERT_TRUE(config2.wepTxKeyIndex == 0);
96     ASSERT_TRUE(config2.priority == 0);
97     ASSERT_TRUE(config2.hiddenSSID == true);
98     ASSERT_TRUE(config2.wifiIpConfig.assignMethod == Wifi::AssignIpMethod::DHCP);
99     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.address.family == -1);
100     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.address.addressIpv4 == 0);
101     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.prefixLength == 0);
102     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.flags == 0);
103     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.scope == 0);
104     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.gateway.family == -1);
105     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.gateway.addressIpv4 == 0);
106     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer1.family == -1);
107     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer1.addressIpv4 == 0);
108     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer2.family == -1);
109     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer2.addressIpv4 == 0);
110     ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.domains == "");
111     ASSERT_TRUE(config2.wifiEapConfig.eap == "");
112     ASSERT_TRUE(config2.wifiEapConfig.identity == "");
113     ASSERT_TRUE(config2.wifiEapConfig.clientCert == "");
114     ASSERT_TRUE(config2.wifiEapConfig.privateKey == "");
115     ASSERT_TRUE(config2.wifiEapConfig.certEntry == lists);
116     ASSERT_TRUE(config2.wifiEapConfig.phase2Method == Wifi::Phase2Method::NONE);
117     ASSERT_TRUE(config2.wifiProxyconfig.configureMethod == Wifi::ConfigureProxyMethod::CLOSED);
118     ASSERT_TRUE(config2.wifiProxyconfig.autoProxyConfig.pacWebAddress == "");
119     ASSERT_TRUE(config2.wifiProxyconfig.manualProxyConfig.serverPort == 1);
120     ASSERT_TRUE(config2.wifiProxyconfig.manualProxyConfig.exclusionObjectList == "");
121     ASSERT_TRUE(config2.wifiPrivacySetting == Wifi::WifiPrivacyConfig::RANDOMMAC);
122 }
123 
124 /**
125  * @tc.name: TestProcessAssignIpMethod
126  * @tc.desc: Test MessageParcelUtils::ProcessAssignIpMethod
127  * @tc.type: FUNC
128  */
129 HWTEST_F(MessageParcelUtilsTest, TestProcessAssignIpMethod, TestSize.Level1)
130 {
131     Wifi::WifiIpConfig ipConfig;
132     MessageParcelUtils::ProcessAssignIpMethod(static_cast<int32_t>(Wifi::AssignIpMethod::DHCP), ipConfig);
133     ASSERT_TRUE(ipConfig.assignMethod == Wifi::AssignIpMethod::DHCP);
134     MessageParcelUtils::ProcessAssignIpMethod(static_cast<int32_t>(Wifi::AssignIpMethod::STATIC), ipConfig);
135     ASSERT_TRUE(ipConfig.assignMethod == Wifi::AssignIpMethod::STATIC);
136     MessageParcelUtils::ProcessAssignIpMethod(static_cast<int32_t>(Wifi::AssignIpMethod::UNASSIGNED), ipConfig);
137     ASSERT_TRUE(ipConfig.assignMethod == Wifi::AssignIpMethod::UNASSIGNED);
138 }
139 
140 /**
141  * @tc.name: TestProcessPhase2Method
142  * @tc.desc: Test MessageParcelUtils::ProcessPhase2Method
143  * @tc.type: FUNC
144  */
145 HWTEST_F(MessageParcelUtilsTest, TestProcessPhase2Method, TestSize.Level1)
146 {
147     Wifi::WifiEapConfig eapConfig;
148     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::PAP), eapConfig);
149     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::PAP);
150     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::MSCHAP), eapConfig);
151     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::MSCHAP);
152     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::MSCHAPV2), eapConfig);
153     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::MSCHAPV2);
154     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::GTC), eapConfig);
155     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::GTC);
156     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::SIM), eapConfig);
157     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::SIM);
158     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::AKA), eapConfig);
159     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::AKA);
160     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::AKA_PRIME), eapConfig);
161     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::AKA_PRIME);
162     MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::NONE), eapConfig);
163     ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::NONE);
164 }
165 
166 /**
167  * @tc.name: TestProcessConfigureProxyMethod
168  * @tc.desc: Test MessageParcelUtils::ProcessConfigureProxyMethod
169  * @tc.type: FUNC
170  */
171 HWTEST_F(MessageParcelUtilsTest, TestProcessConfigureProxyMethod, TestSize.Level1)
172 {
173     Wifi::WifiProxyConfig proxyConfig;
174     MessageParcelUtils::ProcessConfigureProxyMethod(
175         static_cast<int32_t>(Wifi::ConfigureProxyMethod::AUTOCONFIGUE), proxyConfig);
176     ASSERT_TRUE(proxyConfig.configureMethod == Wifi::ConfigureProxyMethod::AUTOCONFIGUE);
177     MessageParcelUtils::ProcessConfigureProxyMethod(
178         static_cast<int32_t>(Wifi::ConfigureProxyMethod::MANUALCONFIGUE), proxyConfig);
179     ASSERT_TRUE(proxyConfig.configureMethod == Wifi::ConfigureProxyMethod::MANUALCONFIGUE);
180     MessageParcelUtils::ProcessConfigureProxyMethod(static_cast<int32_t>(Wifi::ConfigureProxyMethod::CLOSED),
181         proxyConfig);
182     ASSERT_TRUE(proxyConfig.configureMethod == Wifi::ConfigureProxyMethod::CLOSED);
183 }
184 
185 /**
186  * @tc.name: TestProcessPrivacyConfig
187  * @tc.desc: Test MessageParcelUtils::ProcessPrivacyConfig
188  * @tc.type: FUNC
189  */
190 HWTEST_F(MessageParcelUtilsTest, TestProcessPrivacyConfig, TestSize.Level1)
191 {
192     Wifi::WifiDeviceConfig config;
193     MessageParcelUtils::ProcessPrivacyConfig(static_cast<int32_t>(Wifi::WifiPrivacyConfig::RANDOMMAC), config);
194     ASSERT_TRUE(config.wifiPrivacySetting == Wifi::WifiPrivacyConfig::RANDOMMAC);
195     MessageParcelUtils::ProcessPrivacyConfig(static_cast<int32_t>(Wifi::WifiPrivacyConfig::DEVICEMAC), config);
196     ASSERT_TRUE(config.wifiPrivacySetting == Wifi::WifiPrivacyConfig::DEVICEMAC);
197 }
198 
199 /**
200  * @tc.name: TestReadIpAddress
201  * @tc.desc: Test MessageParcelUtils::ReadIpAddress
202  * @tc.type: FUNC
203  */
204 HWTEST_F(MessageParcelUtilsTest, TestReadIpAddress, TestSize.Level1)
205 {
206     MessageParcel data;
207     Wifi::WifiIpAddress address;
208     address.family = -1;
209     address.addressIpv4 = 0;
210     MessageParcelUtils::WriteIpAddress(data, address);
211 
212     Wifi::WifiIpAddress address2;
213     MessageParcelUtils::ReadIpAddress(data, address2);
214     ASSERT_TRUE(address2.family == -1);
215     ASSERT_TRUE(address2.addressIpv4 == 0);
216 }
217 
218 /**
219  * @tc.name: TestWriteInstallParam
220  * @tc.desc: Test MessageParcelUtils::WriteInstallParam
221  * @tc.type: FUNC
222  */
223 HWTEST_F(MessageParcelUtilsTest, TestWriteInstallParam, TestSize.Level1)
224 {
225     MessageParcel data;
226     AppExecFwk::InstallParam installParam;
227     installParam.userId = AppExecFwk::Constants::UNSPECIFIED_USERID;
228     installParam.installFlag = AppExecFwk::InstallFlag::NORMAL;
229     MessageParcelUtils::WriteInstallParam(installParam, data);
230     AppExecFwk::InstallParam installParam2;
231     installParam2.userId = data.ReadInt32();
232     installParam2.installFlag = (static_cast<AppExecFwk::InstallFlag>(data.ReadInt32()));
233     ASSERT_TRUE(installParam2.userId == AppExecFwk::Constants::UNSPECIFIED_USERID);
234     ASSERT_TRUE(installParam2.installFlag == AppExecFwk::InstallFlag::NORMAL);
235 }
236 #endif
237 
238 /**
239  * @tc.name: TestReadOperateDeviceParam
240  * @tc.desc: Test MessageParcelUtils::ReadOperateDeviceParam
241  * @tc.type: FUNC
242  */
243 HWTEST_F(MessageParcelUtilsTest, TestReadOperateDeviceParam, TestSize.Level1)
244 {
245     MessageParcel data;
246     OperateDeviceParam param;
247     param.operate = "";
248     param.addition = "";
249     param.userId = -1;
250     MessageParcelUtils::WriteOperateDeviceParam(param, data);
251     OperateDeviceParam param2;
252     MessageParcelUtils::ReadOperateDeviceParam(data, param2);
253     ASSERT_TRUE(param2.operate == "");
254     ASSERT_TRUE(param2.addition == "");
255     ASSERT_TRUE(param2.userId == -1);
256 }
257 
258 /**
259  * @tc.name: TestReadClearUpApplicationDataParam
260  * @tc.desc: Test MessageParcelUtils::ReadClearUpApplicationDataParam
261  * @tc.type: FUNC
262  */
263 HWTEST_F(MessageParcelUtilsTest, TestReadClearUpApplicationDataParam, TestSize.Level1)
264 {
265     MessageParcel data;
266     ClearUpApplicationDataParam param;
267     param.bundleName = "com.test.bundleName";
268     param.appIndex = 1;
269     param.userId = -1;
270     MessageParcelUtils::WriteClearUpApplicationDataParam(param, data);
271     ClearUpApplicationDataParam param2;
272     MessageParcelUtils::ReadClearUpApplicationDataParam(data, param2);
273     ASSERT_TRUE(param2.bundleName == "com.test.bundleName");
274     ASSERT_TRUE(param2.appIndex == 1);
275     ASSERT_TRUE(param2.userId == -1);
276 }
277 } // namespace TEST
278 } // namespace EDM
279 } // namespace OHOS