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
115 static ISessionListener g_sessionlistener = {
116 .OnSessionOpened = OnSessionOpened,
117 .OnSessionClosed = OnSessionClosed,
118 .OnBytesReceived = OnBytesReceived,
119 .OnMessageReceived = OnMessageReceived,
120 .OnStreamReceived = OnStreamReceived,
121 .OnQosEvent = OnQosEvent,
122 };
123
TestGenerateCommParam(SessionParam * sessionParam)124 static void TestGenerateCommParam(SessionParam *sessionParam)
125 {
126 sessionParam->sessionName = g_sessionName;
127 sessionParam->peerSessionName = g_sessionName;
128 sessionParam->peerDeviceId = g_deviceId;
129 sessionParam->groupId = g_groupid;
130 sessionParam->attr = &g_sessionAttr;
131 }
132
TestGenerateChannInfo(ChannelInfo * channel)133 static int32_t TestGenerateChannInfo(ChannelInfo *channel)
134 {
135 char *sessionName = (char*)SoftBusCalloc(SESSION_NAME_SIZE_MAX * sizeof(char));
136 char *deviceId = (char*)SoftBusCalloc(DEVICE_ID_SIZE_MAX * sizeof(char));
137 char *groupId = (char*)SoftBusCalloc(GROUP_ID_SIZE_MAX * sizeof(char));
138
139 if (sessionName == NULL || deviceId == NULL || groupId == NULL ||
140 strcpy_s(sessionName, SESSION_NAME_SIZE_MAX, g_sessionName) != EOK ||
141 strcpy_s(deviceId, SESSION_NAME_SIZE_MAX, g_deviceId) != EOK ||
142 strcpy_s(groupId, SESSION_NAME_SIZE_MAX, g_groupid) != EOK) {
143 SoftBusFree(sessionName);
144 SoftBusFree(deviceId);
145 SoftBusFree(groupId);
146 return SOFTBUS_ERR;
147 }
148
149 channel->peerSessionName = sessionName;
150 channel->peerDeviceId = deviceId;
151 channel->groupId = groupId;
152 channel->channelId = TRANS_TEST_CHANNEL_ID;
153 channel->channelType = CHANNEL_TYPE_BUTT;
154 channel->peerPid = TRANS_TEST_PID;
155 channel->peerUid = TRANS_TEST_UID;
156 channel->isServer = false;
157 channel->businessType = BUSINESS_TYPE_BUTT;
158 channel->routeType = ROUTE_TYPE_ALL;
159 channel->encrypt = TRANS_TEST_FILE_ENCRYPT;
160 channel->algorithm = TRANS_TEST_ALGORITHM;
161 channel->crc = TRANS_TEST_CRC;
162
163 return SOFTBUS_OK;
164 }
165
TestGenerateSession(const SessionParam * param)166 static SessionInfo *TestGenerateSession(const SessionParam *param)
167 {
168 SessionInfo *session = (SessionInfo*)SoftBusCalloc(sizeof(SessionInfo));
169 if (session == NULL) {
170 return NULL;
171 }
172
173 if (strcpy_s(session->info.peerSessionName, SESSION_NAME_SIZE_MAX, param->peerSessionName) != EOK ||
174 strcpy_s(session->info.peerDeviceId, DEVICE_ID_SIZE_MAX, param->peerDeviceId) != EOK ||
175 strcpy_s(session->info.groupId, GROUP_ID_SIZE_MAX, param->groupId) != EOK) {
176 SoftBusFree(session);
177 return NULL;
178 }
179
180 session->sessionId = TRANS_TEST_SESSION_ID;
181 session->channelId = TRANS_TEST_CHANNEL_ID;
182 session->channelType = CHANNEL_TYPE_BUTT;
183 session->isServer = false;
184 session->isEnable = false;
185 session->routeType = ROUTE_TYPE_ALL;
186 session->info.flag = TYPE_BYTES;
187 session->isEncrypt = true;
188 session->algorithm = TRANS_TEST_ALGORITHM;
189 session->fileEncrypt = TRANS_TEST_FILE_ENCRYPT;
190 session->crc = TRANS_TEST_CRC;
191
192 return session;
193 }
194
RelesseChannInfo(ChannelInfo * channel)195 static void RelesseChannInfo(ChannelInfo *channel)
196 {
197 if (channel != NULL) {
198 if (channel->peerSessionName != NULL) {
199 SoftBusFree(channel->peerSessionName);
200 }
201 if (channel->peerDeviceId != NULL) {
202 SoftBusFree(channel->peerDeviceId);
203 }
204 if (channel->groupId != NULL) {
205 SoftBusFree(channel->groupId);
206 }
207 SoftBusFree(channel);
208 }
209 channel = NULL;
210 }
211
212 /**
213 * @tc.name: TransClientSessionCallbackTest01
214 * @tc.desc: Transmission sdk session callback accept session as server with different parameters.
215 * @tc.type: FUNC
216 * @tc.require:
217 */
218 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest01, TestSize.Level1)
219 {
220 int32_t sessionId = 0;
221 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
222 ASSERT_TRUE(sessionParam != NULL);
223 TestGenerateCommParam(sessionParam);
224 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
225 ASSERT_EQ(ret, SOFTBUS_OK);
226 ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
227 ASSERT_TRUE(channel != NULL);
228 ret = TestGenerateChannInfo(channel);
229 ASSERT_EQ(ret, SOFTBUS_OK);
230 ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
231 EXPECT_EQ(ret, SOFTBUS_OK);
232 const char *sessionName = "com.huawei.devicegroupmanage";
233 ret = AcceptSessionAsServer(sessionName, channel, TYPE_BUTT, &sessionId);
234 EXPECT_EQ(ret, SOFTBUS_ERR);
235 SoftBusFree(channel->groupId);
236 channel->groupId = NULL;
237 ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
238 EXPECT_EQ(ret, SOFTBUS_MEM_ERR);
239 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
240 EXPECT_EQ(ret, SOFTBUS_OK);
241 RelesseChannInfo(channel);
242 }
243
244 /**
245 * @tc.name: TransClientSessionCallbackTest02
246 * @tc.desc: Transmission sdk session callback get session callback by channe id with different parameters.
247 * @tc.type: FUNC
248 * @tc.require:
249 */
250 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest02, TestSize.Level1)
251 {
252 int32_t sessionId = 0;
253 ISessionListener listener = {0};
254 int32_t ret = GetSessionCallbackByChannelId(TRANS_TEST_INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT,
255 &sessionId, &listener);
256 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
257 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, NULL, &listener);
258 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
259 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, NULL);
260 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
261 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
262 EXPECT_EQ(ret, SOFTBUS_ERR);
263 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
264 EXPECT_EQ(ret, SOFTBUS_OK);
265 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
266 ASSERT_TRUE(sessionParam != NULL);
267 TestGenerateCommParam(sessionParam);
268 SessionInfo *session = TestGenerateSession(sessionParam);
269 ASSERT_TRUE(session != NULL);
270 ret = ClientAddNewSession(g_sessionName, session);
271 ASSERT_EQ(ret, SOFTBUS_OK);
272 ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
273 EXPECT_EQ(ret, SOFTBUS_OK);
274 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
275 EXPECT_EQ(ret, SOFTBUS_OK);
276 SoftBusFree(sessionParam);
277 }
278
279 /**
280 * @tc.name: TransClientSessionCallbackTest03
281 * @tc.desc: Transmission sdk session callback on session opened with invalid parameters.
282 * @tc.type: FUNC
283 * @tc.require:
284 */
285 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest03, TestSize.Level1)
286 {
287 ISessionListener sessionlistener = {
288 .OnSessionOpened = NULL,
289 .OnSessionClosed = OnSessionClosed,
290 .OnBytesReceived = OnBytesReceived,
291 .OnMessageReceived = OnMessageReceived,
292 };
293 ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
294 ASSERT_TRUE(channel != NULL);
295 int32_t ret = TestGenerateChannInfo(channel);
296 ASSERT_EQ(ret, SOFTBUS_OK);
297 ret = TransOnSessionOpened(NULL, channel, TYPE_BUTT);
298 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
299 ret = TransOnSessionOpened(g_sessionName, NULL, TYPE_BUTT);
300 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
301 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT);
302 EXPECT_EQ(ret, SOFTBUS_ERR);
303 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
304 ASSERT_EQ(ret, SOFTBUS_OK);
305 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
306 ASSERT_TRUE(sessionParam != NULL);
307 TestGenerateCommParam(sessionParam);
308 SessionInfo *session = TestGenerateSession(sessionParam);
309 ASSERT_TRUE(session != NULL);
310 ret = ClientAddNewSession(g_sessionName, session);
311 ASSERT_EQ(ret, SOFTBUS_OK);
312 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT);
313 EXPECT_EQ(ret, SOFTBUS_ERR);
314 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
315 EXPECT_EQ(ret, SOFTBUS_OK);
316 RelesseChannInfo(channel);
317 SoftBusFree(sessionParam);
318 }
319
320 /**
321 * @tc.name: TransClientSessionCallbackTest04
322 * @tc.desc: Transmission sdk session callback on session opened with different parameters.
323 * @tc.type: FUNC
324 * @tc.require:
325 */
326 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest04, TestSize.Level1)
327 {
328 ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
329 ASSERT_TRUE(channel != NULL);
330 int32_t ret = TestGenerateChannInfo(channel);
331 ASSERT_EQ(ret, SOFTBUS_OK);
332 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
333 ASSERT_EQ(ret, SOFTBUS_OK);
334 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
335 ASSERT_TRUE(sessionParam != NULL);
336 TestGenerateCommParam(sessionParam);
337 SessionInfo *session = TestGenerateSession(sessionParam);
338 ASSERT_TRUE(session != NULL);
339 ret = ClientAddNewSession(g_sessionName, session);
340 ASSERT_EQ(ret, SOFTBUS_OK);
341 channel->channelType = TYPE_BUTT;
342 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES);
343 EXPECT_EQ(ret, SOFTBUS_ERR);
344 channel->isServer = true;
345 ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES);
346 EXPECT_EQ(ret, SOFTBUS_OK);
347 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
348 EXPECT_EQ(ret, SOFTBUS_OK);
349 RelesseChannInfo(channel);
350 SoftBusFree(sessionParam);
351 }
352
353 /**
354 * @tc.name: TransClientSessionCallbackTest05
355 * @tc.desc: Transmission sdk session callback on session closed.
356 * @tc.type: FUNC
357 * @tc.require:
358 */
359 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest05, TestSize.Level1)
360 {
361 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
362 ASSERT_EQ(ret, SOFTBUS_OK);
363 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
364 ASSERT_TRUE(sessionParam != NULL);
365 TestGenerateCommParam(sessionParam);
366 SessionInfo *session = TestGenerateSession(sessionParam);
367 ASSERT_TRUE(session != NULL);
368 ret = ClientAddNewSession(g_sessionName, session);
369 ASSERT_EQ(ret, SOFTBUS_OK);
370 ret = TransOnSessionClosed(INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT);
371 EXPECT_EQ(ret, SOFTBUS_ERR);
372 ret = TransOnSessionClosed(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT);
373 EXPECT_EQ(ret, SOFTBUS_OK);
374 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
375 EXPECT_EQ(ret, SOFTBUS_OK);
376 SoftBusFree(sessionParam);
377 }
378
379 /**
380 * @tc.name: TransClientSessionCallbackTest06
381 * @tc.desc: Transmission sdk session callback process receive file data with different parameter.
382 * @tc.type: FUNC
383 * @tc.require:
384 */
385 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest06, TestSize.Level1)
386 {
387 int32_t sessionId = 0;
388 bool isEnabled = false;
389 int32_t ret = ProcessReceivedFileData(TRANS_TEST_SESSION_ID, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
390 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
391 EXPECT_EQ(ret, SOFTBUS_ERR);
392 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
393 ASSERT_EQ(ret, SOFTBUS_OK);
394 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
395 ASSERT_TRUE(sessionParam != NULL);
396 TestGenerateCommParam(sessionParam);
397 ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
398 ASSERT_EQ(ret, SOFTBUS_OK);
399 ret = ProcessReceivedFileData(sessionId, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
400 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
401 EXPECT_EQ(ret, SOFTBUS_ERR);
402 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
403 EXPECT_EQ(ret, SOFTBUS_OK);
404 SoftBusFree(sessionParam);
405 }
406
407 /**
408 * @tc.name: TransClientSessionCallbackTest07
409 * @tc.desc: Transmission sdk session callback on data received with different parameter.
410 * @tc.type: FUNC
411 * @tc.require:
412 */
413 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest07, TestSize.Level1)
414 {
415 int32_t ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_AUTH_DATA,
416 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
417 EXPECT_EQ(ret, SOFTBUS_ERR);
418 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
419 ASSERT_EQ(ret, SOFTBUS_OK);
420 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
421 ASSERT_TRUE(sessionParam != NULL);
422 TestGenerateCommParam(sessionParam);
423 SessionInfo *session = TestGenerateSession(sessionParam);
424 ASSERT_TRUE(session != NULL);
425 session->channelType = CHANNEL_TYPE_PROXY;
426 ret = ClientAddNewSession(g_sessionName, session);
427 ASSERT_EQ(ret, SOFTBUS_OK);
428 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
429 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
430 EXPECT_EQ(ret, SOFTBUS_ERR);
431 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
432 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_BYTES);
433 EXPECT_EQ(ret, SOFTBUS_OK);
434 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
435 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_MESSAGE);
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: TransClientSessionCallbackTest08
444 * @tc.desc: Transmission sdk session callback on stream received with different parameter.
445 * @tc.type: FUNC
446 * @tc.require:
447 */
448 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest08, TestSize.Level1)
449 {
450 StreamData data = {0};
451 StreamData ext = {0};
452 StreamFrameInfo param = {0};
453 int32_t ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, ¶m);
454 EXPECT_EQ(ret, SOFTBUS_ERR);
455 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
456 ASSERT_EQ(ret, SOFTBUS_OK);
457 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
458 ASSERT_TRUE(sessionParam != NULL);
459 TestGenerateCommParam(sessionParam);
460 SessionInfo *session = TestGenerateSession(sessionParam);
461 ASSERT_TRUE(session != NULL);
462 ret = ClientAddNewSession(g_sessionName, session);
463 ASSERT_EQ(ret, SOFTBUS_OK);
464 ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, ¶m);
465 EXPECT_EQ(ret, SOFTBUS_OK);
466 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
467 EXPECT_EQ(ret, SOFTBUS_OK);
468 SoftBusFree(sessionParam);
469 }
470
471 /**
472 * @tc.name: TransClientSessionCallbackTest09
473 * @tc.desc: Transmission sdk session callback on stream received no callback.
474 * @tc.type: FUNC
475 * @tc.require:
476 */
477 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest09, TestSize.Level1)
478 {
479 StreamData data = {0};
480 StreamData ext = {0};
481 StreamFrameInfo param = {0};
482 ISessionListener sessionlistener = {
483 .OnSessionOpened = OnSessionOpened,
484 .OnSessionClosed = OnSessionClosed,
485 .OnBytesReceived = OnBytesReceived,
486 .OnMessageReceived = OnMessageReceived,
487 .OnStreamReceived = NULL,
488 };
489 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
490 ASSERT_EQ(ret, SOFTBUS_OK);
491 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
492 ASSERT_TRUE(sessionParam != NULL);
493 TestGenerateCommParam(sessionParam);
494 SessionInfo *session = TestGenerateSession(sessionParam);
495 ASSERT_TRUE(session != NULL);
496 ret = ClientAddNewSession(g_sessionName, session);
497 ASSERT_EQ(ret, SOFTBUS_OK);
498 ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, ¶m);
499 EXPECT_EQ(ret, SOFTBUS_ERR);
500 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
501 EXPECT_EQ(ret, SOFTBUS_OK);
502 SoftBusFree(sessionParam);
503 }
504
505 /**
506 * @tc.name: TransClientSessionCallbackTest10
507 * @tc.desc: Transmission sdk session callback on qos with different parameter.
508 * @tc.type: FUNC
509 * @tc.require:
510 */
511 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest10, TestSize.Level1)
512 {
513 QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
514 ASSERT_TRUE(tvList != NULL);
515 int32_t ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID,
516 TRANS_TEST_TV_COUNT, tvList);
517 EXPECT_EQ(ret, SOFTBUS_ERR);
518 ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
519 ASSERT_EQ(ret, SOFTBUS_OK);
520 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
521 ASSERT_TRUE(sessionParam != NULL);
522 TestGenerateCommParam(sessionParam);
523 SessionInfo *session = TestGenerateSession(sessionParam);
524 ASSERT_TRUE(session != NULL);
525 ret = ClientAddNewSession(g_sessionName, session);
526 ASSERT_EQ(ret, SOFTBUS_OK);
527 ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
528 EXPECT_EQ(ret, SOFTBUS_OK);
529 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
530 EXPECT_EQ(ret, SOFTBUS_OK);
531 SoftBusFree(sessionParam);
532 SoftBusFree(tvList);
533 }
534
535 /**
536 * @tc.name: TransClientSessionCallbackTest11
537 * @tc.desc: Transmission sdk session callback on qos no callback.
538 * @tc.type: FUNC
539 * @tc.require:
540 */
541 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest11, TestSize.Level1)
542 {
543 QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
544 ASSERT_TRUE(tvList != NULL);
545 ISessionListener sessionlistener = {
546 .OnSessionOpened = OnSessionOpened,
547 .OnSessionClosed = OnSessionClosed,
548 .OnBytesReceived = OnBytesReceived,
549 .OnMessageReceived = OnMessageReceived,
550 .OnStreamReceived = OnStreamReceived,
551 .OnQosEvent = NULL,
552 };
553 int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
554 ASSERT_EQ(ret, SOFTBUS_OK);
555 SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
556 ASSERT_TRUE(sessionParam != NULL);
557 TestGenerateCommParam(sessionParam);
558 SessionInfo *session = TestGenerateSession(sessionParam);
559 ASSERT_TRUE(session != NULL);
560 ret = ClientAddNewSession(g_sessionName, session);
561 ASSERT_EQ(ret, SOFTBUS_OK);
562 ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
563 EXPECT_EQ(ret, SOFTBUS_ERR);
564 ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
565 EXPECT_EQ(ret, SOFTBUS_OK);
566 SoftBusFree(sessionParam);
567 SoftBusFree(tvList);
568 }
569 }