• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-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 #include <securec.h>
18 
19 #include "lnn_net_builder_mock.h"
20 #include "lnn_net_ledger_mock.h"
21 #include "lnn_service_mock.h"
22 #include "lnn_sync_info_mock.h"
23 #include "lnn_sync_item_info.c"
24 #include "lnn_sync_item_info.h"
25 #include "softbus_adapter_mem.h"
26 #include "softbus_common.h"
27 #include "softbus_error_code.h"
28 
29 #define TEST_VALID_PEER_NETWORKID    "12345678"
30 #define TEST_VALID_PEER_NETWORKID1   "123456"
31 #define TEST_VALID_PEER_NETWORKID2   "1234"
32 #define TEST_VALID_UDID_LEN          32
33 #define TEST_TARGET_BSSID            "targetBssid"
34 #define TEST_SSID                    "ssid"
35 #define TEST_PRE_SHARED_KEY          "preSharedKey"
36 #define TEST_INT_VALUE               1
37 #define INVALID_WIFI_MAX_CONFIG_SIZE 11
38 namespace OHOS {
39 using namespace testing;
40 using namespace testing::ext;
41 
42 class LNNSyncInfoItemTest : public testing::Test {
43 public:
44     static void SetUpTestCase();
45     static void TearDownTestCase();
46     void SetUp();
47     void TearDown();
48 };
49 
SetUpTestCase()50 void LNNSyncInfoItemTest::SetUpTestCase() { }
51 
TearDownTestCase()52 void LNNSyncInfoItemTest::TearDownTestCase() { }
53 
SetUp()54 void LNNSyncInfoItemTest::SetUp() { }
55 
TearDown()56 void LNNSyncInfoItemTest::TearDown() { }
57 
58 /*
59  * @tc.name: WIFI_CONNECT_TO_TARGET_AP_TEST_001
60  * @tc.desc: test WifiConnectToTargetAp
61  * @tc.type: FUNC
62  * @tc.require:
63  */
64 HWTEST_F(LNNSyncInfoItemTest, WIFI_CONNECT_TO_TARGET_AP_TEST_001, TestSize.Level1)
65 {
66     SoftBusWifiDevConf *result1 = static_cast<SoftBusWifiDevConf *>(SoftBusCalloc(sizeof(SoftBusWifiDevConf)));
67     EXPECT_TRUE(result1 != nullptr);
68     EXPECT_EQ(EOK, strcpy_s(result1->ssid, WIFI_MAX_SSID_LEN, TEST_SSID));
69     SoftBusWifiDevConf *result2 = static_cast<SoftBusWifiDevConf *>(SoftBusCalloc(sizeof(SoftBusWifiDevConf)));
70     EXPECT_TRUE(result2 != nullptr);
71     EXPECT_EQ(EOK, strcpy_s(result2->ssid, WIFI_MAX_SSID_LEN, TEST_SSID));
72     SoftBusWifiDevConf *result3 = static_cast<SoftBusWifiDevConf *>(SoftBusCalloc(sizeof(SoftBusWifiDevConf)));
73     EXPECT_TRUE(result3 != nullptr);
74     EXPECT_EQ(EOK, strcpy_s(result3->ssid, WIFI_MAX_SSID_LEN, TEST_SSID));
75     SoftBusWifiDevConf *result4 = static_cast<SoftBusWifiDevConf *>(SoftBusCalloc(sizeof(SoftBusWifiDevConf)));
76     EXPECT_TRUE(result4 != nullptr);
77     EXPECT_EQ(EOK, strcpy_s(result4->ssid, WIFI_MAX_SSID_LEN, TEST_SSID));
78     SoftBusWifiDevConf *result5 = static_cast<SoftBusWifiDevConf *>(SoftBusCalloc(sizeof(SoftBusWifiDevConf)));
79     EXPECT_TRUE(result5 != nullptr);
80     EXPECT_EQ(EOK, strcpy_s(result5->ssid, WIFI_MAX_SSID_LEN, TEST_SSID));
81     NiceMock<LnnServicetInterfaceMock> LnnServiceMock;
82     EXPECT_CALL(LnnServiceMock, SoftBusGetWifiDeviceConfig)
83         .WillOnce(DoAll(
84             SetArgPointee<0>(*result1), SetArgPointee<1>(INVALID_WIFI_MAX_CONFIG_SIZE), Return(SOFTBUS_INVALID_PARAM)))
85         .WillOnce(DoAll(SetArgPointee<0>(*result2), SetArgPointee<1>(INVALID_WIFI_MAX_CONFIG_SIZE), Return(SOFTBUS_OK)))
86         .WillOnce(DoAll(SetArgPointee<0>(*result3), SetArgPointee<1>(WIFI_MAX_CONFIG_SIZE), Return(SOFTBUS_OK)))
87         .WillOnce(DoAll(SetArgPointee<0>(*result4), SetArgPointee<1>(WIFI_MAX_CONFIG_SIZE), Return(SOFTBUS_OK)))
88         .WillOnce(DoAll(SetArgPointee<0>(*result5), SetArgPointee<1>(WIFI_MAX_CONFIG_SIZE), Return(SOFTBUS_OK)));
89     const unsigned char targetBssid[] = "123456";
90     int32_t ret = WifiConnectToTargetAp(targetBssid, TEST_VALID_PEER_NETWORKID1);
91     EXPECT_EQ(ret, SOFTBUS_GET_WIFI_DEVICE_CONFIG_FAIL);
92     ret = WifiConnectToTargetAp(targetBssid, TEST_VALID_PEER_NETWORKID1);
93     EXPECT_EQ(ret, SOFTBUS_GET_WIFI_DEVICE_CONFIG_FAIL);
94     EXPECT_CALL(LnnServiceMock, SoftBusDisconnectDevice)
95         .WillOnce(Return(SOFTBUS_INVALID_PARAM))
96         .WillRepeatedly(Return(SOFTBUS_OK));
97     EXPECT_CALL(LnnServiceMock, SoftBusConnectToDevice)
98         .WillOnce(Return(SOFTBUS_INVALID_PARAM))
99         .WillRepeatedly(Return(SOFTBUS_OK));
100     ret = WifiConnectToTargetAp(targetBssid, TEST_VALID_PEER_NETWORKID1);
101     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
102     ret = WifiConnectToTargetAp(targetBssid, TEST_VALID_PEER_NETWORKID1);
103     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
104     ret = WifiConnectToTargetAp(targetBssid, TEST_VALID_PEER_NETWORKID1);
105     EXPECT_EQ(ret, SOFTBUS_OK);
106 }
107 
108 /*
109  * @tc.name: LNN_SEND_TRANS_REQ_TEST_001
110  * @tc.desc: test LnnSendTransReq
111  * @tc.type: FUNC
112  * @tc.require:I5PRUD
113  */
114 HWTEST_F(LNNSyncInfoItemTest, LNN_SEND_TRANS_REQ_TEST_001, TestSize.Level1)
115 {
116     NiceMock<LnnNetLedgertInterfaceMock> LedgerMock;
117     EXPECT_CALL(LedgerMock, LnnSetDLBssTransInfo)
118         .WillOnce(Return(SOFTBUS_INVALID_PARAM))
119         .WillRepeatedly(Return(SOFTBUS_OK));
120     NiceMock<LnnSyncInfoInterfaceMock> SyncInfoMock;
121     EXPECT_CALL(SyncInfoMock, LnnSendSyncInfoMsg)
122         .WillOnce(Return(SOFTBUS_INVALID_PARAM))
123         .WillRepeatedly(Return(SOFTBUS_OK));
124     BssTransInfo transInfo;
125     (void)memset_s(&transInfo, sizeof(BssTransInfo), 0, sizeof(BssTransInfo));
126     EXPECT_EQ(EOK, strcpy_s(transInfo.ssid, WIFI_SSID_LEN, TEST_VALID_PEER_NETWORKID1));
127     EXPECT_EQ(EOK, strcpy_s((char *)transInfo.targetBssid, WIFI_MAC_LEN, TEST_VALID_PEER_NETWORKID2));
128     int32_t ret = LnnSendTransReq(TEST_VALID_PEER_NETWORKID, &transInfo);
129     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
130     ret = LnnSendTransReq(TEST_VALID_PEER_NETWORKID, &transInfo);
131     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
132     ret = LnnSendTransReq(TEST_VALID_PEER_NETWORKID, &transInfo);
133     EXPECT_EQ(ret, SOFTBUS_OK);
134     ret = LnnSendTransReq(nullptr, &transInfo);
135     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
136     ret = LnnSendTransReq(TEST_VALID_PEER_NETWORKID, nullptr);
137     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
138 }
139 
140 /*
141  * @tc.name: LNN_ONRECEIVE_DEVICE_NAME_TEST_001
142  * @tc.desc: test OnReceiveDeviceName
143  * @tc.type: FUNC
144  * @tc.require:
145  */
146 HWTEST_F(LNNSyncInfoItemTest, LNN_ONRECEIVE_DEVICE_NAME_TEST_001, TestSize.Level1)
147 {
148     NiceMock<LnnNetLedgertInterfaceMock> LedgerMock;
149     NiceMock<LnnSyncInfoInterfaceMock> SyncInfoMock;
150     EXPECT_CALL(LedgerMock, LnnConvertDlId).WillRepeatedly(Return(SOFTBUS_INVALID_PARAM));
151     EXPECT_CALL(SyncInfoMock, LnnRegSyncInfoHandler).WillRepeatedly(Return(SOFTBUS_OK));
152     OnReceiveDeviceName(LNN_INFO_TYPE_DEVICE_NAME, nullptr, nullptr, TEST_VALID_UDID_LEN);
153     uint8_t msg[WIFI_SSID_LEN] = { 1, 2, 3, 4, 5 };
154     OnReceiveDeviceName(LNN_INFO_TYPE_BATTERY_INFO, nullptr, msg, TEST_VALID_UDID_LEN);
155     OnReceiveDeviceName(LNN_INFO_TYPE_DEVICE_NAME, nullptr, msg, TEST_VALID_UDID_LEN);
156     int32_t ret = LnnInitOffline();
157     EXPECT_EQ(ret, SOFTBUS_OK);
158 }
159 
160 /*
161  * @tc.name: LNN_ONRECEIVE_TRANS_REQ_MSG_TEST_001
162  * @tc.desc: test OnReceiveTransReqMsg
163  * @tc.type: FUNC
164  * @tc.require:
165  */
166 HWTEST_F(LNNSyncInfoItemTest, LNN_ONRECEIVE_TRANS_REQ_MSG_TEST_001, TestSize.Level1)
167 {
168     NiceMock<LnnNetLedgertInterfaceMock> LedgerMock;
169     NiceMock<LnnSyncInfoInterfaceMock> SyncInfoMock;
170     EXPECT_CALL(LedgerMock, LnnConvertDlId).WillOnce(Return(SOFTBUS_INVALID_PARAM)).WillRepeatedly(Return(SOFTBUS_OK));
171     EXPECT_CALL(LedgerMock, LnnSetDLDeviceInfoName)
172         .WillOnce(Return(SOFTBUS_INVALID_PARAM))
173         .WillRepeatedly(Return(SOFTBUS_OK));
174     EXPECT_CALL(SyncInfoMock, LnnRegSyncInfoHandler).WillRepeatedly(Return(SOFTBUS_INVALID_PARAM));
175     OnReceiveTransReqMsg(LNN_INFO_TYPE_TOPO_UPDATE, nullptr, nullptr, TEST_VALID_UDID_LEN);
176     OnReceiveTransReqMsg(LNN_INFO_TYPE_BSS_TRANS, nullptr, nullptr, TEST_VALID_UDID_LEN);
177     OnReceiveTransReqMsg(LNN_INFO_TYPE_BSS_TRANS, nullptr, nullptr, TEST_VALID_UDID_LEN);
178     OnReceiveTransReqMsg(LNN_INFO_TYPE_BSS_TRANS, nullptr, nullptr, TEST_VALID_UDID_LEN);
179     int32_t ret = LnnInitOffline();
180     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
181 }
182 
183 /*
184  * @tc.name: LNN_ONRECEIVE_BR_OFFLINE_TEST_001
185  * @tc.desc: test OnReceiveBrOffline
186  * @tc.type: FUNC
187  * @tc.require:
188  */
189 HWTEST_F(LNNSyncInfoItemTest, LNN_ONRECEIVE_BR_OFFLINE_TEST_001, TestSize.Level1)
190 {
191     NiceMock<LnnNetLedgertInterfaceMock> LedgerMock;
192     EXPECT_CALL(LedgerMock, LnnConvertDlId).WillOnce(Return(SOFTBUS_INVALID_PARAM)).WillRepeatedly(Return(SOFTBUS_OK));
193     EXPECT_CALL(LedgerMock, LnnGetCnnCode)
194         .WillOnce(Return(INVALID_CONNECTION_CODE_VALUE))
195         .WillRepeatedly(Return(SOFTBUS_OK));
196     uint32_t len = sizeof(int32_t);
197     uint32_t tmpMsg;
198     const uint8_t *msg = reinterpret_cast<const uint8_t *>(&tmpMsg);
199     OnReceiveBrOffline(LNN_INFO_TYPE_P2P_INFO, nullptr, nullptr, len);
200     OnReceiveBrOffline(LNN_INFO_TYPE_OFFLINE, nullptr, nullptr, len);
201     OnReceiveBrOffline(LNN_INFO_TYPE_OFFLINE, nullptr, msg, len + 1);
202     OnReceiveBrOffline(LNN_INFO_TYPE_OFFLINE, nullptr, msg, len);
203     OnReceiveBrOffline(LNN_INFO_TYPE_OFFLINE, nullptr, msg, len);
204     OnReceiveBrOffline(LNN_INFO_TYPE_OFFLINE, nullptr, msg, len);
205 }
206 
207 /*
208  * @tc.name: FILL_TARGET_WIFI_CONFIG_TEST_001
209  * @tc.desc: test FillTargetWifiConfig
210  * @tc.type: FUNC
211  * @tc.require:I5PRUD
212  */
213 HWTEST_F(LNNSyncInfoItemTest, FILL_TARGET_WIFI_CONFIG_TEST_001, TestSize.Level1)
214 {
215     SoftBusWifiDevConf conWifiConf = {
216         .securityType = TEST_INT_VALUE,
217         .isHiddenSsid = TEST_INT_VALUE,
218     };
219     EXPECT_EQ(EOK, strcpy_s(conWifiConf.preSharedKey, WIFI_MAX_KEY_LEN, TEST_PRE_SHARED_KEY));
220     SoftBusWifiDevConf targetWifiConf;
221     (void)memset_s(&targetWifiConf, sizeof(SoftBusWifiDevConf), 0, sizeof(SoftBusWifiDevConf));
222     const unsigned char *targetBssid = reinterpret_cast<const unsigned char *>(const_cast<char *>(TEST_PRE_SHARED_KEY));
223     int32_t ret = FillTargetWifiConfig(targetBssid, TEST_SSID, &conWifiConf, &targetWifiConf);
224     EXPECT_EQ(ret, SOFTBUS_OK);
225 }
226 } // namespace OHOS
227