• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_app_info.h"
24 #include "softbus_server_frame.h"
25 #include "softbus_adapter_mem.h"
26 #include "client_trans_session_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 
32 #define TRANS_TEST_SESSION_ID 10
33 #define TRANS_TEST_PID 0
34 #define TRANS_TEST_UID 0
35 #define TRANS_TEST_CHANNEL_ID 1000
36 #define TRANS_TEST_FILE_ENCRYPT 10
37 #define TRANS_TEST_ALGORITHM 1
38 #define TRANS_TEST_CRC 1
39 #define TRANS_TEST_EVENT_ID 1
40 #define TRANS_TEST_TV_COUNT 1
41 #define TRANS_TEST_AUTH_DATA "test auth message data"
42 
43 #define TRANS_TEST_INVALID_CHANNEL_ID (-1)
44 
45 #define MAX_SESSION_SERVER_NUM 32
46 
47 using namespace testing::ext;
48 
49 namespace OHOS {
50 
51 const char *g_pkgName = "dms";
52 const char *g_sessionName = "ohos.distributedschedule.dms.test";
53 const char *g_networkId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
54 const char *g_deviceId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
55 const char *g_groupid = "TEST_GROUP_ID";
56 static SessionAttribute g_sessionAttr = {
57     .dataType = TYPE_BYTES,
58 };
59 class TransClientSessionCallbackTest : public testing::Test {
60 public:
TransClientSessionCallbackTest()61     TransClientSessionCallbackTest()
62     {}
~TransClientSessionCallbackTest()63     ~TransClientSessionCallbackTest()
64     {}
65     static void SetUpTestCase(void);
66     static void TearDownTestCase(void);
SetUp()67     void SetUp() override
68     {}
TearDown()69     void TearDown() override
70     {}
71 };
72 
SetUpTestCase(void)73 void TransClientSessionCallbackTest::SetUpTestCase(void)
74 {
75     InitSoftBusServer();
76     int32_t ret = TransClientInit();
77     ASSERT_EQ(ret, SOFTBUS_OK);
78 }
79 
TearDownTestCase(void)80 void TransClientSessionCallbackTest::TearDownTestCase(void)
81 {
82 }
83 
OnSessionOpened(int sessionId,int result)84 static int OnSessionOpened(int sessionId, int result)
85 {
86     LOG_INFO("session opened,sesison id = %d\r\n", sessionId);
87     return SOFTBUS_OK;
88 }
89 
OnSessionClosed(int sessionId)90 static void OnSessionClosed(int sessionId)
91 {
92     LOG_INFO("session closed, session id = %d\r\n", sessionId);
93 }
94 
OnBytesReceived(int sessionId,const void * data,unsigned int len)95 static void OnBytesReceived(int sessionId, const void *data, unsigned int len)
96 {
97     LOG_INFO("session bytes received, session id = %d\r\n", sessionId);
98 }
99 
OnMessageReceived(int sessionId,const void * data,unsigned int len)100 static void OnMessageReceived(int sessionId, const void *data, unsigned int len)
101 {
102     LOG_INFO("session msg received, session id = %d\r\n", sessionId);
103 }
104 
OnStreamReceived(int sessionId,const StreamData * data,const StreamData * ext,const StreamFrameInfo * param)105 static void OnStreamReceived(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)
106 {
107     LOG_INFO("session stream received, session id = %d\r\n", sessionId);
108 }
109 
OnQosEvent(int sessionId,int eventId,int tvCount,const QosTv * tvList)110 static void OnQosEvent(int sessionId, int eventId, int tvCount, const QosTv *tvList)
111 {
112     LOG_INFO("session Qos event emit, session id = %d\r\n", sessionId);
113 }
114 static ISessionListener g_sessionlistener = {
115     .OnSessionOpened = OnSessionOpened,
116     .OnSessionClosed = OnSessionClosed,
117     .OnBytesReceived = OnBytesReceived,
118     .OnMessageReceived = OnMessageReceived,
119     .OnStreamReceived = OnStreamReceived,
120     .OnQosEvent = OnQosEvent,
121 };
122 
TestGenerateCommParam(SessionParam * sessionParam)123 static void TestGenerateCommParam(SessionParam *sessionParam)
124 {
125     sessionParam->sessionName = g_sessionName;
126     sessionParam->peerSessionName = g_sessionName;
127     sessionParam->peerDeviceId = g_deviceId;
128     sessionParam->groupId = g_groupid;
129     sessionParam->attr = &g_sessionAttr;
130 }
131 
TestGenerateChannInfo(ChannelInfo * channel)132 static int32_t TestGenerateChannInfo(ChannelInfo *channel)
133 {
134     char *sessionName = (char*)SoftBusCalloc(SESSION_NAME_SIZE_MAX * sizeof(char));
135     char *deviceId = (char*)SoftBusCalloc(DEVICE_ID_SIZE_MAX * sizeof(char));
136     char *groupId = (char*)SoftBusCalloc(GROUP_ID_SIZE_MAX * sizeof(char));
137 
138     if (sessionName == NULL || deviceId == NULL || groupId == NULL ||
139         strcpy_s(sessionName, SESSION_NAME_SIZE_MAX, g_sessionName) != EOK ||
140         strcpy_s(deviceId, SESSION_NAME_SIZE_MAX, g_deviceId) != EOK ||
141         strcpy_s(groupId, SESSION_NAME_SIZE_MAX, g_groupid) != EOK) {
142         SoftBusFree(sessionName);
143         SoftBusFree(deviceId);
144         SoftBusFree(groupId);
145         return SOFTBUS_ERR;
146     }
147 
148     channel->peerSessionName = sessionName;
149     channel->peerDeviceId = deviceId;
150     channel->groupId = groupId;
151     channel->channelId = TRANS_TEST_CHANNEL_ID;
152     channel->channelType = CHANNEL_TYPE_BUTT;
153     channel->peerPid = TRANS_TEST_PID;
154     channel->peerUid = TRANS_TEST_UID;
155     channel->isServer = false;
156     channel->businessType = BUSINESS_TYPE_BUTT;
157     channel->routeType = ROUTE_TYPE_ALL;
158     channel->encrypt = TRANS_TEST_FILE_ENCRYPT;
159     channel->algorithm = TRANS_TEST_ALGORITHM;
160     channel->crc = TRANS_TEST_CRC;
161 
162     return SOFTBUS_OK;
163 }
164 
TestGenerateSession(const SessionParam * param)165 static SessionInfo *TestGenerateSession(const SessionParam *param)
166 {
167     SessionInfo *session = (SessionInfo*)SoftBusCalloc(sizeof(SessionInfo));
168     if (session == NULL) {
169         return NULL;
170     }
171 
172     if (strcpy_s(session->info.peerSessionName, SESSION_NAME_SIZE_MAX, param->peerSessionName) != EOK ||
173         strcpy_s(session->info.peerDeviceId, DEVICE_ID_SIZE_MAX, param->peerDeviceId) != EOK ||
174         strcpy_s(session->info.groupId, GROUP_ID_SIZE_MAX, param->groupId) != EOK) {
175         SoftBusFree(session);
176         return NULL;
177     }
178 
179     session->sessionId = TRANS_TEST_SESSION_ID;
180     session->channelId = TRANS_TEST_CHANNEL_ID;
181     session->channelType = CHANNEL_TYPE_BUTT;
182     session->isServer = false;
183     session->isEnable = false;
184     session->routeType = ROUTE_TYPE_ALL;
185     session->info.flag = TYPE_BYTES;
186     session->isEncrypt = true;
187     session->algorithm = TRANS_TEST_ALGORITHM;
188     session->fileEncrypt = TRANS_TEST_FILE_ENCRYPT;
189     session->crc = TRANS_TEST_CRC;
190 
191     return session;
192 }
193 
RelesseChannInfo(ChannelInfo * channel)194 static void RelesseChannInfo(ChannelInfo *channel)
195 {
196     if (channel != NULL) {
197         if (channel->peerSessionName != NULL) {
198             SoftBusFree(channel->peerSessionName);
199         }
200         if (channel->peerDeviceId != NULL) {
201             SoftBusFree(channel->peerDeviceId);
202         }
203         if (channel->groupId != NULL) {
204             SoftBusFree(channel->groupId);
205         }
206         SoftBusFree(channel);
207     }
208     channel = NULL;
209 }
210 
211 /**
212  * @tc.name: TransClientSessionCallbackTest01
213  * @tc.desc: Transmission sdk session callback accept session as server with different parameters.
214  * @tc.type: FUNC
215  * @tc.require:
216  */
217 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest01, TestSize.Level1)
218 {
219     int32_t sessionId = 0;
220     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
221     ASSERT_TRUE(sessionParam != NULL);
222     TestGenerateCommParam(sessionParam);
223     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
224     ASSERT_EQ(ret, SOFTBUS_OK);
225     ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
226     ASSERT_TRUE(channel != NULL);
227     ret = TestGenerateChannInfo(channel);
228     ASSERT_EQ(ret, SOFTBUS_OK);
229     ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
230     EXPECT_EQ(ret, SOFTBUS_OK);
231     const char *sessionName = "com.huawei.devicegroupmanage";
232     ret = AcceptSessionAsServer(sessionName, channel, TYPE_BUTT, &sessionId);
233     EXPECT_EQ(ret, SOFTBUS_ERR);
234     SoftBusFree(channel->groupId);
235     channel->groupId = NULL;
236     ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
237     EXPECT_EQ(ret, SOFTBUS_MEM_ERR);
238     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
239     EXPECT_EQ(ret, SOFTBUS_OK);
240     RelesseChannInfo(channel);
241 }
242 
243 /**
244  * @tc.name: TransClientSessionCallbackTest02
245  * @tc.desc: Transmission sdk session callback get session callback by channe id with different parameters.
246  * @tc.type: FUNC
247  * @tc.require:
248  */
249 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest02, TestSize.Level1)
250 {
251     int32_t sessionId = 0;
252     ISessionListener listener = {0};
253     int32_t ret = GetSessionCallbackByChannelId(TRANS_TEST_INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT,
254                                                 &sessionId, &listener);
255     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
256     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, NULL, &listener);
257     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
258     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, NULL);
259     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
260     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
261     EXPECT_EQ(ret, SOFTBUS_ERR);
262     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
263     EXPECT_EQ(ret, SOFTBUS_OK);
264     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
265     ASSERT_TRUE(sessionParam != NULL);
266     TestGenerateCommParam(sessionParam);
267     SessionInfo *session = TestGenerateSession(sessionParam);
268     ASSERT_TRUE(session != NULL);
269     ret = ClientAddNewSession(g_sessionName, session);
270     ASSERT_EQ(ret, SOFTBUS_OK);
271     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
272     EXPECT_EQ(ret, SOFTBUS_OK);
273     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
274     EXPECT_EQ(ret, SOFTBUS_OK);
275     SoftBusFree(sessionParam);
276 }
277 
278 /**
279  * @tc.name: TransClientSessionCallbackTest03
280  * @tc.desc: Transmission sdk session callback on session opened with invalid parameters.
281  * @tc.type: FUNC
282  * @tc.require:
283  */
284 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest03, TestSize.Level1)
285 {
286     ISessionListener sessionlistener = {
287         .OnSessionOpened = NULL,
288         .OnSessionClosed = OnSessionClosed,
289         .OnBytesReceived = OnBytesReceived,
290         .OnMessageReceived = OnMessageReceived,
291     };
292     ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
293     ASSERT_TRUE(channel != NULL);
294     int32_t ret = TestGenerateChannInfo(channel);
295     ASSERT_EQ(ret, SOFTBUS_OK);
296     ret = TransOnSessionOpened(NULL, channel, TYPE_BUTT);
297     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
298     ret = TransOnSessionOpened(g_sessionName, NULL, TYPE_BUTT);
299     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
300     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT);
301     EXPECT_EQ(ret, SOFTBUS_ERR);
302     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
303     ASSERT_EQ(ret, SOFTBUS_OK);
304     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
305     ASSERT_TRUE(sessionParam != NULL);
306     TestGenerateCommParam(sessionParam);
307     SessionInfo *session = TestGenerateSession(sessionParam);
308     ASSERT_TRUE(session != NULL);
309     ret = ClientAddNewSession(g_sessionName, session);
310     ASSERT_EQ(ret, SOFTBUS_OK);
311     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT);
312     EXPECT_EQ(ret, SOFTBUS_ERR);
313     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
314     EXPECT_EQ(ret, SOFTBUS_OK);
315     RelesseChannInfo(channel);
316     SoftBusFree(sessionParam);
317 }
318 
319 /**
320  * @tc.name: TransClientSessionCallbackTest04
321  * @tc.desc: Transmission sdk session callback on session opened with different parameters.
322  * @tc.type: FUNC
323  * @tc.require:
324  */
325 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest04, TestSize.Level1)
326 {
327     ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
328     ASSERT_TRUE(channel != NULL);
329     int32_t ret = TestGenerateChannInfo(channel);
330     ASSERT_EQ(ret, SOFTBUS_OK);
331     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
332     ASSERT_EQ(ret, SOFTBUS_OK);
333     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
334     ASSERT_TRUE(sessionParam != NULL);
335     TestGenerateCommParam(sessionParam);
336     SessionInfo *session = TestGenerateSession(sessionParam);
337     ASSERT_TRUE(session != NULL);
338     ret = ClientAddNewSession(g_sessionName, session);
339     ASSERT_EQ(ret, SOFTBUS_OK);
340     channel->channelType = TYPE_BUTT;
341     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES);
342     EXPECT_EQ(ret, SOFTBUS_ERR);
343     channel->isServer = true;
344     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES);
345     EXPECT_EQ(ret, SOFTBUS_OK);
346     ret = TransOnSessionOpenFailed(TRANS_TEST_CHANNEL_ID, TYPE_BYTES, SOFTBUS_ERR);
347     EXPECT_EQ(ret, SOFTBUS_OK);
348     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
349     EXPECT_EQ(ret, SOFTBUS_OK);
350     RelesseChannInfo(channel);
351     SoftBusFree(sessionParam);
352 }
353 
354 /**
355  * @tc.name: TransClientSessionCallbackTest05
356  * @tc.desc: Transmission sdk session callback on session closed.
357  * @tc.type: FUNC
358  * @tc.require:
359  */
360 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest05, TestSize.Level1)
361 {
362     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
363     ASSERT_EQ(ret, SOFTBUS_OK);
364     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
365     ASSERT_TRUE(sessionParam != NULL);
366     TestGenerateCommParam(sessionParam);
367     SessionInfo *session = TestGenerateSession(sessionParam);
368     ASSERT_TRUE(session != NULL);
369     ret = ClientAddNewSession(g_sessionName, session);
370     ASSERT_EQ(ret, SOFTBUS_OK);
371     ret = TransOnSessionClosed(INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT);
372     EXPECT_EQ(ret, SOFTBUS_ERR);
373     ret = TransOnSessionClosed(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT);
374     EXPECT_EQ(ret, SOFTBUS_OK);
375     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
376     EXPECT_EQ(ret, SOFTBUS_OK);
377     SoftBusFree(sessionParam);
378 }
379 
380 /**
381  * @tc.name: TransClientSessionCallbackTest06
382  * @tc.desc: Transmission sdk session callback process receive file data with different parameter.
383  * @tc.type: FUNC
384  * @tc.require:
385  */
386 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest06, TestSize.Level1)
387 {
388     int32_t sessionId = 0;
389     bool isEnabled = false;
390     int32_t ret = ProcessReceivedFileData(TRANS_TEST_SESSION_ID, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
391                                           strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
392     EXPECT_EQ(ret, SOFTBUS_ERR);
393     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
394     ASSERT_EQ(ret, SOFTBUS_OK);
395     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
396     ASSERT_TRUE(sessionParam != NULL);
397     TestGenerateCommParam(sessionParam);
398     ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
399     ASSERT_EQ(ret, SOFTBUS_OK);
400     ret = ProcessReceivedFileData(sessionId, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
401                                   strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
402     EXPECT_EQ(ret, SOFTBUS_ERR);
403     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
404     EXPECT_EQ(ret, SOFTBUS_OK);
405     SoftBusFree(sessionParam);
406 }
407 
408 /**
409  * @tc.name: TransClientSessionCallbackTest07
410  * @tc.desc: Transmission sdk session callback on data received with different parameter.
411  * @tc.type: FUNC
412  * @tc.require:
413  */
414 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest07, TestSize.Level1)
415 {
416     int32_t ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_AUTH_DATA,
417                                       strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
418     EXPECT_EQ(ret, SOFTBUS_ERR);
419     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
420     ASSERT_EQ(ret, SOFTBUS_OK);
421     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
422     ASSERT_TRUE(sessionParam != NULL);
423     TestGenerateCommParam(sessionParam);
424     SessionInfo *session = TestGenerateSession(sessionParam);
425     ASSERT_TRUE(session != NULL);
426     session->channelType = CHANNEL_TYPE_PROXY;
427     ret = ClientAddNewSession(g_sessionName, session);
428     ASSERT_EQ(ret, SOFTBUS_OK);
429     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
430                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
431     EXPECT_EQ(ret, SOFTBUS_ERR);
432 
433     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
434                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ONGOINE_FRAME);
435     EXPECT_EQ(ret, SOFTBUS_ERR);
436 
437     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
438                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_LAST_FRAME);
439     EXPECT_EQ(ret, SOFTBUS_ERR);
440 
441     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
442                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ONLYONE_FRAME);
443     EXPECT_EQ(ret, SOFTBUS_ERR);
444 
445     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
446                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_BYTES);
447     EXPECT_EQ(ret, SOFTBUS_OK);
448     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
449                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_MESSAGE);
450     EXPECT_EQ(ret, SOFTBUS_OK);
451     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
452     EXPECT_EQ(ret, SOFTBUS_OK);
453     SoftBusFree(sessionParam);
454 }
455 
456 /**
457  * @tc.name: TransClientSessionCallbackTest08
458  * @tc.desc: Transmission sdk session callback on stream received with different parameter.
459  * @tc.type: FUNC
460  * @tc.require:
461  */
462 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest08, TestSize.Level1)
463 {
464     StreamData data = {0};
465     StreamData ext = {0};
466     StreamFrameInfo param = {0};
467     int32_t ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, &param);
468     EXPECT_EQ(ret, SOFTBUS_ERR);
469     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
470     ASSERT_EQ(ret, SOFTBUS_OK);
471     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
472     ASSERT_TRUE(sessionParam != NULL);
473     TestGenerateCommParam(sessionParam);
474     SessionInfo *session = TestGenerateSession(sessionParam);
475     ASSERT_TRUE(session != NULL);
476     ret = ClientAddNewSession(g_sessionName, session);
477     ASSERT_EQ(ret, SOFTBUS_OK);
478     ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, &param);
479     EXPECT_EQ(ret, SOFTBUS_OK);
480     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
481     EXPECT_EQ(ret, SOFTBUS_OK);
482     SoftBusFree(sessionParam);
483 }
484 
485 /**
486  * @tc.name: TransClientSessionCallbackTest09
487  * @tc.desc: Transmission sdk session callback on stream received no callback.
488  * @tc.type: FUNC
489  * @tc.require:
490  */
491 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest09, TestSize.Level1)
492 {
493     StreamData data = {0};
494     StreamData ext = {0};
495     StreamFrameInfo param = {0};
496     ISessionListener sessionlistener = {
497         .OnSessionOpened = OnSessionOpened,
498         .OnSessionClosed = OnSessionClosed,
499         .OnBytesReceived = OnBytesReceived,
500         .OnMessageReceived = OnMessageReceived,
501         .OnStreamReceived = NULL,
502     };
503     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
504     ASSERT_EQ(ret, SOFTBUS_OK);
505     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
506     ASSERT_TRUE(sessionParam != NULL);
507     TestGenerateCommParam(sessionParam);
508     SessionInfo *session = TestGenerateSession(sessionParam);
509     ASSERT_TRUE(session != NULL);
510     ret = ClientAddNewSession(g_sessionName, session);
511     ASSERT_EQ(ret, SOFTBUS_OK);
512     ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, &param);
513     EXPECT_EQ(ret, SOFTBUS_ERR);
514     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
515     EXPECT_EQ(ret, SOFTBUS_OK);
516     SoftBusFree(sessionParam);
517 }
518 
519 /**
520  * @tc.name: TransClientSessionCallbackTest10
521  * @tc.desc: Transmission sdk session callback on qos with different parameter.
522  * @tc.type: FUNC
523  * @tc.require:
524  */
525 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest10, TestSize.Level1)
526 {
527     QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
528     ASSERT_TRUE(tvList != NULL);
529     int32_t ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID,
530                                   TRANS_TEST_TV_COUNT, tvList);
531     EXPECT_EQ(ret, SOFTBUS_ERR);
532     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
533     ASSERT_EQ(ret, SOFTBUS_OK);
534     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
535     ASSERT_TRUE(sessionParam != NULL);
536     TestGenerateCommParam(sessionParam);
537     SessionInfo *session = TestGenerateSession(sessionParam);
538     ASSERT_TRUE(session != NULL);
539     ret = ClientAddNewSession(g_sessionName, session);
540     ASSERT_EQ(ret, SOFTBUS_OK);
541     ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
542     EXPECT_EQ(ret, SOFTBUS_OK);
543     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
544     EXPECT_EQ(ret, SOFTBUS_OK);
545     SoftBusFree(sessionParam);
546     SoftBusFree(tvList);
547 }
548 
549 /**
550  * @tc.name: TransClientSessionCallbackTest11
551  * @tc.desc: Transmission sdk session callback on qos no callback.
552  * @tc.type: FUNC
553  * @tc.require:
554  */
555 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest11, TestSize.Level1)
556 {
557     QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
558     ASSERT_TRUE(tvList != NULL);
559     ISessionListener sessionlistener = {
560         .OnSessionOpened = OnSessionOpened,
561         .OnSessionClosed = OnSessionClosed,
562         .OnBytesReceived = OnBytesReceived,
563         .OnMessageReceived = OnMessageReceived,
564         .OnStreamReceived = OnStreamReceived,
565         .OnQosEvent = NULL,
566     };
567     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
568     ASSERT_EQ(ret, SOFTBUS_OK);
569     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
570     ASSERT_TRUE(sessionParam != NULL);
571     TestGenerateCommParam(sessionParam);
572     SessionInfo *session = TestGenerateSession(sessionParam);
573     ASSERT_TRUE(session != NULL);
574     ret = ClientAddNewSession(g_sessionName, session);
575     ASSERT_EQ(ret, SOFTBUS_OK);
576     ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
577     EXPECT_EQ(ret, SOFTBUS_ERR);
578     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
579     EXPECT_EQ(ret, SOFTBUS_OK);
580     SoftBusFree(sessionParam);
581     SoftBusFree(tvList);
582 }
583 
584 /**
585  * @tc.name: TransClientSessionCallbackTest12
586  * @tc.desc: Transmission sdk session callback on session open failed with no callback.
587  * @tc.type: FUNC
588  * @tc.require:
589  */
590 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest12, TestSize.Level1)
591 {
592     ISessionListener sessionlistener = {
593         .OnSessionOpened = NULL,
594         .OnSessionClosed = OnSessionClosed,
595         .OnBytesReceived = OnBytesReceived,
596         .OnMessageReceived = OnMessageReceived,
597         .OnStreamReceived = OnStreamReceived,
598         .OnQosEvent = OnQosEvent,
599     };
600     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
601     ASSERT_EQ(ret, SOFTBUS_OK);
602     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
603     ASSERT_TRUE(sessionParam != NULL);
604     TestGenerateCommParam(sessionParam);
605     SessionInfo *session = TestGenerateSession(sessionParam);
606     ASSERT_TRUE(session != NULL);
607     ret = ClientAddNewSession(g_sessionName, session);
608     ASSERT_EQ(ret, SOFTBUS_OK);
609     ret = TransOnSessionOpenFailed(TRANS_TEST_CHANNEL_ID, TYPE_BYTES, SOFTBUS_ERR);
610     EXPECT_EQ(ret, SOFTBUS_OK);
611     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
612     EXPECT_EQ(ret, SOFTBUS_OK);
613     SoftBusFree(sessionParam);
614 }
615 
616 /**
617  * @tc.name: TransClientSessionCallbackTest13
618  * @tc.desc: Transmission sdk session callback on data received with different parameter.
619  * @tc.type: FUNC
620  * @tc.require:
621  */
622 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest13, TestSize.Level1)
623 {
624     int32_t ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_AUTH_DATA,
625                                       strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
626     EXPECT_EQ(ret, SOFTBUS_ERR);
627     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
628     ASSERT_EQ(ret, SOFTBUS_OK);
629     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
630     ASSERT_TRUE(sessionParam != NULL);
631     TestGenerateCommParam(sessionParam);
632     SessionInfo *session = TestGenerateSession(sessionParam);
633     ASSERT_TRUE(session != NULL);
634     session->channelType = CHANNEL_TYPE_UDP;
635     ret = ClientAddNewSession(g_sessionName, session);
636     ASSERT_EQ(ret, SOFTBUS_OK);
637 
638     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
639                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ALLFILE_SENT);
640     EXPECT_EQ(ret, SOFTBUS_OK);
641 
642     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
643                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_CRC_CHECK_FRAME);
644     EXPECT_EQ(ret, SOFTBUS_OK);
645 
646     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
647                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_RESULT_FRAME);
648     EXPECT_EQ(ret, SOFTBUS_OK);
649 
650     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
651                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ACK_REQUEST_SENT);
652     EXPECT_EQ(ret, SOFTBUS_OK);
653 
654     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
655                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ACK_RESPONSE_SENT);
656     EXPECT_EQ(ret, SOFTBUS_OK);
657 
658     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
659                               strlen(TRANS_TEST_AUTH_DATA), (SessionPktType)(TRANS_SESSION_FILE_ACK_RESPONSE_SENT + 1));
660     EXPECT_EQ(ret, SOFTBUS_ERR);
661 
662     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
663     EXPECT_EQ(ret, SOFTBUS_OK);
664     SoftBusFree(sessionParam);
665 }
666 }