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_errcode.h"
21 #include "softbus_log.h"
22 #include "softbus_trans_def.h"
23 #include "softbus_json_utils.h"
24 #include "softbus_app_info.h"
25 #include "softbus_server_frame.h"
26 #include "softbus_adapter_mem.h"
27 #include "softbus_config_type.h"
28 #include "client_trans_session_manager.h"
29 #include "client_trans_session_service.h"
30 #include "client_trans_session_service.c"
31 #include "client_trans_session_manager.c"
32 #include "softbus_access_token_test.h"
33 #include "softbus_common.h"
34
35 #define TRANS_TEST_SESSION_ID 10
36 #define TRANS_TEST_CHANNEL_ID 1000
37 #define TRANS_TEST_DEVICE_TYPE_ID 3
38 #define TRANS_TEST_FILE_ENCRYPT 10
39 #define TRANS_TEST_ALGORITHM 1
40 #define TRANS_TEST_CRC 1
41 #define TRANS_TEST_AUTH_DATA "test auth message data"
42 #define TRANS_TEST_CONN_IP "192.168.8.1"
43 #define TRANS_TEST_BR_MAC "11:22:33:44:55:66"
44 #define TRANS_TEST_AUTH_PORT 60000
45 #define TRANS_TEST_ADDR_INFO_NUM 2
46 #define TRANS_TEST_MAX_LENGTH 1024
47 #define TRANS_TEST_INVALID_SESSION_ID (-1)
48 #define TRANS_TEST_INVALID_VALUE_SIZE 8
49
50 using namespace testing::ext;
51
52 namespace OHOS {
53
54 const char *g_pkgName = "dms";
55 const char *g_sessionName = "ohos.distributedschedule.dms.test";
56 const char *g_sessionKey = "www.huaweitest.com";
57 const char *g_networkId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
58 const char *g_deviceId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
59 const char *g_groupId = "TEST_GROUP_ID";
60 const char *g_deviceName = "rk3568test";
61 const char *g_rootDir = "/data";
62 static SessionAttribute g_sessionAttr = {
63 .dataType = TYPE_BYTES,
64 };
65 class TransClientSessionTest : public testing::Test {
66 public:
TransClientSessionTest()67 TransClientSessionTest()
68 {}
~TransClientSessionTest()69 ~TransClientSessionTest()
70 {}
71 static void SetUpTestCase(void);
72 static void TearDownTestCase(void);
SetUp()73 void SetUp() override
74 {}
TearDown()75 void TearDown() override
76 {}
77 };
78
SetUpTestCase(void)79 void TransClientSessionTest::SetUpTestCase(void)
80 {
81 InitSoftBusServer();
82 SetAceessTokenPermission("dsoftbusTransTest");
83 int32_t ret = TransClientInit();
84 ASSERT_EQ(ret, SOFTBUS_OK);
85 }
86
TearDownTestCase(void)87 void TransClientSessionTest::TearDownTestCase(void)
88 {
89 }
90
OnSessionOpened(int sessionId,int result)91 static int OnSessionOpened(int sessionId, int result)
92 {
93 LOG_INFO("session opened,sesison id = %d\r\n", sessionId);
94 return SOFTBUS_OK;
95 }
96
OnSessionClosed(int sessionId)97 static void OnSessionClosed(int sessionId)
98 {
99 LOG_INFO("session closed, session id = %d\r\n", sessionId);
100 }
101
OnBytesReceived(int sessionId,const void * data,unsigned int len)102 static void OnBytesReceived(int sessionId, const void *data, unsigned int len)
103 {
104 LOG_INFO("session bytes received, session id = %d\r\n", sessionId);
105 }
106
OnMessageReceived(int sessionId,const void * data,unsigned int len)107 static void OnMessageReceived(int sessionId, const void *data, unsigned int len)
108 {
109 LOG_INFO("session msg received, session id = %d\r\n", sessionId);
110 }
111
OnStreamReceived(int sessionId,const StreamData * data,const StreamData * ext,const StreamFrameInfo * param)112 static void OnStreamReceived(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)
113 {
114 LOG_INFO("session stream received, session id = %d\r\n", sessionId);
115 }
116
OnQosEvent(int sessionId,int eventId,int tvCount,const QosTv * tvList)117 static void OnQosEvent(int sessionId, int eventId, int tvCount, const QosTv *tvList)
118 {
119 LOG_INFO("session Qos event emit, session id = %d\r\n", sessionId);
120 }
121
OnSessionOpenedErr(int sessionId,int result)122 static int OnSessionOpenedErr(int sessionId, int result)
123 {
124 LOG_INFO("session opened,sesison id = %d\r\n", sessionId);
125 return SOFTBUS_ERR;
126 }
127
OnReceiveFileStarted(int sessionId,const char * files,int fileCnt)128 static int OnReceiveFileStarted(int sessionId, const char *files, int fileCnt)
129 {
130 LOG_INFO("receive file start,sesison id = %d\r\n", sessionId);
131 return SOFTBUS_OK;
132 }
133
OnReceiveFileProcess(int sessionId,const char * firstFile,uint64_t bytesUpload,uint64_t bytesTotal)134 static int OnReceiveFileProcess(int sessionId, const char *firstFile, uint64_t bytesUpload, uint64_t bytesTotal)
135 {
136 LOG_INFO("receive file process,sesison id = %d\r\n", sessionId);
137 return SOFTBUS_OK;
138 }
139
OnReceiveFileFinished(int sessionId,const char * files,int fileCnt)140 static void OnReceiveFileFinished(int sessionId, const char *files, int fileCnt)
141 {
142 LOG_INFO("receive file finished,sesison id = %d\r\n", sessionId);
143 }
144
OnFileTransError(int sessionId)145 void OnFileTransError(int sessionId)
146 {
147 LOG_INFO("file transmission error,sesison id = %d\r\n", sessionId);
148 }
149
OnSendFileProcess(int sessionId,uint64_t bytesUpload,uint64_t bytesTotal)150 int OnSendFileProcess(int sessionId, uint64_t bytesUpload, uint64_t bytesTotal)
151 {
152 LOG_INFO("send file process,sesison id = %d\r\n", sessionId);
153 return SOFTBUS_OK;
154 }
155
OnSendFileFinished(int sessionId,const char * firstFile)156 int OnSendFileFinished(int sessionId, const char *firstFile)
157 {
158 LOG_INFO("send file finished,sesison id = %d\r\n", sessionId);
159 return SOFTBUS_OK;
160 }
161
162 static ISessionListener g_sessionlistener = {
163 .OnSessionOpened = OnSessionOpened,
164 .OnSessionClosed = OnSessionClosed,
165 .OnBytesReceived = OnBytesReceived,
166 .OnMessageReceived = OnMessageReceived,
167 .OnStreamReceived = OnStreamReceived,
168 .OnQosEvent = OnQosEvent,
169 };
170
171 static IFileReceiveListener g_fileRecvListener = {
172 .OnReceiveFileStarted = OnReceiveFileStarted,
173 .OnReceiveFileProcess = OnReceiveFileProcess,
174 .OnReceiveFileFinished = OnReceiveFileFinished,
175 .OnFileTransError = OnFileTransError
176 };
177
178 static IFileSendListener g_fileSendListener = {
179 .OnSendFileProcess = OnSendFileProcess,
180 .OnSendFileFinished = OnSendFileFinished,
181 .OnFileTransError = OnFileTransError
182 };
183
TestGenerateCommParam(SessionParam * sessionParam)184 static void TestGenerateCommParam(SessionParam *sessionParam)
185 {
186 sessionParam->sessionName = g_sessionName;
187 sessionParam->peerSessionName = g_sessionName;
188 sessionParam->peerDeviceId = g_deviceId;
189 sessionParam->groupId = g_groupId;
190 sessionParam->attr = &g_sessionAttr;
191 }
192
TestGenerateSession(const SessionParam * param)193 static SessionInfo *TestGenerateSession(const SessionParam *param)
194 {
195 SessionInfo *session = (SessionInfo*)SoftBusCalloc(sizeof(SessionInfo));
196 if (session == NULL) {
197 return NULL;
198 }
199
200 if (strcpy_s(session->info.peerSessionName, SESSION_NAME_SIZE_MAX, param->peerSessionName) != EOK ||
201 strcpy_s(session->info.peerDeviceId, DEVICE_ID_SIZE_MAX, param->peerDeviceId) != EOK ||
202 strcpy_s(session->info.groupId, GROUP_ID_SIZE_MAX, param->groupId) != EOK) {
203 SoftBusFree(session);
204 return NULL;
205 }
206
207 session->sessionId = TRANS_TEST_SESSION_ID;
208 session->channelId = TRANS_TEST_CHANNEL_ID;
209 session->channelType = CHANNEL_TYPE_BUTT;
210 session->isServer = false;
211 session->isEnable = false;
212 session->routeType = ROUTE_TYPE_ALL;
213 session->info.flag = TYPE_BYTES;
214 session->isEncrypt = true;
215 session->algorithm = TRANS_TEST_ALGORITHM;
216 session->fileEncrypt = TRANS_TEST_FILE_ENCRYPT;
217 session->crc = TRANS_TEST_CRC;
218
219 return session;
220 }
221
AddSessionServerAndSession(const char * sessionName,int32_t channelType,bool isServer)222 static int32_t AddSessionServerAndSession(const char *sessionName, int32_t channelType, bool isServer)
223 {
224 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
225 if (sessionParam == NULL) {
226 return SOFTBUS_ERR;
227 }
228
229 TestGenerateCommParam(sessionParam);
230 sessionParam->sessionName = sessionName;
231 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, sessionName, &g_sessionlistener);
232 if (ret != SOFTBUS_OK) {
233 return SOFTBUS_ERR;
234 }
235
236 SessionInfo *session = TestGenerateSession(sessionParam);
237 if (session == NULL) {
238 return SOFTBUS_ERR;
239 }
240
241 session->channelType = (ChannelType)channelType;
242 session->isServer = isServer;
243 ret = ClientAddNewSession(sessionName, session);
244 if (ret != SOFTBUS_OK) {
245 return SOFTBUS_ERR;
246 }
247
248 int32_t sessionId = 0;
249 ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, channelType, &sessionId);
250 if (ret != SOFTBUS_OK) {
251 return SOFTBUS_ERR;
252 }
253
254 SoftBusFree(sessionParam);
255 return sessionId;
256 }
257
DeleteSessionServerAndSession(const char * sessionName,int32_t sessionId)258 static void DeleteSessionServerAndSession(const char *sessionName, int32_t sessionId)
259 {
260 (void)ClientDeleteSession(sessionId);
261 (void)ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, sessionName);
262 }
263
264 /**
265 * @tc.name: TransClientSessionTest01
266 * @tc.desc: Transmission sdk session service open session with existed session callback success.
267 * @tc.type: FUNC
268 * @tc.require:
269 */
270 HWTEST_F(TransClientSessionTest, TransClientSessionTest01, TestSize.Level1)
271 {
272 bool isEnabled = false;
273 int32_t ret = OpenSessionWithExistSession(TRANS_TEST_SESSION_ID, isEnabled);
274 EXPECT_EQ(ret, TRANS_TEST_SESSION_ID);
275 isEnabled = true;
276 ret = OpenSessionWithExistSession(TRANS_TEST_SESSION_ID, isEnabled);
277 EXPECT_EQ(ret, INVALID_SESSION_ID);
278 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
279 ASSERT_EQ(ret, SOFTBUS_OK);
280 SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
281 ASSERT_TRUE(sessionParam != NULL);
282 memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
283 TestGenerateCommParam(sessionParam);
284 SessionInfo *session = TestGenerateSession(sessionParam);
285 ASSERT_TRUE(session != NULL);
286 session->channelType = CHANNEL_TYPE_AUTH;
287 ret = ClientAddNewSession(g_sessionName, session);
288 ASSERT_EQ(ret, SOFTBUS_OK);
289 ret = OpenSessionWithExistSession(session->sessionId, isEnabled);
290 EXPECT_EQ(ret, session->sessionId);
291 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
292 EXPECT_EQ(ret, SOFTBUS_OK);
293 SoftBusFree(sessionParam);
294 }
295
296 /**
297 * @tc.name: TransClientSessionTest02
298 * @tc.desc: Transmission sdk session service open session with existed session callback error.
299 * @tc.type: FUNC
300 * @tc.require:
301 */
302 HWTEST_F(TransClientSessionTest, TransClientSessionTest02, TestSize.Level1)
303 {
304 bool isEnabled = false;
305 ISessionListener sessionlistener = {
306 .OnSessionOpened = OnSessionOpenedErr,
307 .OnSessionClosed = OnSessionClosed,
308 .OnBytesReceived = OnBytesReceived,
309 .OnMessageReceived = OnMessageReceived,
310 .OnStreamReceived = OnStreamReceived,
311 .OnQosEvent = OnQosEvent,
312 };
313 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
314 ASSERT_EQ(ret, SOFTBUS_OK);
315 SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
316 ASSERT_TRUE(sessionParam != NULL);
317 memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
318 TestGenerateCommParam(sessionParam);
319 SessionInfo *session = TestGenerateSession(sessionParam);
320 ASSERT_TRUE(session != NULL);
321 session->channelType = CHANNEL_TYPE_AUTH;
322 ret = ClientAddNewSession(g_sessionName, session);
323 ASSERT_EQ(ret, SOFTBUS_OK);
324 isEnabled = true;
325 ret = OpenSessionWithExistSession(session->sessionId, isEnabled);
326 EXPECT_EQ(ret, INVALID_SESSION_ID);
327 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
328 EXPECT_EQ(ret, SOFTBUS_OK);
329 SoftBusFree(sessionParam);
330 }
331
332 /**
333 * @tc.name: TransClientSessionTest03
334 * @tc.desc: Transmission sdk session service creat session server with different parameters.
335 * @tc.type: FUNC
336 * @tc.require:
337 */
338 HWTEST_F(TransClientSessionTest, TransClientSessionTest03, TestSize.Level1)
339 {
340 const char *pkgName = "package.test";
341 int ret = CreateSessionServer(pkgName, g_sessionName, &g_sessionlistener);
342 EXPECT_EQ(ret, SOFTBUS_PERMISSION_DENIED);
343 ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
344 EXPECT_EQ(ret, SOFTBUS_OK);
345 ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
346 EXPECT_EQ(ret, SOFTBUS_OK);
347 ret = RemoveSessionServer(g_pkgName, g_sessionName);
348 EXPECT_EQ(ret, SOFTBUS_OK);
349 }
350
351 /**
352 * @tc.name: TransClientSessionTest04
353 * @tc.desc: Transmission sdk session service remove session server with different parameters.
354 * @tc.type: FUNC
355 * @tc.require:
356 */
357 HWTEST_F(TransClientSessionTest, TransClientSessionTest04, TestSize.Level1)
358 {
359 int ret = RemoveSessionServer(g_pkgName, g_sessionName);
360 EXPECT_EQ(ret, SOFTBUS_OK);
361 ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
362 EXPECT_EQ(ret, SOFTBUS_OK);
363 ret = RemoveSessionServer(g_pkgName, g_sessionName);
364 EXPECT_EQ(ret, SOFTBUS_OK);
365 }
366
367 /**
368 * @tc.name: TransClientSessionTest05
369 * @tc.desc: Transmission sdk session service open session.
370 * @tc.type: FUNC
371 * @tc.require:
372 */
373 HWTEST_F(TransClientSessionTest, TransClientSessionTest05, TestSize.Level1)
374 {
375 int32_t sessionId = 0;
376 bool isEnabled = false;
377 int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
378 ASSERT_EQ(ret, SOFTBUS_OK);
379 ret = OpenSession(g_sessionName, g_sessionName, g_networkId, g_groupId, &g_sessionAttr);
380 EXPECT_EQ(ret, SOFTBUS_ERR);
381 SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
382 ASSERT_TRUE(sessionParam != NULL);
383 memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
384 TestGenerateCommParam(sessionParam);
385 ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
386 ASSERT_EQ(ret, SOFTBUS_OK);
387 ret = OpenSession(g_sessionName, g_sessionName, g_networkId, g_groupId, &g_sessionAttr);
388 EXPECT_EQ(ret, sessionId);
389 ret = ClientDeleteSession(sessionId);
390 EXPECT_EQ(ret, SOFTBUS_OK);
391 ret = RemoveSessionServer(g_pkgName, g_sessionName);
392 EXPECT_EQ(ret, SOFTBUS_OK);
393 }
394
395 /**
396 * @tc.name: TransClientSessionTest06
397 * @tc.desc: Transmission sdk session service convert address string with different parameters.
398 * @tc.type: FUNC
399 * @tc.require:
400 */
401 HWTEST_F(TransClientSessionTest, TransClientSessionTest06, TestSize.Level1)
402 {
403 ConnectionAddr *addrInfo = (ConnectionAddr*)SoftBusMalloc(sizeof(ConnectionAddr));
404 ASSERT_TRUE(addrInfo != NULL);
405 int32_t ret = ConvertAddrStr(TRANS_TEST_AUTH_DATA, addrInfo);
406 EXPECT_EQ(ret, SOFTBUS_PARSE_JSON_ERR);
407 cJSON *msg = cJSON_CreateObject();
408 bool res = AddStringToJsonObject(msg, "ETH_IP", TRANS_TEST_CONN_IP);
409 ASSERT_TRUE(res);
410 res = AddNumberToJsonObject(msg, "ETH_PORT", TRANS_TEST_AUTH_PORT);
411 ASSERT_TRUE(res);
412 char *data = cJSON_PrintUnformatted(msg);
413 ret = ConvertAddrStr(data, addrInfo);
414 EXPECT_EQ(ret, SOFTBUS_OK);
415 cJSON_free(data);
416 cJSON_Delete(msg);
417 msg = cJSON_CreateObject();
418 res = AddStringToJsonObject(msg, "WIFI_IP", TRANS_TEST_CONN_IP);
419 ASSERT_TRUE(res);
420 res = AddNumberToJsonObject(msg, "WIFI_PORT", TRANS_TEST_AUTH_PORT);
421 ASSERT_TRUE(res);
422 data = cJSON_PrintUnformatted(msg);
423 ret = ConvertAddrStr(data, addrInfo);
424 EXPECT_EQ(ret, SOFTBUS_OK);
425 cJSON_free(data);
426 cJSON_Delete(msg);
427 msg = cJSON_CreateObject();
428 res = AddStringToJsonObject(msg, "BR_MAC", TRANS_TEST_BR_MAC);
429 ASSERT_TRUE(res);
430 data = cJSON_PrintUnformatted(msg);
431 ret = ConvertAddrStr(data, addrInfo);
432 EXPECT_EQ(ret, SOFTBUS_OK);
433 cJSON_free(data);
434 cJSON_Delete(msg);
435 msg = cJSON_CreateObject();
436 res = AddStringToJsonObject(msg, "BLE_MAC", TRANS_TEST_BR_MAC);
437 ASSERT_TRUE(res);
438 data = cJSON_PrintUnformatted(msg);
439 ret = ConvertAddrStr(data, addrInfo);
440 EXPECT_EQ(ret, SOFTBUS_OK);
441 cJSON_free(data);
442 cJSON_Delete(msg);
443 SoftBusFree(addrInfo);
444 }
445
446 /**
447 * @tc.name: TransClientSessionTest07
448 * @tc.desc: Transmission sdk session service is valid addrInfo.
449 * @tc.type: FUNC
450 * @tc.require:
451 */
452 HWTEST_F(TransClientSessionTest, TransClientSessionTest07, TestSize.Level1)
453 {
454 ConnectionAddr addrInfoArr[TRANS_TEST_ADDR_INFO_NUM] = {
455 {.type = CONNECTION_ADDR_MAX},
456 {.type = CONNECTION_ADDR_MAX}
457 };
458 int ret = IsValidAddrInfoArr(addrInfoArr, TRANS_TEST_ADDR_INFO_NUM);
459 EXPECT_EQ(ret, SOFTBUS_ERR);
460 }
461
462 /**
463 * @tc.name: TransClientSessionTest08
464 * @tc.desc: Transmission sdk session service open auth session with different.
465 * @tc.type: FUNC
466 * @tc.require:
467 */
468 HWTEST_F(TransClientSessionTest, TransClientSessionTest08, TestSize.Level1)
469 {
470 ConnectionAddr addrInfoArr[TRANS_TEST_ADDR_INFO_NUM] = {
471 {.type = CONNECTION_ADDR_MAX},
472 {.type = CONNECTION_ADDR_MAX}
473 };
474 cJSON *msg = cJSON_CreateObject();
475 bool res = AddStringToJsonObject(msg, "BLE_MAC", TRANS_TEST_BR_MAC);
476 ASSERT_TRUE(res);
477 char *data = cJSON_PrintUnformatted(msg);
478 int ret = OpenAuthSession(g_sessionName, addrInfoArr, TRANS_TEST_ADDR_INFO_NUM, data);
479 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSIONSERVER_NOT_CREATED);
480 ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
481 ASSERT_EQ(ret, SOFTBUS_OK);
482 ret = OpenAuthSession(g_sessionName, addrInfoArr, TRANS_TEST_ADDR_INFO_NUM, data);
483 ret = ClientDeleteSession(ret);
484 EXPECT_EQ(ret, SOFTBUS_OK);
485 cJSON_free(data);
486 cJSON_Delete(msg);
487 msg = cJSON_CreateObject();
488 res = AddStringToJsonObject(msg, "WIFI_IP", TRANS_TEST_CONN_IP);
489 ASSERT_TRUE(res);
490 res = AddNumberToJsonObject(msg, "WIFI_PORT", TRANS_TEST_AUTH_PORT);
491 ASSERT_TRUE(res);
492 data = cJSON_PrintUnformatted(msg);
493 ret = OpenAuthSession(g_sessionName, addrInfoArr, TRANS_TEST_ADDR_INFO_NUM, data);
494 EXPECT_EQ(ret, INVALID_SESSION_ID);
495 ret = ClientDeleteSession(ret);
496 EXPECT_EQ(ret, SOFTBUS_ERR);
497 ret = RemoveSessionServer(g_pkgName, g_sessionName);
498 EXPECT_EQ(ret, SOFTBUS_OK);
499 cJSON_free(data);
500 cJSON_Delete(msg);
501 }
502
503 /**
504 * @tc.name: TransClientSessionTest09
505 * @tc.desc: Transmission sdk session service notify auth success with different parameters.
506 * @tc.type: FUNC
507 * @tc.require:
508 */
509 HWTEST_F(TransClientSessionTest, TransClientSessionTest09, TestSize.Level1)
510 {
511 int32_t sessionId = 0;
512 bool isEnabled = false;
513 int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
514 ASSERT_EQ(ret, SOFTBUS_OK);
515 SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
516 ASSERT_TRUE(sessionParam != NULL);
517 memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
518 TestGenerateCommParam(sessionParam);
519 ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
520 ASSERT_EQ(ret, SOFTBUS_OK);
521 NotifyAuthSuccess(sessionId);
522 ret = ClientDeleteSession(sessionId);
523 ASSERT_EQ(ret, SOFTBUS_OK);
524 SessionInfo *session = TestGenerateSession(sessionParam);
525 ASSERT_TRUE(session != NULL);
526 session->isServer = true;
527 ret = ClientAddNewSession(g_sessionName, session);
528 ASSERT_EQ(ret, SOFTBUS_OK);
529 ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId);
530 EXPECT_EQ(ret, SOFTBUS_OK);
531 NotifyAuthSuccess(sessionId);
532 ret = ClientDeleteSession(sessionId);
533 EXPECT_EQ(ret, SOFTBUS_OK);
534 ret = RemoveSessionServer(g_pkgName, g_sessionName);
535 EXPECT_EQ(ret, SOFTBUS_OK);
536 SoftBusFree(sessionParam);
537 }
538
539 /**
540 * @tc.name: TransClientSessionTest10
541 * @tc.desc: Transmission sdk session service check whether session is opened with different parameters.
542 * @tc.type: FUNC
543 * @tc.require:
544 */
545 HWTEST_F(TransClientSessionTest, TransClientSessionTest10, TestSize.Level1)
546 {
547 int32_t sessionId = 0;
548 int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
549 ASSERT_EQ(ret, SOFTBUS_OK);
550 SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
551 ASSERT_TRUE(sessionParam != NULL);
552 memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
553 TestGenerateCommParam(sessionParam);
554 SessionInfo *session = TestGenerateSession(sessionParam);
555 ASSERT_TRUE(session != NULL);
556 session->isEnable = true;
557 ret = CheckSessionIsOpened(TRANS_TEST_CHANNEL_ID);
558 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
559 ret = ClientAddNewSession(g_sessionName, session);
560 ASSERT_EQ(ret, SOFTBUS_OK);
561 ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId);
562 EXPECT_EQ(ret, SOFTBUS_OK);
563 ret = CheckSessionIsOpened(sessionId);
564 EXPECT_EQ(ret, SOFTBUS_OK);
565 ret = ClientDeleteSession(sessionId);
566 EXPECT_EQ(ret, SOFTBUS_OK);
567 ret = RemoveSessionServer(g_pkgName, g_sessionName);
568 EXPECT_EQ(ret, SOFTBUS_OK);
569 SoftBusFree(sessionParam);
570 }
571
572 /**
573 * @tc.name: TransClientSessionTest11
574 * @tc.desc: Transmission sdk session service close session with different parameters.
575 * @tc.type: FUNC
576 * @tc.require:
577 */
578 HWTEST_F(TransClientSessionTest, TransClientSessionTest11, TestSize.Level1)
579 {
580 int32_t sessionId = 0;
581 int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
582 ASSERT_EQ(ret, SOFTBUS_OK);
583 CloseSession(TRANS_TEST_INVALID_SESSION_ID);
584 SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
585 ASSERT_TRUE(sessionParam != NULL);
586 memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
587 TestGenerateCommParam(sessionParam);
588 SessionInfo *session = TestGenerateSession(sessionParam);
589 ASSERT_TRUE(session != NULL);
590 session->channelType = CHANNEL_TYPE_UDP;
591 CloseSession(TRANS_TEST_SESSION_ID);
592 ret = ClientAddNewSession(g_sessionName, session);
593 ASSERT_EQ(ret, SOFTBUS_OK);
594 ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, &sessionId);
595 EXPECT_EQ(ret, SOFTBUS_OK);
596 CloseSession(sessionId);
597 ret = ClientDeleteSession(sessionId);
598 EXPECT_EQ(ret, SOFTBUS_ERR);
599 session = TestGenerateSession(sessionParam);
600 ASSERT_TRUE(session != NULL);
601 session->channelType = CHANNEL_TYPE_AUTH;
602 ret = ClientAddNewSession(g_sessionName, session);
603 ASSERT_EQ(ret, SOFTBUS_OK);
604 ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_AUTH, &sessionId);
605 EXPECT_EQ(ret, SOFTBUS_OK);
606 CloseSession(sessionId);
607 ret = ClientDeleteSession(sessionId);
608 EXPECT_EQ(ret, SOFTBUS_ERR);
609 ret = RemoveSessionServer(g_pkgName, g_sessionName);
610 EXPECT_EQ(ret, SOFTBUS_OK);
611 SoftBusFree(sessionParam);
612 }
613
614 /**
615 * @tc.name: TransClientSessionTest12
616 * @tc.desc: Transmission sdk session service get my session name with invalid parameters.
617 * @tc.type: FUNC
618 * @tc.require:
619 */
620 HWTEST_F(TransClientSessionTest, TransClientSessionTest12, TestSize.Level1)
621 {
622 char sessionName[SESSION_NAME_SIZE_MAX] = {0};
623 int ret = GetMySessionName(TRANS_TEST_INVALID_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX);
624 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
625 ret = GetMySessionName(TRANS_TEST_SESSION_ID, NULL, SESSION_NAME_SIZE_MAX);
626 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
627 ret = GetMySessionName(TRANS_TEST_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX + 1);
628 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
629 }
630
631 /**
632 * @tc.name: TransClientSessionTest13
633 * @tc.desc: Transmission sdk session service get peer session name with different parameters.
634 * @tc.type: FUNC
635 * @tc.require:
636 */
637 HWTEST_F(TransClientSessionTest, TransClientSessionTest13, TestSize.Level1)
638 {
639 char sessionName[SESSION_NAME_SIZE_MAX] = {0};
640 int ret = GetPeerSessionName(TRANS_TEST_INVALID_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX);
641 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
642 ret = GetPeerSessionName(TRANS_TEST_SESSION_ID, NULL, SESSION_NAME_SIZE_MAX);
643 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
644 ret = GetPeerSessionName(TRANS_TEST_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX + 1);
645 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
646 ret = GetPeerSessionName(TRANS_TEST_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX);
647 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
648 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
649 ASSERT_GT(sessionId, 0);
650 ret = GetPeerSessionName(sessionId, sessionName, SESSION_NAME_SIZE_MAX);
651 EXPECT_EQ(ret, SOFTBUS_OK);
652 ret = strcmp(g_sessionName, sessionName);
653 EXPECT_EQ(ret, EOK);
654 DeleteSessionServerAndSession(g_sessionName, sessionId);
655 }
656
657 /**
658 * @tc.name: TransClientSessionTest14
659 * @tc.desc: Transmission sdk session service get peer device Id with different parameters.
660 * @tc.type: FUNC
661 * @tc.require:
662 */
663 HWTEST_F(TransClientSessionTest, TransClientSessionTest14, TestSize.Level1)
664 {
665 char networkId[DEVICE_ID_SIZE_MAX] = {0};
666 int ret = GetPeerDeviceId(TRANS_TEST_INVALID_SESSION_ID, networkId, DEVICE_ID_SIZE_MAX);
667 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
668 ret = GetPeerDeviceId(TRANS_TEST_SESSION_ID, NULL, DEVICE_ID_SIZE_MAX);
669 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
670 ret = GetPeerDeviceId(TRANS_TEST_SESSION_ID, networkId, SESSION_NAME_SIZE_MAX + 1);
671 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
672 ret = GetPeerDeviceId(TRANS_TEST_SESSION_ID, networkId, DEVICE_ID_SIZE_MAX);
673 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
674 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
675 ASSERT_GT(sessionId, 0);
676 ret = GetPeerDeviceId(sessionId, networkId, DEVICE_ID_SIZE_MAX);
677 EXPECT_EQ(ret, SOFTBUS_OK);
678 ret = strcmp(g_deviceId, networkId);
679 EXPECT_EQ(ret, EOK);
680 DeleteSessionServerAndSession(g_sessionName, sessionId);
681 }
682
683 /**
684 * @tc.name: TransClientSessionTest15
685 * @tc.desc: Transmission sdk session service judge session server or client.
686 * @tc.type: FUNC
687 * @tc.require:
688 */
689 HWTEST_F(TransClientSessionTest, TransClientSessionTest15, TestSize.Level1)
690 {
691 int32_t ret = ClientGetSessionSide(TRANS_TEST_SESSION_ID);
692 EXPECT_EQ(ret, SOFTBUS_ERR);
693 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
694 ASSERT_GT(sessionId, 0);
695 ret = GetSessionSide(sessionId);
696 EXPECT_EQ(ret, IS_CLIENT);
697 DeleteSessionServerAndSession(g_sessionName, sessionId);
698 sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, true);
699 ASSERT_GT(sessionId, 0);
700 ret = GetSessionSide(sessionId);
701 EXPECT_EQ(ret, IS_SERVER);
702 DeleteSessionServerAndSession(g_sessionName, sessionId);
703 }
704
705 /**
706 * @tc.name: TransClientSessionTest16
707 * @tc.desc: Transmission sdk session service set file receive listener with different parameters.
708 * @tc.type: FUNC
709 * @tc.require:
710 */
711 HWTEST_F(TransClientSessionTest, TransClientSessionTest16, TestSize.Level1)
712 {
713 char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
714 memset_s(sessionName, SESSION_NAME_SIZE_MAX + 2, 'A', SESSION_NAME_SIZE_MAX + 1);
715 char pkgName[PKG_NAME_SIZE_MAX + 2] = {0};
716 memset_s(pkgName, PKG_NAME_SIZE_MAX + 2, 'B', PKG_NAME_SIZE_MAX + 1);
717 char rootDir[FILE_RECV_ROOT_DIR_SIZE_MAX + 2] = {0};
718 memset_s(rootDir, FILE_RECV_ROOT_DIR_SIZE_MAX + 2, 'C', FILE_RECV_ROOT_DIR_SIZE_MAX + 1);
719 int ret = SetFileReceiveListener(pkgName, g_sessionName, &g_fileRecvListener, g_rootDir);
720 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
721 ret = SetFileReceiveListener(g_pkgName, sessionName, &g_fileRecvListener, g_rootDir);
722 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
723 ret = SetFileReceiveListener(g_pkgName, g_sessionName, NULL, g_rootDir);
724 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
725 ret = SetFileReceiveListener(g_pkgName, g_sessionName, &g_fileRecvListener, NULL);
726 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
727 ret = SetFileReceiveListener(g_pkgName, g_sessionName, &g_fileRecvListener, g_rootDir);
728 EXPECT_EQ(ret, SOFTBUS_OK);
729 }
730
731 /**
732 * @tc.name: TransClientSessionTest17
733 * @tc.desc: Transmission sdk session service set file send listener with different parameters.
734 * @tc.type: FUNC
735 * @tc.require:
736 */
737 HWTEST_F(TransClientSessionTest, TransClientSessionTest17, TestSize.Level1)
738 {
739 char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
740 memset_s(sessionName, SESSION_NAME_SIZE_MAX + 2, 'A', SESSION_NAME_SIZE_MAX + 1);
741 char pkgName[PKG_NAME_SIZE_MAX + 2] = {0};
742 memset_s(pkgName, PKG_NAME_SIZE_MAX + 2, 'B', PKG_NAME_SIZE_MAX + 1);
743 char rootDir[FILE_RECV_ROOT_DIR_SIZE_MAX + 2] = {0};
744 memset_s(rootDir, FILE_RECV_ROOT_DIR_SIZE_MAX + 2, 'C', FILE_RECV_ROOT_DIR_SIZE_MAX + 1);
745 int ret = SetFileSendListener(pkgName, g_sessionName, &g_fileSendListener);
746 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
747 ret = SetFileSendListener(g_pkgName, sessionName, &g_fileSendListener);
748 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
749 ret = SetFileSendListener(g_pkgName, g_sessionName, NULL);
750 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
751 ret = SetFileSendListener(g_pkgName, g_sessionName, &g_fileSendListener);
752 EXPECT_EQ(ret, SOFTBUS_OK);
753 }
754
755 /**
756 * @tc.name: TransClientSessionTest18
757 * @tc.desc: Transmission sdk session service judge whether session is DFS with different parameters.
758 * @tc.type: FUNC
759 * @tc.require:
760 */
761 HWTEST_F(TransClientSessionTest, TransClientSessionTest18, TestSize.Level1)
762 {
763 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
764 ASSERT_GT(sessionId, 0);
765 int32_t channelId = 0;
766 int32_t ret = IsValidDFSSession(sessionId, &channelId);
767 EXPECT_EQ(ret, SOFTBUS_TRANS_FUNC_NOT_SUPPORT);
768 DeleteSessionServerAndSession(g_sessionName, sessionId);
769 const char *dfsSessionName = "DistributedFileService";
770 sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_BUTT, false);
771 ASSERT_GT(sessionId, 0);
772 ret = IsValidDFSSession(sessionId, &channelId);
773 EXPECT_EQ(ret, SOFTBUS_TRANS_FUNC_NOT_SUPPORT);
774 EXPECT_EQ(channelId, TRANS_TEST_CHANNEL_ID);
775 DeleteSessionServerAndSession(dfsSessionName, sessionId);
776 sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
777 ASSERT_GT(sessionId, 0);
778 ret = IsValidDFSSession(sessionId, &channelId);
779 EXPECT_EQ(ret, SOFTBUS_OK);
780 EXPECT_EQ(channelId, TRANS_TEST_CHANNEL_ID);
781 DeleteSessionServerAndSession(dfsSessionName, sessionId);
782 }
783
784 /**
785 * @tc.name: TransClientSessionTest19
786 * @tc.desc: Transmission sdk session service get session key with different parameters.
787 * @tc.type: FUNC
788 * @tc.require:
789 */
790 HWTEST_F(TransClientSessionTest, TransClientSessionTest19, TestSize.Level1)
791 {
792 const char *dfsSessionName = "DistributedFileService";
793 int32_t sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
794 ASSERT_GT(sessionId, 0);
795 char sessionKey[SESSION_KEY_LEN] = {0};
796 int32_t ret = GetSessionKey(sessionId, sessionKey, SESSION_KEY_LEN);
797 EXPECT_EQ(ret, SOFTBUS_ERR);
798 DeleteSessionServerAndSession(dfsSessionName, sessionId);
799 }
800
801 /**
802 * @tc.name: TransClientSessionTest20
803 * @tc.desc: Transmission sdk session service get session handle.
804 * @tc.type: FUNC
805 * @tc.require:
806 */
807 HWTEST_F(TransClientSessionTest, TransClientSessionTest20, TestSize.Level1)
808 {
809 const char *dfsSessionName = "DistributedFileService";
810 int32_t sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
811 ASSERT_GT(sessionId, 0);
812 int handle = 0;
813 int32_t ret = GetSessionHandle(sessionId, &handle);
814 EXPECT_EQ(ret, SOFTBUS_ERR);
815 DeleteSessionServerAndSession(dfsSessionName, sessionId);
816 }
817
818 /**
819 * @tc.name: TransClientSessionTest21
820 * @tc.desc: Transmission sdk session service disable session listener.
821 * @tc.type: FUNC
822 * @tc.require:
823 */
824 HWTEST_F(TransClientSessionTest, TransClientSessionTest21, TestSize.Level1)
825 {
826 const char *dfsSessionName = "DistributedFileService";
827 int32_t sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
828 ASSERT_GT(sessionId, 0);
829 int32_t ret = DisableSessionListener(sessionId);
830 EXPECT_EQ(ret, SOFTBUS_ERR);
831 DeleteSessionServerAndSession(dfsSessionName, sessionId);
832 }
833
834 /**
835 * @tc.name: TransClientSessionTest22
836 * @tc.desc: Transmission sdk session service read max send bytes size with different parameters.
837 * @tc.type: FUNC
838 * @tc.require:
839 */
840 HWTEST_F(TransClientSessionTest, TransClientSessionTest22, TestSize.Level1)
841 {
842 uint32_t value = 0;
843 int ret = ReadMaxSendBytesSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT,
844 &value, TRANS_TEST_INVALID_VALUE_SIZE);
845 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
846 ret = ReadMaxSendBytesSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &value, sizeof(value));
847 EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
848 ret = ReadMaxSendBytesSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT, &value, sizeof(value));
849 EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
850 }
851
852 /**
853 * @tc.name: TransClientSessionTest23
854 * @tc.desc: Transmission sdk session service read max send message size with different parameters.
855 * @tc.type: FUNC
856 * @tc.require:
857 */
858 HWTEST_F(TransClientSessionTest, TransClientSessionTest23, TestSize.Level1)
859 {
860 uint32_t value = 0;
861 int ret = ReadMaxSendMessageSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT,
862 &value, TRANS_TEST_INVALID_VALUE_SIZE);
863 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
864 ret = ReadMaxSendMessageSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &value, sizeof(value));
865 EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
866 ret = ReadMaxSendMessageSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT, &value, sizeof(value));
867 EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
868 }
869
870 /**
871 * @tc.name: TransClientSessionTest24
872 * @tc.desc: Transmission sdk session service get session option with different parameters.
873 * @tc.type: FUNC
874 * @tc.require:
875 */
876 HWTEST_F(TransClientSessionTest, TransClientSessionTest24, TestSize.Level1)
877 {
878 uint32_t optionValue = 0;
879 int ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_BUTT,
880 &optionValue, sizeof(optionValue));
881 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
882 ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_MAX_SENDBYTES_SIZE,
883 NULL, sizeof(optionValue));
884 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
885 ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_MAX_SENDBYTES_SIZE,
886 &optionValue, 0);
887 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
888 ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_MAX_SENDBYTES_SIZE,
889 &optionValue, sizeof(optionValue));
890 EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
891 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
892 ASSERT_GT(sessionId, 0);
893 ret = GetSessionOption(sessionId, SESSION_OPTION_MAX_SENDBYTES_SIZE,
894 &optionValue, sizeof(optionValue));
895 EXPECT_EQ(ret, SOFTBUS_OK);
896 DeleteSessionServerAndSession(g_sessionName, sessionId);
897 }
898
899 /**
900 * @tc.name: TransClientSessionTest25
901 * @tc.desc: Transmission sdk session manager lnn offline process with different parameters.
902 * @tc.type: FUNC
903 * @tc.require:
904 */
905 HWTEST_F(TransClientSessionTest, TransClientSessionTest25, TestSize.Level1)
906 {
907 ClientTransLnnOfflineProc(NULL);
908 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
909 ASSERT_GT(sessionId, 0);
910
911 NodeBasicInfo info;
912 memset_s(&info, sizeof(NodeBasicInfo), 0, sizeof(NodeBasicInfo));
913 int ret = strcpy_s(info.networkId, sizeof(info.networkId), g_networkId);
914 ASSERT_EQ(ret, EOK);
915 ret = strcpy_s(info.deviceName, sizeof(info.deviceName), g_deviceName);
916 ASSERT_EQ(ret, EOK);
917 info.deviceTypeId = TRANS_TEST_DEVICE_TYPE_ID;
918 ClientTransLnnOfflineProc(&info);
919
920 DeleteSessionServerAndSession(g_sessionName, sessionId);
921 }
922
923 /**
924 * @tc.name: TransClientSessionTest26
925 * @tc.desc: Transmission sdk session manager judge session whether session is available.
926 * @tc.type: FUNC
927 * @tc.require:
928 */
929 HWTEST_F(TransClientSessionTest, TransClientSessionTest26, TestSize.Level1)
930 {
931 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
932 ASSERT_GT(sessionId, 0);
933 DestroyClientSessionServer(NULL, NULL);
934 bool res = SessionIdIsAvailable(sessionId);
935 EXPECT_FALSE(res);
936
937 DeleteSessionServerAndSession(g_sessionName, sessionId);
938 }
939
940 /**
941 * @tc.name: TransClientSessionTest27
942 * @tc.desc: Transmission sdk session manager get new session server with different parameters.
943 * @tc.type: FUNC
944 * @tc.require:
945 */
946 HWTEST_F(TransClientSessionTest, TransClientSessionTest27, TestSize.Level1)
947 {
948 ClientSessionServer *server = GetNewSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName, g_pkgName, &g_sessionlistener);
949 ASSERT_TRUE(server != NULL);
950 SoftBusFree(server);
951 char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
952 memset_s(sessionName, sizeof(sessionName), 'A', SESSION_NAME_SIZE_MAX + 1);
953 server = GetNewSessionServer(SEC_TYPE_PLAINTEXT, sessionName, g_pkgName, &g_sessionlistener);
954 EXPECT_TRUE(server == NULL);
955 char pkgName[PKG_NAME_SIZE_MAX + 2] = {0};
956 memset_s(pkgName, sizeof(pkgName), 'B', PKG_NAME_SIZE_MAX + 1);
957 server = GetNewSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName, pkgName, &g_sessionlistener);
958 EXPECT_TRUE(server == NULL);
959 }
960
961 /**
962 * @tc.name: TransClientSessionTest28
963 * @tc.desc: Transmission sdk session manager judge whether parameter is valid with different parameters.
964 * @tc.type: FUNC
965 * @tc.require:
966 */
967 HWTEST_F(TransClientSessionTest, TransClientSessionTest28, TestSize.Level1)
968 {
969 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
970 ASSERT_TRUE(sessionParam != NULL);
971
972 bool res = IsValidSessionParam(NULL);
973 EXPECT_FALSE(res);
974 res = IsValidSessionParam(sessionParam);
975 EXPECT_FALSE(res);
976 sessionParam->sessionName = g_sessionName;
977 res = IsValidSessionParam(sessionParam);
978 EXPECT_FALSE(res);
979 sessionParam->peerSessionName = g_sessionName;
980 res = IsValidSessionParam(sessionParam);
981 EXPECT_FALSE(res);
982 sessionParam->peerDeviceId = g_deviceId;
983 res = IsValidSessionParam(sessionParam);
984 EXPECT_FALSE(res);
985 sessionParam->groupId = g_groupId;
986 res = IsValidSessionParam(sessionParam);
987 EXPECT_FALSE(res);
988 sessionParam->attr = (const SessionAttribute*)&g_sessionAttr;
989 res = IsValidSessionParam(sessionParam);
990 EXPECT_TRUE(res);
991
992 SoftBusFree(sessionParam);
993 }
994
995 /**
996 * @tc.name: TransClientSessionTest29
997 * @tc.desc: Transmission sdk session manager create new session with different parameters.
998 * @tc.type: FUNC
999 * @tc.require:
1000 */
1001 HWTEST_F(TransClientSessionTest, TransClientSessionTest29, TestSize.Level1)
1002 {
1003 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
1004 ASSERT_TRUE(sessionParam != NULL);
1005
1006 TestGenerateCommParam(sessionParam);
1007 SessionInfo *session = CreateNewSession(sessionParam);
1008 EXPECT_TRUE(session != NULL);
1009 SoftBusFree(session);
1010
1011 char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
1012 memset_s(sessionName, sizeof(sessionName), 'A', SESSION_NAME_SIZE_MAX + 1);
1013 sessionParam->peerSessionName = (const char*)sessionName;
1014 session = CreateNewSession(sessionParam);
1015 EXPECT_TRUE(session == NULL);
1016
1017 char deviceId[DEVICE_ID_SIZE_MAX + 2] = {0};
1018 memset_s(deviceId, sizeof(deviceId), 'B', DEVICE_ID_SIZE_MAX + 1);
1019 sessionParam->peerSessionName = g_sessionName;
1020 sessionParam->peerDeviceId = (const char*)deviceId;
1021 session = CreateNewSession(sessionParam);
1022 EXPECT_TRUE(session == NULL);
1023
1024 char groupId[GROUP_ID_SIZE_MAX + 2] = {0};
1025 memset_s(groupId, sizeof(groupId), 'C', GROUP_ID_SIZE_MAX + 1);
1026 sessionParam->peerSessionName = g_sessionName;
1027 sessionParam->peerDeviceId = g_deviceId;
1028 sessionParam->groupId = (const char*)groupId;
1029 session = CreateNewSession(sessionParam);
1030 EXPECT_TRUE(session == NULL);
1031
1032 SoftBusFree(sessionParam);
1033 }
1034
1035 /**
1036 * @tc.name: TransClientSessionTest30
1037 * @tc.desc: Transmission sdk session manager get exist session.
1038 * @tc.type: FUNC
1039 * @tc.require:
1040 */
1041 HWTEST_F(TransClientSessionTest, TransClientSessionTest30, TestSize.Level1)
1042 {
1043 int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
1044 ASSERT_GT(sessionId, 0);
1045
1046 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
1047 ASSERT_TRUE(sessionParam != NULL);
1048 TestGenerateCommParam(sessionParam);
1049
1050 SessionInfo *session = GetExistSession(sessionParam);
1051 ASSERT_TRUE(session != NULL);
1052
1053 int ret = strcmp(session->info.peerSessionName, sessionParam->peerSessionName);
1054 EXPECT_EQ(ret, EOK);
1055 ret = strcmp(session->info.peerDeviceId, sessionParam->peerDeviceId);
1056 EXPECT_EQ(ret, EOK);
1057 ret = strcmp(session->info.groupId, sessionParam->groupId);
1058 EXPECT_EQ(ret, EOK);
1059
1060 DeleteSessionServerAndSession(g_sessionName, sessionId);
1061 }
1062 }