1 /*
2 * Copyright (C) 2021 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 #include "wifi_hal_wpa_sta_test.h"
16 #include "securec.h"
17 #include "mock_wpa_ctrl.h"
18 #include "wifi_hal_crpc_server.h"
19 #include "wifi_hal_common_func.h"
20 #include "wifi_log.h"
21 #undef LOG_TAG
22 #define LOG_TAG "WifiHalWpaStaTest"
23
24 using namespace testing::ext;
25
26 namespace OHOS {
27 namespace Wifi {
28 const std::string g_rpcSockPath = "./unix_sock_test.sock";
29 WifiWpaInterface *WifiHalWpaStaTest::mGlobalInterface = nullptr;
30 WifiWpaStaInterface *WifiHalWpaStaTest::mInterface = nullptr;
31 RpcServer *WifiHalWpaStaTest::mServer = nullptr;
32
SetUpTestCase()33 void WifiHalWpaStaTest::SetUpTestCase()
34 {
35 if (access(g_rpcSockPath.c_str(), 0) == 0) {
36 unlink(g_rpcSockPath.c_str());
37 }
38 mServer = CreateRpcServer(g_rpcSockPath.c_str());
39 if (mServer == nullptr) {
40 printf("Init rpc server failed!");
41 exit(-1);
42 }
43 InitCallbackMsg();
44 SetRpcServerInited(mServer);
45 MockInitGlobalCmd();
46 MockInitStaSupportedCmd();
47 mGlobalInterface = GetWifiWapGlobalInterface();
48 mGlobalInterface->wpaCliConnect(mGlobalInterface);
49 mInterface = GetWifiStaInterface(0);
50 }
51
TearDownTestCase()52 void WifiHalWpaStaTest::TearDownTestCase()
53 {
54 sleep(1);
55 ReleaseWpaGlobalInterface();
56 ReleaseWifiStaInterface(0);
57 if (mServer != nullptr) {
58 ReleaseRpcServer(mServer);
59 mServer = nullptr;
60 }
61 SetRpcServerInited(NULL);
62 ReleaseCallbackMsg();
63 }
64
65 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdStatusTest, TestSize.Level1)
66 {
67 EXPECT_TRUE(mInterface->wpaCliCmdStatus(nullptr, nullptr) < 0);
68 EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, nullptr) < 0);
69 MockEraseSupportedCmd("STATUS");
70 WpaHalCmdStatus status;
71 ASSERT_TRUE(memset_s(&status, sizeof(status), 0, sizeof(status)) == EOK);
72 EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) < 0);
73 char buf1[] = "wpa_state=SCANNING\n"
74 "ip_address=192.168.xxx.xxx\n"
75 "freq=1024\n"
76 "key_mgmt=WPA-PSK\n";
77 MockSetWpaExpectCmdResponse("STATUS", buf1);
78 EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) < 0);
79 EXPECT_TRUE(status.freq == 1024);
80 char buf2[] = "wpa_state=SCANNING\n"
81 "ip_address=192.168.xxx.xxx\n"
82 "freq=1024\n"
83 "key_mgmt=WPA-PSK\n"
84 "address=00:00:00:00:00:00\n";
85 MockSetWpaExpectCmdResponse("STATUS", buf2);
86 EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) == 1);
87 EXPECT_TRUE(strcmp(status.address, "00:00:00:00:00:00") == 0);
88 char buf3[] = "wpa_state=SCANNING\n"
89 "ip_address=192.168.xxx.xxx\n"
90 "freq=1024\n"
91 "key_mgmt=WPA-PSK\n"
92 "address=00:00:00:00:00:00\n"
93 "bssid=00:00:00:00:00:00\n"
94 "ssid=testAp\n"
95 "id=1\n";
96 MockSetWpaExpectCmdResponse("STATUS", buf3);
97 EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) == 0);
98 EXPECT_TRUE(strcmp(status.address, "00:00:00:00:00:00") == 0);
99 }
100
101 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdAddNetworksTest, TestSize.Level1)
102 {
103 MockEraseSupportedCmd("ADD_NETWORK");
104 EXPECT_TRUE(mInterface->wpaCliCmdAddNetworks(nullptr) < 0);
105 EXPECT_TRUE(mInterface->wpaCliCmdAddNetworks(mInterface) < 0);
106 MockSetWpaExpectCmdResponse("ADD_NETWORK", "1");
107 int ret = mInterface->wpaCliCmdAddNetworks(mInterface);
108 EXPECT_TRUE(ret == 1);
109 }
110
111 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdReconnectTest, TestSize.Level1)
112 {
113 MockEraseSupportedCmd("RECONNECT");
114 EXPECT_TRUE(mInterface->wpaCliCmdReconnect(nullptr) < 0);
115 EXPECT_TRUE(mInterface->wpaCliCmdReconnect(mInterface) < 0);
116 MockSetWpaExpectCmdResponse("RECONNECT", "FAIL\n");
117 EXPECT_TRUE(mInterface->wpaCliCmdReconnect(mInterface) < 0);
118 MockSetWpaExpectCmdResponse("RECONNECT", "OK");
119 EXPECT_TRUE(mInterface->wpaCliCmdReconnect(mInterface) == 0);
120 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend,
121 "<3>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed [id=1 id_str=]\n");
122 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>CTRL-EVENT-STATE-CHANGE state=2\n");
123 }
124
125 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdReassociateTest, TestSize.Level1)
126 {
127 MockEraseSupportedCmd("REASSOCIATE");
128 EXPECT_TRUE(mInterface->wpaCliCmdReassociate(nullptr) < 0);
129 EXPECT_TRUE(mInterface->wpaCliCmdReassociate(mInterface) < 0);
130 MockSetWpaExpectCmdResponse("REASSOCIATE", "FAIL\n");
131 EXPECT_TRUE(mInterface->wpaCliCmdReassociate(mInterface) < 0);
132 MockSetWpaExpectCmdResponse("REASSOCIATE", "OK");
133 EXPECT_TRUE(mInterface->wpaCliCmdReassociate(mInterface) == 0);
134 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>CTRL-EVENT-SSID-TEMP-DISABLED reason=WRONG_KEY\n");
135 }
136
137 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdDisconnectTest, TestSize.Level1)
138 {
139 MockEraseSupportedCmd("DISCONNECT");
140 EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(mInterface) < 0);
141 EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(nullptr) < 0);
142 MockSetWpaExpectCmdResponse("DISCONNECT", "FAIL\n");
143 EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(mInterface) < 0);
144 MockSetWpaExpectCmdResponse("DISCONNECT", "OK");
145 EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(mInterface) == 0);
146 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend,
147 "<3>CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=4 locally_generated=1\n");
148 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>CTRL-EVENT-STATE-CHANGE state=3\n");
149 }
150
151 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSaveConfigTest, TestSize.Level1)
152 {
153 MockEraseSupportedCmd("SAVE_CONFIG");
154 EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(nullptr) < 0);
155 EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(mInterface) < 0);
156 MockSetWpaExpectCmdResponse("SAVE_CONFIG", "FAIL\n");
157 EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(mInterface) < 0);
158 MockSetWpaExpectCmdResponse("SAVE_CONFIG", "OK");
159 EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(mInterface) == 0);
160 }
161
162 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSetNetworkTest, TestSize.Level1)
163 {
164 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(nullptr, nullptr) < 0);
165 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, nullptr) < 0);
166 WpaSetNetworkArgv argv;
167 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
168 argv.id = 0;
169 argv.param = DEVICE_CONFIG_END_POS;
170 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) < 0);
171 argv.param = DEVICE_CONFIG_SSID;
172 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) == 0);
173 MockEraseSupportedCmd("SET_NETWORK");
174 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) < 0);
175 MockSetWpaExpectCmdResponse("SET_NETWORK", "FAIL\n");
176 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) < 0);
177 MockSetWpaExpectCmdResponse("SET_NETWORK", "OK");
178 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) == 0);
179 argv.param = DEVICE_CONFIG_KEYMGMT;
180 EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) == 0);
181 }
182
183 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdEnableNetworkTest, TestSize.Level1)
184 {
185 MockEraseSupportedCmd("ENABLE_NETWORK");
186 EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(nullptr, 0) < 0);
187 EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(mInterface, 0) < 0);
188 MockSetWpaExpectCmdResponse("ENABLE_NETWORK", "FAIL\n");
189 EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(mInterface, 0) < 0);
190 MockSetWpaExpectCmdResponse("ENABLE_NETWORK", "OK");
191 EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(mInterface, 0) == 0);
192 }
193
194 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSelectNetworkTest, TestSize.Level1)
195 {
196 MockEraseSupportedCmd("SELECT_NETWORK");
197 EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(nullptr, 0) < 0);
198 EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(mInterface, 0) < 0);
199 MockSetWpaExpectCmdResponse("SELECT_NETWORK", "FAIL\n");
200 EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(mInterface, 0) < 0);
201 MockSetWpaExpectCmdResponse("SELECT_NETWORK", "OK");
202 EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(mInterface, 0) == 0);
203 }
204
205 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdDisableNetworkTest, TestSize.Level1)
206 {
207 MockEraseSupportedCmd("DISABLE_NETWORK");
208 EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(nullptr, 0) < 0);
209 EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(mInterface, 0) < 0);
210 MockSetWpaExpectCmdResponse("DISABLE_NETWORK", "FAIL\n");
211 EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(mInterface, 0) < 0);
212 MockSetWpaExpectCmdResponse("DISABLE_NETWORK", "OK");
213 EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(mInterface, 0) == 0);
214 }
215
216 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdRemoveNetworkTest, TestSize.Level1)
217 {
218 MockEraseSupportedCmd("REMOVE_NETWORK");
219 EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(nullptr, 0) < 0);
220 EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, 0) < 0);
221 MockSetWpaExpectCmdResponse("REMOVE_NETWORK", "FAIL\n");
222 EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, 0) < 0);
223 MockSetWpaExpectCmdResponse("REMOVE_NETWORK", "OK");
224 EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, 0) == 0);
225 EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, -1) == 0);
226 EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, -2) < 0);
227 }
228
229 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdGetNetworkTest, TestSize.Level1)
230 {
231 EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(nullptr, nullptr, nullptr, 0) < 0);
232 EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, nullptr, nullptr, 0) < 0);
233 WpaGetNetworkArgv argv;
234 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
235 EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, &argv, nullptr, 0) < 0);
236 char getBuffer[256] = {0};
237 MockEraseSupportedCmd("GET_NETWORK");
238 EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, &argv, getBuffer, sizeof(getBuffer)) < 0);
239 MockSetWpaExpectCmdResponse("GET_NETWORK", "OK");
240 EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, &argv, getBuffer, sizeof(getBuffer)) == 0);
241 EXPECT_TRUE(strcmp(getBuffer, "OK") == 0);
242 }
243
244 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpsPbcTest, TestSize.Level1)
245 {
246 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(nullptr, nullptr) < 0);
247 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, nullptr) == 0);
248 WpaWpsPbcArgv argv;
249 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
250 MockEraseSupportedCmd("WPS_PBC");
251 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) < 0);
252 MockSetWpaExpectCmdResponse("WPS_PBC", "FAIL\n");
253 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) < 0);
254 MockSetWpaExpectCmdResponse("WPS_PBC", "FAIL-PBC-OVERLAP");
255 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 3);
256 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>WPS-OVERLAP-DETECTED PBC session overlap\n");
257 MockSetWpaExpectCmdResponse("WPS_PBC", "OK");
258 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 0);
259 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>WPS-TIMEOUT Requested operation timed out\n");
260 argv.anyFlag = 1;
261 argv.multiAp = 1;
262 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 0);
263 argv.anyFlag = 0;
264 StrSafeCopy(argv.bssid, sizeof(argv.bssid), "00:00:00:00:00:00");
265 EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 0);
266 }
267
268 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpsPinTest, TestSize.Level1)
269 {
270 EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(nullptr, nullptr, nullptr) < 0);
271 EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, nullptr, nullptr) < 0);
272 WpaWpsPinArgv argv;
273 EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, nullptr) < 0);
274 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
275 int pinCode = 0;
276 MockEraseSupportedCmd("WPS_PIN");
277 EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, &pinCode) < 0);
278 MockSetWpaExpectCmdResponse("WPS_PIN", "12345678");
279 EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, &pinCode) == 0);
280 EXPECT_TRUE(pinCode == 12345678);
281 StrSafeCopy(argv.bssid, sizeof(argv.bssid), "00:00:00:00:00:00");
282 StrSafeCopy(argv.pinCode, sizeof(argv.pinCode), "87654321");
283 MockSetWpaExpectCmdResponse("WPS_PIN", argv.pinCode);
284 EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, &pinCode) == 0);
285 EXPECT_TRUE(pinCode == 87654321);
286 }
287
288 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpsCancelTest, TestSize.Level1)
289 {
290 MockEraseSupportedCmd("WPS_CANCEL");
291 EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(nullptr) < 0);
292 EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(mInterface) < 0);
293 MockSetWpaExpectCmdResponse("WPS_CANCEL", "FAIL\n");
294 EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(mInterface) < 0);
295 MockSetWpaExpectCmdResponse("WPS_CANCEL", "OK");
296 EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(mInterface) == 0);
297 }
298
299 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdPowerSaveTest, TestSize.Level1)
300 {
301 MockEraseSupportedCmd("SET");
302 EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(nullptr, 0) < 0);
303 EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 0) < 0);
304 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
305 EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 0) < 0);
306 MockSetWpaExpectCmdResponse("SET", "OK");
307 EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 0) == 0);
308 EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 1) == 0);
309 }
310
311 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSetCountryCodeTest, TestSize.Level1)
312 {
313 EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(nullptr, nullptr) < 0);
314 EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, nullptr) < 0);
315 MockEraseSupportedCmd("DRIVER COUNTRY");
316 EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, "CN") == 0);
317 MockSetWpaExpectCmdResponse("DRIVER COUNTRY", "FAIL\n");
318 EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, "CN") == 0);
319 MockSetWpaExpectCmdResponse("DRIVER COUNTRY", "OK");
320 EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, "CN") == 0);
321 }
322
323 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdGetCountryCodeTest, TestSize.Level1)
324 {
325 EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(nullptr, nullptr, 0) < 0);
326 EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, nullptr, 0) < 0);
327 char countryCode[3] = {0};
328 int codeSize = 3;
329 MockEraseSupportedCmd("GET");
330 EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, countryCode, codeSize) < 0);
331 MockSetWpaExpectCmdResponse("GET", "FAIL\n");
332 EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, countryCode, codeSize) < 0);
333 MockSetWpaExpectCmdResponse("GET", "OK");
334 EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, countryCode, codeSize) == 0);
335 EXPECT_TRUE(strcmp(countryCode, "OK") == 0);
336 }
337
338 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSetAutoConnectTest, TestSize.Level1)
339 {
340 MockEraseSupportedCmd("STA_AUTOCONNECT");
341 EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(nullptr, 0) < 0);
342 EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(mInterface, 0) < 0);
343 MockSetWpaExpectCmdResponse("STA_AUTOCONNECT", "FAIL\n");
344 EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(mInterface, 0) < 0);
345 MockSetWpaExpectCmdResponse("STA_AUTOCONNECT", "OK");
346 EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(mInterface, 0) == 0);
347 }
348
349 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpaBlockListClearTest, TestSize.Level1)
350 {
351 EXPECT_TRUE(mInterface->wpaCliCmdWpaBlockListClear(nullptr) < 0);
352 EXPECT_TRUE(mInterface->wpaCliCmdWpaBlockListClear(mInterface) < 0);
353 }
354
355 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdListNetworksTest, TestSize.Level1)
356 {
357 EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(nullptr, nullptr, nullptr) < 0);
358 EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, nullptr, nullptr) < 0);
359 EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, nullptr, 0) < 0);
360 WifiNetworkInfo a[256];
361 ASSERT_TRUE(memset_s(a, sizeof(a), 0, sizeof(a)) == EOK);
362 int size = 256;
363 MockEraseSupportedCmd("LIST_NETWORKS");
364 EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, a, &size) < 0);
365 char buf[] = "network id / ssid / bssid / flags\n"
366 "1\tssid1\t00:xx:xx:xx:xx:00\t[DISABLED]\n"
367 "2\tssid2\tany\t[DISABLED]\n"
368 "3\tssid3\t00:00:00:00:00:00\t[CURRENT]\n"
369 "4\tssid4\tany\t[DISABLED]\n";
370 MockSetWpaExpectCmdResponse("LIST_NETWORKS", buf);
371 EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, a, &size) == 0);
372 EXPECT_TRUE(size == 4);
373 size = 2;
374 EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, a, &size) == 0);
375 EXPECT_TRUE(size == 2);
376 EXPECT_TRUE(a[0].id == 1);
377 EXPECT_TRUE(strcmp(a[0].ssid, "ssid1") == 0);
378 EXPECT_TRUE(strcmp(a[0].bssid, "00:xx:xx:xx:xx:00") == 0);
379 EXPECT_TRUE(strcmp(a[0].flags, "[DISABLED]") == 0);
380 EXPECT_TRUE(a[1].id == 2);
381 EXPECT_TRUE(strcmp(a[1].ssid, "ssid2") == 0);
382 EXPECT_TRUE(strcmp(a[1].bssid, "any") == 0);
383 EXPECT_TRUE(strcmp(a[1].flags, "[DISABLED]") == 0);
384 }
385
386 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdGetSignalInfoTest, TestSize.Level1)
387 {
388 EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(nullptr, nullptr) < 0);
389 EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, nullptr) < 0);
390 WpaSignalInfo info;
391 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
392 EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) == 0);
393 MockEraseSupportedCmd("SIGNAL_POLL");
394 EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) < 0);
395 MockSetWpaExpectCmdResponse("SIGNAL_POLL", "FAIL\n");
396 EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) < 0);
397 char buf[] = "RSSI=-86\nLINKSPEED=1024\nNOISE=128\nFREQUENCY=5555\n";
398 MockSetWpaExpectCmdResponse("SIGNAL_POLL", buf);
399 EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) == 0);
400 EXPECT_TRUE(info.signal == -86);
401 EXPECT_TRUE(info.txrate == 1024);
402 EXPECT_TRUE(info.noise == 128);
403 EXPECT_TRUE(info.frequency == 5555);
404 }
405
406 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdScanInfoTest, TestSize.Level1)
407 {
408 ScanInfo pcmd;
409 int size = 10;
410 MockEraseSupportedCmd("SCAN_RESULTS");
411 ASSERT_TRUE(memset_s(&pcmd, sizeof(pcmd), 0, sizeof(pcmd)) == EOK);
412 EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(nullptr, nullptr, nullptr) < 0);
413 EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, nullptr, nullptr) < 0);
414 EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, nullptr) < 0);
415 EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, 0) < 0);
416 MockSetWpaExpectCmdResponse("SCAN_RESULTS", "FAIL\n");
417 EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, &size) < 0);
418 MockSetWpaExpectCmdResponse("SCAN_RESULTS", "OK");
419 EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, &size) == 0);
420 }
421
422 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpaSetSuspendModeTest, TestSize.Level1)
423 {
424 MockEraseSupportedCmd("DRIVER SETSUSPENDMODE");
425 EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(nullptr, true) < 0);
426 EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(mInterface, true) == 0);
427 MockSetWpaExpectCmdResponse("DRIVER SETSUSPENDMODE", "FAIL\n");
428 EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(mInterface, true) == 0);
429 MockSetWpaExpectCmdResponse("DRIVER SETSUSPENDMODE", "OK");
430 EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(mInterface, true) == 0);
431 }
432 } // namespace Wifi
433 } // namespace OHOS
434
435