1 /*
2 * Copyright (c) 2022 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 <securec.h>
17
18 #include <gtest/gtest.h>
19 #include "softbus_def.h"
20 #include "softbus_error_code.h"
21 #include "softbus_trans_def.h"
22 #include "softbus_app_info.h"
23 #include "softbus_server_frame.h"
24 #include "softbus_adapter_mem.h"
25 #include "client_trans_session_manager.h"
26 #include "client_trans_socket_manager.h"
27 #include "client_trans_session_service.h"
28 #include "client_trans_session_callback.h"
29 #include "client_trans_session_callback.c"
30 #include "softbus_config_type.h"
31 #include "trans_log.h"
32 #include "softbus_feature_config.h"
33 #include "softbus_conn_interface.h"
34 #include "auth_interface.h"
35 #include "bus_center_manager.h"
36 #include "session_ipc_adapter.h"
37 #include "session_set_timer.h"
38 #include "trans_session_service.h"
39
40 #define TRANS_TEST_SESSION_ID 10
41 #define TRANS_TEST_PID 0
42 #define TRANS_TEST_UID 0
43 #define TRANS_TEST_CHANNEL_ID 1000
44 #define TRANS_TEST_FILE_ENCRYPT 10
45 #define TRANS_TEST_ALGORITHM 1
46 #define TRANS_TEST_CRC 1
47 #define TRANS_TEST_EVENT_ID 1
48 #define TRANS_TEST_TV_COUNT 1
49 #define TRANS_TEST_AUTH_DATA "test auth message data"
50 #define DFX_TIMERS_S 15
51 #define TEST_TOKEN_TYPE 0
52
53 #define TRANS_TEST_INVALID_CHANNEL_ID (-1)
54
55 #define MAX_SESSION_SERVER_NUM 32
56
57 using namespace testing::ext;
58
59 namespace OHOS {
60
61 const char *g_pkgName = "dms";
62 const char *g_sessionName = "ohos.distributedschedule.dms.test";
63 const char *g_networkId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
64 const char *g_deviceId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
65 const char *g_groupid = "TEST_GROUP_ID";
66 static SessionAttribute g_sessionAttr = {
67 .dataType = TYPE_BYTES,
68 };
69 class TransClientSessionCallbackTest : public testing::Test {
70 public:
TransClientSessionCallbackTest()71 TransClientSessionCallbackTest()
72 {}
~TransClientSessionCallbackTest()73 ~TransClientSessionCallbackTest()
74 {}
75 static void SetUpTestCase(void);
76 static void TearDownTestCase(void);
SetUp()77 void SetUp() override
78 {}
TearDown()79 void TearDown() override
80 {}
81 };
82
SetUpTestCase(void)83 void TransClientSessionCallbackTest::SetUpTestCase(void)
84 {
85 SoftbusConfigInit();
86 ConnServerInit();
87 AuthInit();
88 BusCenterServerInit();
89 TransServerInit();
90 int32_t ret = TransClientInit();
91 ASSERT_EQ(ret, SOFTBUS_OK);
92 }
93
TearDownTestCase(void)94 void TransClientSessionCallbackTest::TearDownTestCase(void)
95 {
96 ConnServerDeinit();
97 AuthDeinit();
98 BusCenterServerDeinit();
99 TransServerDeinit();
100 }
101
OnSessionOpened(int32_t sessionId,int32_t result)102 static int32_t OnSessionOpened(int32_t sessionId, int32_t result)
103 {
104 TRANS_LOGI(TRANS_TEST, "session opened, sessionId=%{public}d", sessionId);
105 return SOFTBUS_OK;
106 }
107
OnSessionClosed(int32_t sessionId)108 static void OnSessionClosed(int32_t sessionId)
109 {
110 TRANS_LOGI(TRANS_TEST, "session closed, sessionId=%{public}d", sessionId);
111 }
112
OnBytesReceived(int32_t sessionId,const void * data,unsigned int len)113 static void OnBytesReceived(int32_t sessionId, const void *data, unsigned int len)
114 {
115 TRANS_LOGI(TRANS_TEST, "session bytes received, sessionId=%{public}d", sessionId);
116 }
117
OnMessageReceived(int32_t sessionId,const void * data,unsigned int len)118 static void OnMessageReceived(int32_t sessionId, const void *data, unsigned int len)
119 {
120 TRANS_LOGI(TRANS_TEST, "session msg received, sessionId=%{public}d", sessionId);
121 }
122
OnStreamReceived(int32_t sessionId,const StreamData * data,const StreamData * ext,const StreamFrameInfo * param)123 static void OnStreamReceived(int32_t sessionId, const StreamData *data,
124 const StreamData *ext, const StreamFrameInfo *param)
125 {
126 TRANS_LOGI(TRANS_TEST, "session stream received, sessionId=%{public}d", sessionId);
127 }
128
OnQosEvent(int32_t sessionId,int32_t eventId,int32_t tvCount,const QosTv * tvList)129 static void OnQosEvent(int32_t sessionId, int32_t eventId, int32_t tvCount, const QosTv *tvList)
130 {
131 TRANS_LOGI(TRANS_TEST, "session Qos event emit, sessionId=%{public}d", sessionId);
132 }
133
134 static ISessionListener g_sessionlistener = {
135 .OnSessionOpened = OnSessionOpened,
136 .OnSessionClosed = OnSessionClosed,
137 .OnBytesReceived = OnBytesReceived,
138 .OnMessageReceived = OnMessageReceived,
139 .OnStreamReceived = OnStreamReceived,
140 .OnQosEvent = OnQosEvent,
141 };
142
OnFile(int32_t socketId,FileEvent * event)143 static void OnFile(int32_t socketId, FileEvent *event)
144 {
145 TRANS_LOGI(TRANS_TEST, "session on file event, sessionId=%{public}d", socketId);
146 }
147
OnShutDown(int32_t socketId,ShutdownReason reason)148 static void OnShutDown(int32_t socketId, ShutdownReason reason)
149 {
150 TRANS_LOGI(TRANS_TEST, "session shutdown, socketId=%{public}d", socketId);
151 }
152
OnBindSucc(int32_t socketId,PeerSocketInfo info)153 static void OnBindSucc(int32_t socketId, PeerSocketInfo info)
154 {
155 TRANS_LOGI(TRANS_TEST, "session on bind, socketId=%{public}d", socketId);
156 }
157
OnNegotiate(int32_t socketId,PeerSocketInfo info)158 static bool OnNegotiate(int32_t socketId, PeerSocketInfo info)
159 {
160 TRANS_LOGI(TRANS_TEST, "session on bind, socketId=%{public}d", socketId);
161 return true;
162 }
163
164 static ISocketListener g_socketlistener = {
165 .OnBind = OnBindSucc,
166 .OnShutdown = OnShutDown,
167 .OnFile = OnFile,
168 .OnNegotiate = OnNegotiate,
169 };
170
171 static ISocketListener g_testSocketlistener = {
172 .OnBind = nullptr,
173 .OnShutdown = OnShutDown,
174 .OnFile = OnFile,
175 .OnNegotiate = nullptr,
176 };
177
TestGenerateCommParam(SessionParam * sessionParam)178 static void TestGenerateCommParam(SessionParam *sessionParam)
179 {
180 sessionParam->sessionName = g_sessionName;
181 sessionParam->peerSessionName = g_sessionName;
182 sessionParam->peerDeviceId = g_deviceId;
183 sessionParam->groupId = g_groupid;
184 sessionParam->attr = &g_sessionAttr;
185 }
186
TestGenerateChannInfo(ChannelInfo * channel)187 static int32_t TestGenerateChannInfo(ChannelInfo *channel)
188 {
189 char *sessionName = (char*)SoftBusCalloc(SESSION_NAME_SIZE_MAX * sizeof(char));
190 char *deviceId = (char*)SoftBusCalloc(DEVICE_ID_SIZE_MAX * sizeof(char));
191 char *groupId = (char*)SoftBusCalloc(GROUP_ID_SIZE_MAX * sizeof(char));
192
193 if (sessionName == nullptr || deviceId == nullptr || groupId == nullptr ||
194 strcpy_s(sessionName, SESSION_NAME_SIZE_MAX, g_sessionName) != EOK ||
195 strcpy_s(deviceId, SESSION_NAME_SIZE_MAX, g_deviceId) != EOK ||
196 strcpy_s(groupId, SESSION_NAME_SIZE_MAX, g_groupid) != EOK) {
197 SoftBusFree(sessionName);
198 SoftBusFree(deviceId);
199 SoftBusFree(groupId);
200 return SOFTBUS_STRCPY_ERR;
201 }
202
203 channel->peerSessionName = sessionName;
204 channel->peerDeviceId = deviceId;
205 channel->groupId = groupId;
206 channel->channelId = TRANS_TEST_CHANNEL_ID;
207 channel->channelType = CHANNEL_TYPE_BUTT;
208 channel->peerPid = TRANS_TEST_PID;
209 channel->peerUid = TRANS_TEST_UID;
210 channel->isServer = false;
211 channel->businessType = BUSINESS_TYPE_BUTT;
212 channel->routeType = ROUTE_TYPE_ALL;
213 channel->encrypt = TRANS_TEST_FILE_ENCRYPT;
214 channel->algorithm = TRANS_TEST_ALGORITHM;
215 channel->crc = TRANS_TEST_CRC;
216
217 return SOFTBUS_OK;
218 }
219
TestGenerateSession(const SessionParam * param)220 static SessionInfo *TestGenerateSession(const SessionParam *param)
221 {
222 SessionInfo *session = (SessionInfo*)SoftBusCalloc(sizeof(SessionInfo));
223 if (session == nullptr) {
224 return nullptr;
225 }
226
227 if (strcpy_s(session->info.peerSessionName, SESSION_NAME_SIZE_MAX, param->peerSessionName) != EOK ||
228 strcpy_s(session->info.peerDeviceId, DEVICE_ID_SIZE_MAX, param->peerDeviceId) != EOK ||
229 strcpy_s(session->info.groupId, GROUP_ID_SIZE_MAX, param->groupId) != EOK) {
230 SoftBusFree(session);
231 return nullptr;
232 }
233
234 session->sessionId = TRANS_TEST_SESSION_ID;
235 session->channelId = TRANS_TEST_CHANNEL_ID;
236 session->channelType = CHANNEL_TYPE_BUTT;
237 session->isServer = false;
238 session->enableStatus = ENABLE_STATUS_INIT;
239 session->routeType = ROUTE_TYPE_ALL;
240 session->info.flag = TYPE_BYTES;
241 session->isEncrypt = true;
242 session->algorithm = TRANS_TEST_ALGORITHM;
243 session->fileEncrypt = TRANS_TEST_FILE_ENCRYPT;
244 session->crc = TRANS_TEST_CRC;
245
246 return session;
247 }
248
RelesseChannInfo(ChannelInfo * channel)249 static void RelesseChannInfo(ChannelInfo *channel)
250 {
251 if (channel != nullptr) {
252 if (channel->peerSessionName != nullptr) {
253 SoftBusFree(channel->peerSessionName);
254 }
255 if (channel->peerDeviceId != nullptr) {
256 SoftBusFree(channel->peerDeviceId);
257 }
258 if (channel->groupId != nullptr) {
259 SoftBusFree(channel->groupId);
260 }
261 SoftBusFree(channel);
262 }
263 channel = nullptr;
264 }
265
266 /**
267 * @tc.name: TransClientSessionCallbackTest01
268 * @tc.desc: Transmission sdk session callback accept session as server with different parameters.
269 * @tc.type: FUNC
270 * @tc.require:
271 */
272 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest01, TestSize.Level1)
273 {
274 int32_t sessionId = 0;
275 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
276 ASSERT_TRUE(sessionParam != nullptr);
277 TestGenerateCommParam(sessionParam);
278 uint64_t timestamp = 0;
279 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
280 ASSERT_EQ(ret, SOFTBUS_OK);
281 ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
282 ASSERT_TRUE(channel != nullptr);
283 ret = TestGenerateChannInfo(channel);
284 ASSERT_EQ(ret, SOFTBUS_OK);
285 ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
286 EXPECT_EQ(ret, SOFTBUS_OK);
287 const char *sessionName = "com.devicegroupmanage";
288 ret = AcceptSessionAsServer(sessionName, channel, TYPE_BUTT, &sessionId);
289 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSIONSERVER_NOT_CREATED);
290 SoftBusFree(channel->groupId);
291 channel->groupId = nullptr;
292 ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
293 EXPECT_EQ(ret, SOFTBUS_STRCPY_ERR);
294 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
295 EXPECT_EQ(ret, SOFTBUS_OK);
296 RelesseChannInfo(channel);
297 }
298
299 /**
300 * @tc.name: TransClientSessionCallbackTest02
301 * @tc.desc: Transmission sdk session callback get session callback by channe id with different parameters.
302 * @tc.type: FUNC
303 * @tc.require:
304 */
305 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest02, TestSize.Level1)
306 {
307 int32_t sessionId = 0;
308 ISessionListener listener = {0};
309 int32_t ret = GetSessionCallbackByChannelId(TRANS_TEST_INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT,
310 &sessionId, &listener);
311 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
312 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, nullptr, &listener);
313 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
314 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, nullptr);
315 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
316 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
317 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
318 uint64_t timestamp = 0;
319 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
320 EXPECT_EQ(ret, SOFTBUS_OK);
321 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
322 ASSERT_TRUE(sessionParam != nullptr);
323 TestGenerateCommParam(sessionParam);
324 SessionInfo *session = TestGenerateSession(sessionParam);
325 ASSERT_TRUE(session != nullptr);
326 ret = ClientAddNewSession(g_sessionName, session);
327 ASSERT_EQ(ret, SOFTBUS_OK);
328 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
329 EXPECT_EQ(ret, SOFTBUS_OK);
330 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
331 EXPECT_EQ(ret, SOFTBUS_OK);
332 SoftBusFree(sessionParam);
333 }
334
335 /**
336 * @tc.name: TransClientSessionCallbackTest03
337 * @tc.desc: Transmission sdk session callback on session opened with invalid parameters.
338 * @tc.type: FUNC
339 * @tc.require:
340 */
341 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest03, TestSize.Level1)
342 {
343 ISessionListener sessionlistener = {
344 .OnSessionOpened = nullptr,
345 .OnSessionClosed = OnSessionClosed,
346 .OnBytesReceived = OnBytesReceived,
347 .OnMessageReceived = OnMessageReceived,
348 };
349 SocketAccessInfo accessInfo = { 0 };
350 ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
351 ASSERT_TRUE(channel != nullptr);
352 int32_t ret = TestGenerateChannInfo(channel);
353 ASSERT_EQ(ret, SOFTBUS_OK);
354 ret = TransOnSessionOpened(nullptr, channel, TYPE_BUTT, &accessInfo);
355 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
356 ret = TransOnSessionOpened(g_sessionName, nullptr, TYPE_BUTT, &accessInfo);
357 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
358 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT, &accessInfo);
359 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
360 uint64_t timestamp = 0;
361 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener, ×tamp);
362 ASSERT_EQ(ret, SOFTBUS_OK);
363 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
364 ASSERT_TRUE(sessionParam != nullptr);
365 TestGenerateCommParam(sessionParam);
366 SessionInfo *session = TestGenerateSession(sessionParam);
367 ASSERT_TRUE(session != nullptr);
368 ret = ClientAddNewSession(g_sessionName, session);
369 ASSERT_EQ(ret, SOFTBUS_OK);
370 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT, &accessInfo);
371 EXPECT_EQ(ret, SOFTBUS_TRANS_ON_SESSION_OPENED_FAILED);
372 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
373 EXPECT_EQ(ret, SOFTBUS_OK);
374 RelesseChannInfo(channel);
375 SoftBusFree(sessionParam);
376 }
377
378 /**
379 * @tc.name: TransClientSessionCallbackTest04
380 * @tc.desc: Transmission sdk session callback on session opened with different parameters.
381 * @tc.type: FUNC
382 * @tc.require:
383 */
384 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest04, TestSize.Level1)
385 {
386 SocketAccessInfo accessInfo = { 0 };
387 ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
388 ASSERT_TRUE(channel != nullptr);
389 int32_t ret = TestGenerateChannInfo(channel);
390 ASSERT_EQ(ret, SOFTBUS_OK);
391 uint64_t timestamp = 0;
392 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
393 ASSERT_EQ(ret, SOFTBUS_OK);
394 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
395 ASSERT_TRUE(sessionParam != nullptr);
396 TestGenerateCommParam(sessionParam);
397 SessionInfo *session = TestGenerateSession(sessionParam);
398 ASSERT_TRUE(session != nullptr);
399 ret = ClientAddNewSession(g_sessionName, session);
400 ASSERT_EQ(ret, SOFTBUS_OK);
401 channel->channelType = TYPE_BUTT;
402 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES, &accessInfo);
403 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
404 channel->isServer = true;
405 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES, &accessInfo);
406 EXPECT_EQ(ret, SOFTBUS_OK);
407 ret = TransOnSessionOpenFailed(TRANS_TEST_CHANNEL_ID, TYPE_BYTES, SOFTBUS_NO_INIT);
408 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
409 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
410 EXPECT_EQ(ret, SOFTBUS_OK);
411 RelesseChannInfo(channel);
412 SoftBusFree(sessionParam);
413 }
414
415 /**
416 * @tc.name: TransClientSessionCallbackTest05
417 * @tc.desc: Transmission sdk session callback on session closed.
418 * @tc.type: FUNC
419 * @tc.require:
420 */
421 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest05, TestSize.Level1)
422 {
423 uint64_t timestamp = 0;
424 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
425 ASSERT_EQ(ret, SOFTBUS_OK);
426 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
427 ASSERT_TRUE(sessionParam != nullptr);
428 TestGenerateCommParam(sessionParam);
429 SessionInfo *session = TestGenerateSession(sessionParam);
430 ASSERT_TRUE(session != nullptr);
431 ret = ClientAddNewSession(g_sessionName, session);
432 ASSERT_EQ(ret, SOFTBUS_OK);
433 ret = TransOnSessionClosed(INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT, SHUTDOWN_REASON_UNKNOWN);
434 EXPECT_EQ(ret, SOFTBUS_NO_INIT);
435 ret = TransOnSessionClosed(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, SHUTDOWN_REASON_UNKNOWN);
436 EXPECT_EQ(ret, SOFTBUS_OK);
437 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
438 EXPECT_EQ(ret, SOFTBUS_OK);
439 SoftBusFree(sessionParam);
440 }
441
442 /**
443 * @tc.name: TransClientSessionCallbackTest06
444 * @tc.desc: Transmission sdk session callback process receive file data with different parameter.
445 * @tc.type: FUNC
446 * @tc.require:
447 */
448 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest06, TestSize.Level1)
449 {
450 int32_t sessionId = 0;
451 SessionEnableStatus isEnabled = ENABLE_STATUS_INIT;
452 int32_t ret = ProcessReceivedFileData(TRANS_TEST_SESSION_ID, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
453 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
454 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
455 uint64_t timestamp = 0;
456 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
457 ASSERT_EQ(ret, SOFTBUS_OK);
458 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
459 ASSERT_TRUE(sessionParam != nullptr);
460 TestGenerateCommParam(sessionParam);
461 ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
462 ASSERT_EQ(ret, SOFTBUS_OK);
463 ret = ProcessReceivedFileData(sessionId, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
464 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
465 EXPECT_EQ(ret, SOFTBUS_NO_INIT);
466 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
467 EXPECT_EQ(ret, SOFTBUS_OK);
468 SoftBusFree(sessionParam);
469 }
470
471 /**
472 * @tc.name: TransClientSessionCallbackTest07
473 * @tc.desc: Transmission sdk session callback on data received with different parameter.
474 * @tc.type: FUNC
475 * @tc.require:
476 */
477 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest07, TestSize.Level1)
478 {
479 int32_t ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_AUTH_DATA,
480 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
481 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
482 uint64_t timestamp = 0;
483 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
484 ASSERT_EQ(ret, SOFTBUS_OK);
485 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
486 ASSERT_TRUE(sessionParam != nullptr);
487 TestGenerateCommParam(sessionParam);
488 SessionInfo *session = TestGenerateSession(sessionParam);
489 ASSERT_TRUE(session != nullptr);
490 session->channelType = CHANNEL_TYPE_PROXY;
491 ret = ClientAddNewSession(g_sessionName, session);
492 ASSERT_EQ(ret, SOFTBUS_OK);
493 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
494 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
495 EXPECT_EQ(ret, SOFTBUS_NO_INIT);
496
497 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
498 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ONGOINE_FRAME);
499 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
500
501 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
502 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_LAST_FRAME);
503 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
504
505 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
506 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ONLYONE_FRAME);
507 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
508
509 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
510 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_BYTES);
511 EXPECT_EQ(ret, SOFTBUS_OK);
512 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
513 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_MESSAGE);
514 EXPECT_EQ(ret, SOFTBUS_OK);
515 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
516 EXPECT_EQ(ret, SOFTBUS_OK);
517 SoftBusFree(sessionParam);
518 }
519
520 /**
521 * @tc.name: TransClientSessionCallbackTest08
522 * @tc.desc: Transmission sdk session callback on stream received with different parameter.
523 * @tc.type: FUNC
524 * @tc.require:
525 */
526 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest08, TestSize.Level1)
527 {
528 StreamData data = {0};
529 StreamData ext = {0};
530 StreamFrameInfo param = {0};
531 uint64_t timestamp = 0;
532 int32_t ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, ¶m);
533 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
534 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
535 ASSERT_EQ(ret, SOFTBUS_OK);
536 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
537 ASSERT_TRUE(sessionParam != nullptr);
538 TestGenerateCommParam(sessionParam);
539 SessionInfo *session = TestGenerateSession(sessionParam);
540 ASSERT_TRUE(session != nullptr);
541 ret = ClientAddNewSession(g_sessionName, session);
542 ASSERT_EQ(ret, SOFTBUS_OK);
543 ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, ¶m);
544 EXPECT_EQ(ret, SOFTBUS_OK);
545 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
546 EXPECT_EQ(ret, SOFTBUS_OK);
547 SoftBusFree(sessionParam);
548 }
549
550 /**
551 * @tc.name: TransClientSessionCallbackTest09
552 * @tc.desc: Transmission sdk session callback on stream received no callback.
553 * @tc.type: FUNC
554 * @tc.require:
555 */
556 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest09, TestSize.Level1)
557 {
558 StreamData data = {0};
559 StreamData ext = {0};
560 StreamFrameInfo param = {0};
561 ISessionListener sessionlistener = {
562 .OnSessionOpened = OnSessionOpened,
563 .OnSessionClosed = OnSessionClosed,
564 .OnBytesReceived = OnBytesReceived,
565 .OnMessageReceived = OnMessageReceived,
566 .OnStreamReceived = nullptr,
567 };
568 uint64_t timestamp = 0;
569 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener, ×tamp);
570 ASSERT_EQ(ret, SOFTBUS_OK);
571 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
572 ASSERT_TRUE(sessionParam != nullptr);
573 TestGenerateCommParam(sessionParam);
574 SessionInfo *session = TestGenerateSession(sessionParam);
575 ASSERT_TRUE(session != nullptr);
576 ret = ClientAddNewSession(g_sessionName, session);
577 ASSERT_EQ(ret, SOFTBUS_OK);
578 ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, ¶m);
579 EXPECT_EQ(ret, SOFTBUS_NO_INIT);
580 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
581 EXPECT_EQ(ret, SOFTBUS_OK);
582 SoftBusFree(sessionParam);
583 }
584
585 /**
586 * @tc.name: TransClientSessionCallbackTest10
587 * @tc.desc: Transmission sdk session callback on qos with different parameter.
588 * @tc.type: FUNC
589 * @tc.require:
590 */
591 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest10, TestSize.Level1)
592 {
593 QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
594 ASSERT_TRUE(tvList != nullptr);
595 int32_t ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID,
596 TRANS_TEST_TV_COUNT, tvList);
597 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
598 uint64_t timestamp = 0;
599 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
600 ASSERT_EQ(ret, SOFTBUS_OK);
601 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
602 ASSERT_TRUE(sessionParam != nullptr);
603 TestGenerateCommParam(sessionParam);
604 SessionInfo *session = TestGenerateSession(sessionParam);
605 ASSERT_TRUE(session != nullptr);
606 ret = ClientAddNewSession(g_sessionName, session);
607 ASSERT_EQ(ret, SOFTBUS_OK);
608 ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
609 EXPECT_EQ(ret, SOFTBUS_OK);
610 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
611 EXPECT_EQ(ret, SOFTBUS_OK);
612 SoftBusFree(sessionParam);
613 SoftBusFree(tvList);
614 }
615
616 /**
617 * @tc.name: TransClientSessionCallbackTest11
618 * @tc.desc: Transmission sdk session callback on qos no callback.
619 * @tc.type: FUNC
620 * @tc.require:
621 */
622 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest11, TestSize.Level1)
623 {
624 QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
625 ASSERT_TRUE(tvList != nullptr);
626 ISessionListener sessionlistener = {
627 .OnSessionOpened = OnSessionOpened,
628 .OnSessionClosed = OnSessionClosed,
629 .OnBytesReceived = OnBytesReceived,
630 .OnMessageReceived = OnMessageReceived,
631 .OnStreamReceived = OnStreamReceived,
632 .OnQosEvent = nullptr,
633 };
634 uint64_t timestamp = 0;
635 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener, ×tamp);
636 ASSERT_EQ(ret, SOFTBUS_OK);
637 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
638 ASSERT_TRUE(sessionParam != nullptr);
639 TestGenerateCommParam(sessionParam);
640 SessionInfo *session = TestGenerateSession(sessionParam);
641 ASSERT_TRUE(session != nullptr);
642 ret = ClientAddNewSession(g_sessionName, session);
643 ASSERT_EQ(ret, SOFTBUS_OK);
644 ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
645 EXPECT_EQ(ret, SOFTBUS_NO_INIT);
646 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
647 EXPECT_EQ(ret, SOFTBUS_OK);
648 SoftBusFree(sessionParam);
649 SoftBusFree(tvList);
650 }
651
652 /**
653 * @tc.name: TransClientSessionCallbackTest12
654 * @tc.desc: Transmission sdk session callback on session open failed with no callback.
655 * @tc.type: FUNC
656 * @tc.require:
657 */
658 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest12, TestSize.Level1)
659 {
660 ISessionListener sessionlistener = {
661 .OnSessionOpened = nullptr,
662 .OnSessionClosed = OnSessionClosed,
663 .OnBytesReceived = OnBytesReceived,
664 .OnMessageReceived = OnMessageReceived,
665 .OnStreamReceived = OnStreamReceived,
666 .OnQosEvent = OnQosEvent,
667 };
668 uint64_t timestamp = 0;
669 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener, ×tamp);
670 ASSERT_EQ(ret, SOFTBUS_OK);
671 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
672 ASSERT_TRUE(sessionParam != nullptr);
673 TestGenerateCommParam(sessionParam);
674 SessionInfo *session = TestGenerateSession(sessionParam);
675 ASSERT_TRUE(session != nullptr);
676 ret = ClientAddNewSession(g_sessionName, session);
677 ASSERT_EQ(ret, SOFTBUS_OK);
678 ret = TransOnSessionOpenFailed(TRANS_TEST_CHANNEL_ID, TYPE_BYTES, SOFTBUS_NO_INIT);
679 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
680 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
681 EXPECT_EQ(ret, SOFTBUS_OK);
682 SoftBusFree(sessionParam);
683 }
684
685 /**
686 * @tc.name: TransClientSessionCallbackTest13
687 * @tc.desc: Transmission sdk session callback on data received with different parameter.
688 * @tc.type: FUNC
689 * @tc.require:
690 */
691 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest13, TestSize.Level1)
692 {
693 int32_t ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_AUTH_DATA,
694 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
695 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
696 uint64_t timestamp = 0;
697 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
698 ASSERT_EQ(ret, SOFTBUS_OK);
699 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
700 ASSERT_TRUE(sessionParam != nullptr);
701 TestGenerateCommParam(sessionParam);
702 SessionInfo *session = TestGenerateSession(sessionParam);
703 ASSERT_TRUE(session != nullptr);
704 session->channelType = CHANNEL_TYPE_UDP;
705 ret = ClientAddNewSession(g_sessionName, session);
706 ASSERT_EQ(ret, SOFTBUS_OK);
707
708 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
709 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ALLFILE_SENT);
710 EXPECT_EQ(ret, SOFTBUS_OK);
711
712 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
713 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_CRC_CHECK_FRAME);
714 EXPECT_EQ(ret, SOFTBUS_OK);
715
716 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
717 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_RESULT_FRAME);
718 EXPECT_EQ(ret, SOFTBUS_OK);
719
720 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
721 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ACK_REQUEST_SENT);
722 EXPECT_EQ(ret, SOFTBUS_OK);
723
724 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
725 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ACK_RESPONSE_SENT);
726 EXPECT_EQ(ret, SOFTBUS_OK);
727
728 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
729 strlen(TRANS_TEST_AUTH_DATA), (SessionPktType)(TRANS_SESSION_FILE_ACK_RESPONSE_SENT + 1));
730 EXPECT_EQ(ret, SOFTBUS_TRANS_INVALID_SESSION_TYPE);
731
732 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
733 EXPECT_EQ(ret, SOFTBUS_OK);
734 SoftBusFree(sessionParam);
735 }
736
737 /**
738 * @tc.name: TransClientSessionCallbackTest14
739 * @tc.desc: HandleAsyncBindSuccess not found session.
740 * @tc.type: FUNC
741 * @tc.require:
742 */
743 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest14, TestSize.Level1)
744 {
745 SocketLifecycleData lifecycle;
746 lifecycle.bindErrCode = 0;
747 int32_t ret = HandleAsyncBindSuccess(1, nullptr, &lifecycle);
748 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
749 }
750
751 /**
752 * @tc.name: TransClientSessionCallbackTest15
753 * @tc.desc: HandleSyncBindSuccess not found session.
754 * @tc.type: FUNC
755 * @tc.require:
756 */
757 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest15, TestSize.Level1)
758 {
759 SocketLifecycleData lifecycle;
760 lifecycle.sessionState = SESSION_STATE_CANCELLING;
761 lifecycle.bindErrCode = SOFTBUS_TRANS_STOP_BIND_BY_TIMEOUT;
762 int32_t ret = HandleSyncBindSuccess(1, &lifecycle);
763 EXPECT_EQ(ret, SOFTBUS_OK);
764
765 lifecycle.sessionState = SESSION_STATE_INIT;
766 ret = HandleSyncBindSuccess(1, &lifecycle);
767 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
768 }
769
770 /**
771 * @tc.name: TransClientSessionCallbackTest16
772 * @tc.desc: HandleSyncBindSuccess not found session.
773 * @tc.type: FUNC
774 * @tc.require:
775 */
776 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest16, TestSize.Level1)
777 {
778 int32_t channelId = -1;
779 int32_t channelType = CHANNEL_TYPE_BUTT;
780 int32_t sessionId;
781 SessionListenerAdapter sessionCallback;
782 bool isServer = true;
783 uint64_t timestamp = 0;
784 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
785 ASSERT_TRUE(sessionParam != nullptr);
786 TestGenerateCommParam(sessionParam);
787 SessionInfo *session = TestGenerateSession(sessionParam);
788 ASSERT_TRUE(session != nullptr);
789
790 int32_t ret = GetSocketCallbackAdapterByChannelId(channelId, channelType, &sessionId, &sessionCallback, &isServer);
791 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
792 channelId = TRANS_TEST_CHANNEL_ID;
793 ret = GetSocketCallbackAdapterByChannelId(channelId, channelType, nullptr, &sessionCallback, &isServer);
794 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
795 ret = GetSocketCallbackAdapterByChannelId(channelId, channelType, &sessionId, nullptr, &isServer);
796 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
797 ret = GetSocketCallbackAdapterByChannelId(channelId, channelType, &sessionId, &sessionCallback, nullptr);
798 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
799 ret = GetSocketCallbackAdapterByChannelId(channelId, channelType, &sessionId, &sessionCallback, &isServer);
800 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
801
802 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
803 ASSERT_EQ(ret, SOFTBUS_OK);
804 ret = ClientAddNewSession(g_sessionName, session);
805 ASSERT_EQ(ret, SOFTBUS_OK);
806 ret = GetSocketCallbackAdapterByChannelId(channelId, channelType, &sessionId, &sessionCallback, &isServer);
807 EXPECT_EQ(ret, SOFTBUS_OK);
808 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
809 EXPECT_EQ(ret, SOFTBUS_OK);
810 SoftBusFree(sessionParam);
811 }
812
813 /**
814 * @tc.name: TransClientSessionCallbackTest17
815 * @tc.desc: HandleSyncBindSuccess not found session.
816 * @tc.type: FUNC
817 * @tc.require:
818 */
819 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest17, TestSize.Level1)
820 {
821 int32_t channelId = -1;
822 int32_t channelType = CHANNEL_TYPE_BUTT;
823 int32_t sessionId;
824 SessionListenerAdapter sessionCallback;
825 bool isServer = true;
826 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
827 ASSERT_TRUE(sessionParam != nullptr);
828 TestGenerateCommParam(sessionParam);
829 SessionInfo *session = TestGenerateSession(sessionParam);
830 ASSERT_TRUE(session != nullptr);
831 session->isClosing = true;
832 uint64_t timestamp = 0;
833
834 int32_t ret = GetSocketCallbackAdapterByUdpChannelId(channelId,
835 channelType, &sessionId, &sessionCallback, &isServer);
836 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
837 channelId = TRANS_TEST_CHANNEL_ID;
838 ret = GetSocketCallbackAdapterByUdpChannelId(channelId, channelType, nullptr, &sessionCallback, &isServer);
839 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
840 ret = GetSocketCallbackAdapterByUdpChannelId(channelId, channelType, &sessionId, nullptr, &isServer);
841 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
842 ret = GetSocketCallbackAdapterByUdpChannelId(channelId, channelType, &sessionId, &sessionCallback, nullptr);
843 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
844 ret = GetSocketCallbackAdapterByUdpChannelId(channelId, channelType, &sessionId, &sessionCallback, &isServer);
845 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
846
847 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
848 ASSERT_EQ(ret, SOFTBUS_OK);
849 ret = ClientAddNewSession(g_sessionName, session);
850 ASSERT_EQ(ret, SOFTBUS_OK);
851 ret = GetSocketCallbackAdapterByUdpChannelId(channelId, channelType, &sessionId, &sessionCallback, &isServer);
852 EXPECT_EQ(ret, SOFTBUS_OK);
853 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
854 EXPECT_EQ(ret, SOFTBUS_OK);
855 SoftBusFree(sessionParam);
856 }
857
858 /**
859 * @tc.name: TransClientSessionCallbackTest18
860 * @tc.desc: HandleSyncBindSuccess not found session.
861 * @tc.type: FUNC
862 * @tc.require:
863 */
864 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest18, TestSize.Level1)
865 {
866 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
867 ASSERT_TRUE(sessionParam != nullptr);
868 TestGenerateCommParam(sessionParam);
869 SessionInfo *session = TestGenerateSession(sessionParam);
870 ASSERT_TRUE(session != nullptr);
871 int32_t socketId = TRANS_TEST_SESSION_ID;
872 uint64_t timestamp = 0;
873
874 int32_t ret = TransOnBindSuccess(socketId, nullptr);
875 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
876 ret = TransOnBindSuccess(socketId, &g_testSocketlistener);
877 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
878 ret = TransOnBindSuccess(socketId, &g_socketlistener);
879 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
880
881 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
882 ASSERT_EQ(ret, SOFTBUS_OK);
883 ret = ClientAddNewSession(g_sessionName, session);
884 ASSERT_EQ(ret, SOFTBUS_OK);
885 ret = TransOnBindSuccess(socketId, &g_socketlistener);
886 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
887 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
888 EXPECT_EQ(ret, SOFTBUS_OK);
889 SoftBusFree(sessionParam);
890 }
891
892 /**
893 * @tc.name: TransClientSessionCallbackTest19
894 * @tc.desc: HandleSyncBindSuccess not found session.
895 * @tc.type: FUNC
896 * @tc.require:
897 */
898 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest19, TestSize.Level1)
899 {
900 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
901 ASSERT_TRUE(sessionParam != nullptr);
902 TestGenerateCommParam(sessionParam);
903 SessionInfo *session = TestGenerateSession(sessionParam);
904 ASSERT_TRUE(session != nullptr);
905 int32_t socketId = TRANS_TEST_SESSION_ID;
906 uint64_t timestamp = 0;
907
908 int32_t ret = TransOnNegotiate(socketId, nullptr);
909 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
910 ret = TransOnNegotiate(socketId, &g_testSocketlistener);
911 EXPECT_EQ(ret, SOFTBUS_OK);
912 ret = TransOnNegotiate(socketId, &g_socketlistener);
913 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
914
915 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
916 ASSERT_EQ(ret, SOFTBUS_OK);
917 ret = ClientAddNewSession(g_sessionName, session);
918 ASSERT_EQ(ret, SOFTBUS_OK);
919 ret = TransOnNegotiate(socketId, &g_socketlistener);
920 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
921 int32_t tokenType = TEST_TOKEN_TYPE;
922 ChannelInfo channel = { 0 };
923 SocketAccessInfo accessInfo = { 0 };
924 ret = HandleServerOnNegotiate(socketId, tokenType, &g_socketlistener, &channel, &accessInfo);
925 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
926 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
927 EXPECT_EQ(ret, SOFTBUS_OK);
928 SoftBusFree(sessionParam);
929 }
930
931 /**
932 * @tc.name: TransClientSessionCallbackTest20
933 * @tc.desc: HandleSyncBindSuccess not found session.
934 * @tc.type: FUNC
935 * @tc.require:
936 */
937 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest20, TestSize.Level1)
938 {
939 int32_t socketId = TRANS_TEST_SESSION_ID;
940 bool isServer = true;
941 SessionListenerAdapter sessionCallback;
942 memset_s(&sessionCallback, sizeof(SessionListenerAdapter), 0, sizeof(SessionListenerAdapter));
943
944 int32_t ret = HandleCacheQosEvent(socketId, sessionCallback, isServer);
945 EXPECT_EQ(ret, SOFTBUS_OK);
946 isServer = false;
947 ret = HandleCacheQosEvent(socketId, sessionCallback, isServer);
948 EXPECT_EQ(ret, SOFTBUS_OK);
949 ChannelInfo channel = { 0 };
950 SocketAccessInfo accessInfo = { 0 };
951 ret = HandleOnBindSuccess(socketId, sessionCallback, &channel, &accessInfo);
952 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
953 }
954
955 /**
956 * @tc.name: TransClientSessionCallbackTest21
957 * @tc.desc: HandleSyncBindSuccess not found session.
958 * @tc.type: FUNC
959 * @tc.require:
960 */
961 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest21, TestSize.Level1)
962 {
963 int32_t channelId = TRANS_TEST_CHANNEL_ID;
964 int32_t channelType = CHANNEL_TYPE_BUTT;
965
966 int32_t ret = ClientTransOnChannelBind(channelId, channelType);
967 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
968 }
969
970 /**
971 * @tc.name: TransClientSessionCallbackTest22
972 * @tc.desc: HandleSyncBindSuccess not found session.
973 * @tc.type: FUNC
974 * @tc.require:
975 */
976 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest22, TestSize.Level1)
977 {
978 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
979 ASSERT_TRUE(sessionParam != nullptr);
980 TestGenerateCommParam(sessionParam);
981 SessionInfo *session = TestGenerateSession(sessionParam);
982 ASSERT_TRUE(session != nullptr);
983 bool isSocket = true;
984 uint64_t timestamp = 0;
985
986 int32_t ret = ClientTransIfChannelForSocket(nullptr, &isSocket);
987 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
988 ret = ClientTransIfChannelForSocket(g_sessionName, nullptr);
989 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
990 ret = ClientTransIfChannelForSocket(g_sessionName, &isSocket);
991 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
992
993 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
994 ASSERT_EQ(ret, SOFTBUS_OK);
995 ret = ClientAddNewSession(g_sessionName, session);
996 ASSERT_EQ(ret, SOFTBUS_OK);
997 ret = ClientTransIfChannelForSocket(g_sessionName, &isSocket);
998 EXPECT_EQ(ret, SOFTBUS_OK);
999 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
1000 EXPECT_EQ(ret, SOFTBUS_OK);
1001 SoftBusFree(sessionParam);
1002 }
1003
1004 /**
1005 * @tc.name: TransClientSessionCallbackTest23
1006 * @tc.desc: HandleSyncBindSuccess not found session.
1007 * @tc.type: FUNC
1008 * @tc.require:
1009 */
1010 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest23, TestSize.Level1)
1011 {
1012 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
1013 ASSERT_TRUE(sessionParam != nullptr);
1014 TestGenerateCommParam(sessionParam);
1015 SessionInfo *session = TestGenerateSession(sessionParam);
1016 ASSERT_TRUE(session != nullptr);
1017 int32_t channelId = TRANS_TEST_CHANNEL_ID;
1018 int32_t channelType = CHANNEL_TYPE_BUTT;
1019 QoSEvent event = QOS_NOT_SATISFIED;
1020 QosTV qos;
1021 uint32_t count = 0;
1022 uint64_t timestamp = 0;
1023
1024 int32_t ret = ClientTransOnQos(channelId, channelType, event, nullptr, count);
1025 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
1026 ret = ClientTransOnQos(channelId, channelType, event, &qos, count);
1027 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
1028
1029 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener, ×tamp);
1030 ASSERT_EQ(ret, SOFTBUS_OK);
1031 ret = ClientAddNewSession(g_sessionName, session);
1032 ASSERT_EQ(ret, SOFTBUS_OK);
1033 ret = ClientTransOnQos(channelId, channelType, event, &qos, count);
1034 EXPECT_EQ(ret, SOFTBUS_OK);
1035 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
1036 EXPECT_EQ(ret, SOFTBUS_OK);
1037 SoftBusFree(sessionParam);
1038 }
1039
1040 /**
1041 * @tc.name: SetTimerTest001
1042 * @tc.desc: HandleSyncBindSuccess not found session.
1043 * @tc.type: FUNC
1044 * @tc.require:
1045 */
1046 HWTEST_F(TransClientSessionCallbackTest, SetTimerTest001, TestSize.Level1)
1047 {
1048 int32_t ret = SetTimer(nullptr, DFX_TIMERS_S);
1049 EXPECT_EQ(ret, INVALID);
1050
1051 ret = SetTimer("OnChannelOpened", DFX_TIMERS_S);
1052 EXPECT_NE(ret, INVALID);
1053 CancelTimer(INVALID);
1054 CancelTimer(DFX_TIMERS_S);
1055 }
1056
1057 /**
1058 * @tc.name: SoftBusGetSelfTokenIdTest001
1059 * @tc.desc: HandleSyncBindSuccess not found session.
1060 * @tc.type: FUNC
1061 * @tc.require:
1062 */
1063 HWTEST_F(TransClientSessionCallbackTest, SoftBusGetSelfTokenIdTest001, TestSize.Level1)
1064 {
1065 int32_t ret = SoftBusGetSelfTokenId(nullptr);
1066 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
1067
1068 ret = SoftBusGetCallingFullTokenId(nullptr);
1069 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
1070
1071 ret = SoftBusGetCallingTokenId(nullptr);
1072 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
1073
1074 uint32_t tokenId = 1;
1075 ret = SoftBusGetCallingTokenId(&tokenId);
1076 EXPECT_EQ(ret, SOFTBUS_OK);
1077 }
1078 }