• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include "avsession_log.h"
18 #include "avsession_descriptor.h"
19 #include "avsession_errors.h"
20 #include "accesstoken_kit.h"
21 #include "token_setproc.h"
22 
23 #define private public
24 #define protected public
25 #include "avsession_service_stub.h"
26 #undef protected
27 #undef private
28 
29 using namespace testing::ext;
30 using namespace OHOS::Security::AccessToken;
31 using namespace OHOS::AVSession;
32 
33 static uint64_t g_selfTokenId = 0;
34 static HapInfoParams g_info = {
35     .userID = 100,
36     .bundleName = "ohos.permission_test.demo",
37     .instIndex = 0,
38     .appIDDesc = "ohos.permission_test.demo",
39     .isSystemApp = true
40 };
41 
42 static HapPolicyParams g_policy = {
43     .apl = APL_NORMAL,
44     .domain = "test.domain",
45     .permList = {
46         {
47             .bundleName = "ohos.permission_test.demo",
48             .grantMode = 1,
49             .availableLevel = APL_NORMAL,
50             .label = "label",
51             .labelId = 1,
52             .description = "test",
53             .descriptionId = 1
54         }
55     },
56     .permStateList = {
57         {
58             .isGeneral = true,
59             .resDeviceID = {"local"},
60             .grantStatus = {PermissionState::PERMISSION_GRANTED},
61             .grantFlags = {1}
62         }
63     }
64 };
65 
66 class AVSessionServiceStubTest : public testing::Test {
67 public:
68     static void SetUpTestCase();
69     static void TearDownTestCase();
70     void SetUp() override;
71     void TearDown() override;
72 };
73 
SetUpTestCase()74 void AVSessionServiceStubTest::SetUpTestCase()
75 {
76     g_selfTokenId = OHOS::IPCSkeleton::GetSelfTokenID();
77     AccessTokenKit::AllocHapToken(g_info, g_policy);
78     AccessTokenIDEx tokenID = AccessTokenKit::GetHapTokenIDEx(g_info.userID, g_info.bundleName, g_info.instIndex);
79     SetSelfTokenID(tokenID.tokenIDEx);
80 }
81 
TearDownTestCase()82 void AVSessionServiceStubTest::TearDownTestCase()
83 {
84     SetSelfTokenID(g_selfTokenId);
85     auto tokenId = AccessTokenKit::GetHapTokenID(g_info.userID, g_info.bundleName, g_info.instIndex);
86     AccessTokenKit::DeleteToken(tokenId);
87 }
88 
SetUp()89 void AVSessionServiceStubTest::SetUp()
90 {
91 }
92 
TearDown()93 void AVSessionServiceStubTest::TearDown()
94 {
95 }
96 
97 class AVSessionServiceStubPerDemo : public AVSessionServiceStub {
98 public:
CreateSessionInner(const std::string & tag,int32_t type,const OHOS::AppExecFwk::ElementName & elementName)99     OHOS::sptr<IRemoteObject> CreateSessionInner(const std::string &tag, int32_t type,
100         const OHOS::AppExecFwk::ElementName &elementName) override { return nullptr; };
CreateSessionInner(const std::string & tag,int32_t type,const OHOS::AppExecFwk::ElementName & elementName,OHOS::sptr<IRemoteObject> & session)101     int32_t CreateSessionInner(const std::string &tag, int32_t type, const OHOS::AppExecFwk::ElementName &elementName,
102         OHOS::sptr<IRemoteObject> &session) override { return 0; };
GetAllSessionDescriptors(std::vector<AVSessionDescriptor> & descriptors)103     int32_t GetAllSessionDescriptors(std::vector<AVSessionDescriptor> &descriptors) override { return 0; };
GetSessionDescriptorsBySessionId(const std::string & sessionId,AVSessionDescriptor & descriptor)104     int32_t GetSessionDescriptorsBySessionId(const std::string &sessionId,
105         AVSessionDescriptor &descriptor) override { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; };
GetHistoricalSessionDescriptors(int32_t maxSize,std::vector<AVSessionDescriptor> & descriptors)106     int32_t GetHistoricalSessionDescriptors(int32_t maxSize, std::vector<AVSessionDescriptor> &descriptors) override
107     {
108         return 0;
109     };
SendSystemAVKeyEvent(const OHOS::MMI::KeyEvent & keyEvent,const OHOS::AAFwk::Want & wantParam)110     int32_t SendSystemAVKeyEvent(const OHOS::MMI::KeyEvent& keyEvent, const OHOS::AAFwk::Want &wantParam) override
111     {
112         return 0;
113     };
GetHistoricalAVQueueInfos(int32_t maxSize,int32_t maxAppSize,std::vector<AVQueueInfo> & avQueueInfos)114     int32_t GetHistoricalAVQueueInfos(int32_t maxSize, int32_t maxAppSize,
115         std::vector<AVQueueInfo> &avQueueInfos) override { return 0; };
StartAVPlayback(const std::string & bundleName,const std::string & assetId)116     int32_t StartAVPlayback(const std::string &bundleName, const std::string &assetId) override { return 0; };
CreateControllerInner(const std::string & sessionId,OHOS::sptr<IRemoteObject> & object)117     int32_t CreateControllerInner(const std::string &sessionId, OHOS::sptr<IRemoteObject> &object) override
118     {
119         return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR;
120     };
RegisterSessionListener(const OHOS::sptr<ISessionListener> & listener)121     int32_t RegisterSessionListener(const OHOS::sptr<ISessionListener> &listener) override { return 0; };
RegisterSessionListenerForAllUsers(const OHOS::sptr<ISessionListener> & listener)122     int32_t RegisterSessionListenerForAllUsers(const OHOS::sptr<ISessionListener> &listener) override { return 0; };
SendSystemAVKeyEvent(const OHOS::MMI::KeyEvent & keyEvent)123     int32_t SendSystemAVKeyEvent(const OHOS::MMI::KeyEvent &keyEvent) override { return 0; };
SendSystemControlCommand(const AVControlCommand & command)124     int32_t SendSystemControlCommand(const AVControlCommand &command) override { return 0; };
RegisterClientDeathObserver(const OHOS::sptr<IClientDeath> & observer)125     int32_t RegisterClientDeathObserver(const OHOS::sptr<IClientDeath> &observer) override { return 0; };
CastAudio(const SessionToken & token,const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> & descriptors)126     int32_t CastAudio(const SessionToken &token,
127         const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> &descriptors) override { return 0; };
CastAudioForAll(const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> & descriptors)128     int32_t CastAudioForAll(const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> &descriptors) override
129     {
130         return 0;
131     };
ProcessCastAudioCommand(const RemoteServiceCommand command,const std::string & input,std::string & output)132     int32_t ProcessCastAudioCommand(const RemoteServiceCommand command, const std::string &input,
133         std::string &output) override { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; };
134 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
GetAVCastControllerInner(const std::string & sessionId,OHOS::sptr<IRemoteObject> & object)135     int32_t GetAVCastControllerInner(const std::string &sessionId, OHOS::sptr<IRemoteObject> &object) override
136     {
137         return 0;
138     };
StartCast(const SessionToken & sessionToken,const OutputDeviceInfo & outputDeviceInfo)139     int32_t StartCast(const SessionToken &sessionToken, const OutputDeviceInfo &outputDeviceInfo) override
140     {
141         return 0;
142     };
StopCast(const SessionToken & sessionToken)143     int32_t StopCast(const SessionToken &sessionToken) override { return 0; };
checkEnableCast(bool enable)144     int32_t checkEnableCast(bool enable) override { return 0; };
145 #endif
146 
Close()147     int32_t Close() override { return 0; };
GetDistributedSessionControllersInner(const DistributedSessionType & sessionType,std::vector<OHOS::sptr<IRemoteObject>> & sessionControllers)148     int32_t GetDistributedSessionControllersInner(const DistributedSessionType& sessionType,
149         std::vector<OHOS::sptr<IRemoteObject>>& sessionControllers) override { return 0; };
150     bool isSuccess = true;
151 };
152 
153 /**
154  * @tc.name: OnRemoteRequest001
155  * @tc.desc: Test OnRemoteRequest
156  * @tc.type: FUNC
157  */
158 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest001, TestSize.Level1)
159 {
160     SLOGI("OnRemoteRequest001 begin!");
161     uint32_t code = 1;
162     AVSessionServiceStubPerDemo avsessionservicestub;
163     OHOS::MessageParcel data;
164     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
165     data.WriteString("test");
166     OHOS::MessageParcel reply;
167     OHOS::MessageOption option;
168     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
169     EXPECT_EQ(ret, OHOS::ERR_NONE);
170     SLOGI("OnRemoteRequest001 end!");
171 }
172 
173 /**
174  * @tc.name: OnRemoteRequest002
175  * @tc.desc: Test OnRemoteRequest
176  * @tc.type: FUNC
177  */
178 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest002, TestSize.Level1)
179 {
180     SLOGI("OnRemoteRequest002 begin!");
181     uint32_t code = 2;
182     AVSessionServiceStubPerDemo avsessionservicestub;
183     OHOS::MessageParcel data;
184     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
185     data.WriteString("test");
186     OHOS::MessageParcel reply;
187     OHOS::MessageOption option;
188     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
189     EXPECT_EQ(ret, OHOS::ERR_NONE);
190     SLOGI("OnRemoteRequest002 end!");
191 }
192 
193 /**
194  * @tc.name: OnRemoteRequest003
195  * @tc.desc: Test OnRemoteRequest
196  * @tc.type: FUNC
197  */
198 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest003, TestSize.Level1)
199 {
200     SLOGI("OnRemoteRequest003 begin!");
201     uint32_t code = 3;
202     AVSessionServiceStubPerDemo avsessionservicestub;
203     OHOS::MessageParcel data;
204     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
205     data.WriteString("test");
206     OHOS::MessageParcel reply;
207     OHOS::MessageOption option;
208     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
209     EXPECT_EQ(ret, OHOS::ERR_NONE);
210     SLOGI("OnRemoteRequest003 end!");
211 }
212 
213 /**
214  * @tc.name: OnRemoteRequest004
215  * @tc.desc: Test OnRemoteRequest
216  * @tc.type: FUNC
217  */
218 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest004, TestSize.Level1)
219 {
220     SLOGI("OnRemoteRequest004 begin!");
221     uint32_t code = 4;
222     AVSessionServiceStubPerDemo avsessionservicestub;
223     OHOS::MessageParcel data;
224     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
225     data.WriteString("test");
226     OHOS::MessageParcel reply;
227     OHOS::MessageOption option;
228     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
229     EXPECT_EQ(ret, OHOS::ERR_NONE);
230     SLOGI("OnRemoteRequest004 end!");
231 }
232 
233 /**
234  * @tc.name: OnRemoteRequest005
235  * @tc.desc: Test OnRemoteRequest
236  * @tc.type: FUNC
237  */
238 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest005, TestSize.Level1)
239 {
240     SLOGI("OnRemoteRequest005 begin!");
241     uint32_t code = 5;
242     AVSessionServiceStubPerDemo avsessionservicestub;
243     OHOS::MessageParcel data;
244     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
245     data.WriteString("test");
246     OHOS::MessageParcel reply;
247     OHOS::MessageOption option;
248     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
249     EXPECT_EQ(ret, OHOS::ERR_NONE);
250     SLOGI("OnRemoteRequest005 end!");
251 }
252 
253 /**
254  * @tc.name: OnRemoteRequest006
255  * @tc.desc: Test OnRemoteRequest
256  * @tc.type: FUNC
257  */
258 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest006, TestSize.Level1)
259 {
260     SLOGI("OnRemoteRequest006 begin!");
261     uint32_t code = 6;
262     AVSessionServiceStubPerDemo avsessionservicestub;
263     OHOS::MessageParcel data;
264     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
265     data.WriteString("test");
266     OHOS::MessageParcel reply;
267     OHOS::MessageOption option;
268     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
269     EXPECT_EQ(ret, OHOS::ERR_NONE);
270     SLOGI("OnRemoteRequest006 end!");
271 }
272 
273 /**
274  * @tc.name: OnRemoteRequest007
275  * @tc.desc: Test OnRemoteRequest
276  * @tc.type: FUNC
277  */
278 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest007, TestSize.Level1)
279 {
280     SLOGI("OnRemoteRequest007 begin!");
281     uint32_t code = 7;
282     AVSessionServiceStubPerDemo avsessionservicestub;
283     OHOS::MessageParcel data;
284     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
285     data.WriteString("test");
286     OHOS::MessageParcel reply;
287     OHOS::MessageOption option;
288     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
289     EXPECT_EQ(ret, OHOS::ERR_NONE);
290     SLOGI("OnRemoteRequest007 end!");
291 }
292 
293 /**
294  * @tc.name: OnRemoteRequest008
295  * @tc.desc: Test OnRemoteRequest
296  * @tc.type: FUNC
297  */
298 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest008, TestSize.Level1)
299 {
300     SLOGI("OnRemoteRequest008 begin!");
301     uint32_t code = 8;
302     AVSessionServiceStubPerDemo avsessionservicestub;
303     OHOS::MessageParcel data;
304     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
305     data.WriteString("test");
306     OHOS::MessageParcel reply;
307     OHOS::MessageOption option;
308     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
309     EXPECT_EQ(ret, OHOS::ERR_NONE);
310     SLOGI("OnRemoteRequest008 end!");
311 }
312 
313 /**
314  * @tc.name: OnRemoteRequest009
315  * @tc.desc: Test OnRemoteRequest
316  * @tc.type: FUNC
317  */
318 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest009, TestSize.Level1)
319 {
320     SLOGI("OnRemoteRequest009 begin!");
321     uint32_t code = 9;
322     AVSessionServiceStubPerDemo avsessionservicestub;
323     OHOS::MessageParcel data;
324     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
325     data.WriteString("test");
326     OHOS::MessageParcel reply;
327     OHOS::MessageOption option;
328     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
329     EXPECT_EQ(ret, OHOS::ERR_NONE);
330     SLOGI("OnRemoteRequest009 end!");
331 }
332 
333 /**
334  * @tc.name: OnRemoteRequest010
335  * @tc.desc: Test OnRemoteRequest
336  * @tc.type: FUNC
337  */
338 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest010, TestSize.Level1)
339 {
340     SLOGI("OnRemoteRequest010 begin!");
341     uint32_t code = 10;
342     AVSessionServiceStubPerDemo avsessionservicestub;
343     OHOS::MessageParcel data;
344     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
345     data.WriteString("test");
346     OHOS::MessageParcel reply;
347     OHOS::MessageOption option;
348     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
349     EXPECT_EQ(ret, OHOS::ERR_NONE);
350     SLOGI("OnRemoteRequest010 end!");
351 }
352 
353 /**
354  * @tc.name: OnRemoteRequest011
355  * @tc.desc: Test OnRemoteRequest
356  * @tc.type: FUNC
357  */
358 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest011, TestSize.Level1)
359 {
360     SLOGI("OnRemoteRequest011 begin!");
361     uint32_t code = 12;
362     AVSessionServiceStubPerDemo avsessionservicestub;
363     OHOS::MessageParcel data;
364     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
365     data.WriteString("test");
366     OHOS::MessageParcel reply;
367     OHOS::MessageOption option;
368     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
369     EXPECT_EQ(ret, OHOS::ERR_NONE);
370     SLOGI("OnRemoteRequest011 end!");
371 }
372 
373 /**
374  * @tc.name: OnRemoteRequest012
375  * @tc.desc: Test OnRemoteRequest
376  * @tc.type: FUNC
377  */
378 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest012, TestSize.Level1)
379 {
380     SLOGI("OnRemoteRequest012 begin!");
381     uint32_t code = 12;
382     AVSessionServiceStubPerDemo avsessionservicestub;
383     OHOS::MessageParcel data;
384     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
385     data.WriteString("test");
386     data.WriteInt32(100);
387     OHOS::MessageParcel reply;
388     OHOS::MessageOption option;
389     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
390     EXPECT_EQ(ret, OHOS::ERR_NONE);
391     SLOGI("OnRemoteRequest012 end!");
392 }
393 
394 /**
395  * @tc.name: OnRemoteRequest013
396  * @tc.desc: Test OnRemoteRequest
397  * @tc.type: FUNC
398  */
399 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest013, TestSize.Level1)
400 {
401     SLOGI("OnRemoteRequest013 begin!");
402     uint32_t code = 12;
403     AVSessionServiceStubPerDemo avsessionservicestub;
404     OHOS::MessageParcel data;
405     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
406     data.WriteString("test");
407     data.WriteInt32(1);
408 
409     OHOS::MessageParcel reply;
410     OHOS::MessageOption option;
411     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
412     EXPECT_EQ(ret, OHOS::ERR_NONE);
413     SLOGI("OnRemoteRequest013 end!");
414 }
415 
416 /**
417  * @tc.name: OnRemoteRequest014
418  * @tc.desc: Test OnRemoteRequest
419  * @tc.type: FUNC
420  */
421 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest014, TestSize.Level1)
422 {
423     SLOGI("OnRemoteRequest014 begin!");
424     uint32_t code = 13;
425     AVSessionServiceStubPerDemo avsessionservicestub;
426     OHOS::MessageParcel data;
427     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
428     data.WriteString("test");
429     OHOS::MessageParcel reply;
430     OHOS::MessageOption option;
431     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
432     EXPECT_EQ(ret, OHOS::ERR_NONE);
433     SLOGI("OnRemoteRequest014 end!");
434 }
435 
436 /**
437  * @tc.name: OnRemoteRequest015
438  * @tc.desc: Test OnRemoteRequest
439  * @tc.type: FUNC
440  */
441 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest015, TestSize.Level1)
442 {
443     SLOGI("OnRemoteRequest015 begin!");
444     uint32_t code = 13;
445     AVSessionServiceStubPerDemo avsessionservicestub;
446     OHOS::MessageParcel data;
447     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
448     data.WriteString("");
449     data.WriteInt32(100);
450     OHOS::MessageParcel reply;
451     OHOS::MessageOption option;
452     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
453     EXPECT_EQ(ret, OHOS::ERR_NONE);
454     SLOGI("OnRemoteRequest015 end!");
455 }
456 
457 /**
458  * @tc.name: OnRemoteRequest016
459  * @tc.desc: Test OnRemoteRequest
460  * @tc.type: FUNC
461  */
462 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest016, TestSize.Level1)
463 {
464     SLOGI("OnRemoteRequest016 begin!");
465     uint32_t code = 13;
466     AVSessionServiceStubPerDemo avsessionservicestub;
467     OHOS::MessageParcel data;
468     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
469     data.WriteString("");
470     data.WriteInt32(1);
471     OHOS::MessageParcel reply;
472     OHOS::MessageOption option;
473     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
474     EXPECT_EQ(ret, OHOS::ERR_NONE);
475     SLOGI("OnRemoteRequest016 end!");
476 }
477 
478 /**
479  * @tc.name: OnRemoteRequest017
480  * @tc.desc: Test OnRemoteRequest
481  * @tc.type: FUNC
482  */
483 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest017, TestSize.Level1)
484 {
485     SLOGI("OnRemoteRequest017 begin!");
486     uint32_t code = 14;
487     AVSessionServiceStubPerDemo avsessionservicestub;
488     OHOS::MessageParcel data;
489     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
490     data.WriteString("test");
491     OHOS::MessageParcel reply;
492     OHOS::MessageOption option;
493     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
494     EXPECT_EQ(ret, OHOS::ERR_NONE);
495     SLOGI("OnRemoteRequest017 end!");
496 }
497 
498 /**
499  * @tc.name: OnRemoteRequest018
500  * @tc.desc: Test OnRemoteRequest
501  * @tc.type: FUNC
502  */
503 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest018, TestSize.Level1)
504 {
505     SLOGI("OnRemoteRequest018 begin!");
506     uint32_t code = 15;
507     AVSessionServiceStubPerDemo avsessionservicestub;
508     OHOS::MessageParcel data;
509     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
510     data.WriteString("test");
511     OHOS::MessageParcel reply;
512     OHOS::MessageOption option;
513     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
514     EXPECT_EQ(ret, OHOS::ERR_NONE);
515     SLOGI("OnRemoteRequest018 end!");
516 }
517 
518 /**
519  * @tc.name: OnRemoteRequest019
520  * @tc.desc: Test OnRemoteRequest
521  * @tc.type: FUNC
522  */
523 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest019, TestSize.Level1)
524 {
525     SLOGI("OnRemoteRequest019 begin!");
526     uint32_t code = 16;
527     AVSessionServiceStubPerDemo avsessionservicestub;
528     OHOS::MessageParcel data;
529     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
530     data.WriteString("test");
531     OHOS::MessageParcel reply;
532     OHOS::MessageOption option;
533     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
534     EXPECT_EQ(ret, OHOS::ERR_NONE);
535     SLOGI("OnRemoteRequest019 end!");
536 }
537 
538 #ifndef CASTPLUS_CAST_ENGINE_ENABLE
539 /**
540  * @tc.name: OnRemoteRequest020
541  * @tc.desc: Test OnRemoteRequest
542  * @tc.type: FUNC
543  */
544 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest020, TestSize.Level1)
545 {
546     SLOGI("OnRemoteRequest020 begin!");
547     uint32_t code = 17;
548     AVSessionServiceStubPerDemo avsessionservicestub;
549     OHOS::MessageParcel data;
550     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
551     data.WriteString("test");
552     data.WriteBool(true);
553     OHOS::MessageParcel reply;
554     OHOS::MessageOption option;
555     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
556     EXPECT_EQ(ret, OHOS::ERR_NONE);
557     SLOGI("OnRemoteRequest020 end!");
558 }
559 
560 /**
561  * @tc.name: OnRemoteRequest021
562  * @tc.desc: Test OnRemoteRequest
563  * @tc.type: FUNC
564  */
565 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest021, TestSize.Level1)
566 {
567     SLOGI("OnRemoteRequest021 begin!");
568     uint32_t code = 18;
569     AVSessionServiceStubPerDemo avsessionservicestub;
570     OHOS::MessageParcel data;
571     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
572     data.WriteString("test");
573     data.WriteBool(true);
574     OHOS::MessageParcel reply;
575     OHOS::MessageOption option;
576     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
577     EXPECT_EQ(ret, OHOS::ERR_NONE);
578     SLOGI("OnRemoteRequest021 end!");
579 }
580 
581 /**
582  * @tc.name: OnRemoteRequest022
583  * @tc.desc: Test OnRemoteRequest
584  * @tc.type: FUNC
585  */
586 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest022, TestSize.Level1)
587 {
588     SLOGI("OnRemoteRequest022 begin!");
589     uint32_t code = 19;
590     AVSessionServiceStubPerDemo avsessionservicestub;
591     OHOS::MessageParcel data;
592     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
593     data.WriteString("test");
594     data.WriteBool(true);
595     OHOS::MessageParcel reply;
596     OHOS::MessageOption option;
597     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
598     EXPECT_EQ(ret, OHOS::ERR_NONE);
599     SLOGI("OnRemoteRequest022 end!");
600 }
601 #endif
602 /**
603  * @tc.name: OnRemoteRequest023
604  * @tc.desc: Test OnRemoteRequest
605  * @tc.type: FUNC
606  */
607 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest023, TestSize.Level1)
608 {
609     SLOGI("OnRemoteRequest023 begin!");
610     uint32_t code = 20;
611     AVSessionServiceStubPerDemo avsessionservicestub;
612     OHOS::MessageParcel data;
613     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
614     data.WriteString("test");
615     OHOS::MessageParcel reply;
616     OHOS::MessageOption option;
617     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
618     EXPECT_EQ(ret, OHOS::ERR_NONE);
619     SLOGI("OnRemoteRequest023 end!");
620 }
621 
622 /**
623  * @tc.name: OnRemoteRequest024
624  * @tc.desc: Test OnRemoteRequest
625  * @tc.type: FUNC
626  */
627 static HWTEST_F(AVSessionServiceStubTest, OnRemoteRequest024, TestSize.Level1)
628 {
629     SLOGI("OnRemoteRequest024 begin!");
630     uint32_t code = static_cast<uint32_t>(OHOS::AVSession::AvsessionSeviceInterfaceCode::SERVICE_CMD_START_CAST);
631     AVSessionServiceStubPerDemo avsessionservicestub;
632     OHOS::MessageParcel data;
633     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
634     data.WriteString("test");
635     OHOS::MessageParcel reply;
636     OHOS::MessageOption option;
637     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
638     EXPECT_EQ(ret, OHOS::ERR_NONE);
639     SLOGI("OnRemoteRequest024 end!");
640 }
641 
642 /**
643  * @tc.name: HandleCreateSessionInner_001
644  * @tc.desc: Test HandleCreateSessionInner with CreateSessionInner returning AVSESSION_SUCCESS.
645  * @tc.type: FUNC
646  * @tc.require: #I5Y4MZ
647  */
648 static HWTEST_F(AVSessionServiceStubTest, HandleCreateSessionInner_001, TestSize.Level1)
649 {
650     SLOGD("HandleCreateSessionInner_001 begin!");
651     OHOS::MessageParcel data;
652     OHOS::MessageParcel reply;
653     std::string sessionTag = "TestSessionTag";
654     int32_t sessionType = 1;
655     OHOS::AppExecFwk::ElementName elementName;
656     elementName.SetBundleName("TestBundleName");
657     std::u16string interfaceToken = u"AVSessionService";
658     data.WriteInterfaceToken(interfaceToken);
659     data.WriteString(sessionTag);
660     data.WriteInt32(sessionType);
661     data.WriteParcelable(&elementName);
662     AVSessionServiceStubPerDemo stub;
663     int32_t result = stub.HandleCreateSessionInner(data, reply);
664     EXPECT_EQ(result, OHOS::ERR_NONE);
665     SLOGD("HandleCreateSessionInner_001 end!");
666 }
667 
668 /**
669  * @tc.name: AVSessionServiceStub_HandleStartCast_001
670  * @tc.desc: Test HandleStartCast with deviceInfoSize over RECEIVE_DEVICE_NUM_MAX.
671  * @tc.type: FUNC
672  * @tc.require: #I5Y4MZ
673  */
674 HWTEST_F(AVSessionServiceStubTest, AVSessionServiceStub_HandleStartCast_001, TestSize.Level1)
675 {
676     SLOGD("AVSessionServiceStub_HandleStartCast_001 begin!");
677     OHOS::MessageParcel data;
678     OHOS::MessageParcel reply;
679     data.WriteString("TestSessionId");
680     data.WriteInt32(1234);
681     data.WriteInt32(5678);
682     data.WriteInt32(AVSessionServiceStubPerDemo::RECEIVE_DEVICE_NUM_MAX + 1);
683     AVSessionServiceStubPerDemo stub;
684     int32_t result = stub.HandleStartCast(data, reply);
685     EXPECT_EQ(result, OHOS::ERR_NONE);
686     EXPECT_EQ(reply.ReadInt32(), ERR_PERMISSION_DENIED);
687     SLOGD("AVSessionServiceStub_HandleStartCast_001 end!");
688 }
689 
690 /**
691  * @tc.name: AVSessionServiceStub_HandleStartCast_002
692  * @tc.desc: Test HandleStartCast with CheckBeforeHandleStartCast returning false.
693  * @tc.type: FUNC
694  * @tc.require: #I5Y4MZ
695  */
696 HWTEST_F(AVSessionServiceStubTest, AVSessionServiceStub_HandleStartCast_002, TestSize.Level1)
697 {
698     SLOGD("AVSessionServiceStub_HandleStartCast_002 begin!");
699     OHOS::MessageParcel data;
700     OHOS::MessageParcel reply;
701     data.WriteString("TestSessionId");
702     data.WriteInt32(1234);
703     data.WriteInt32(5678);
704     data.WriteInt32(1);
705     AVSessionServiceStubPerDemo stub;
706     stub.isSuccess = false;
707     int32_t result = stub.HandleStartCast(data, reply);
708     EXPECT_EQ(result, OHOS::ERR_NONE);
709     EXPECT_EQ(reply.ReadInt32(), ERR_PERMISSION_DENIED);
710     SLOGD("AVSessionServiceStub_HandleStartCast_002 end!");
711 }
712 
713 /**
714  * @tc.name: AVSessionServiceStub_HandleStartCast_003
715  * @tc.desc: Test HandleStartCast with CheckBeforeHandleStartCast returning true.
716  * @tc.type: FUNC
717  * @tc.require: #I5Y4MZ
718  */
719 HWTEST_F(AVSessionServiceStubTest, AVSessionServiceStub_HandleStartCast_003, TestSize.Level1)
720 {
721     SLOGD("AVSessionServiceStub_HandleStartCast_003 begin!");
722     OHOS::MessageParcel data;
723     OHOS::MessageParcel reply;
724     data.WriteString("TestSessionId");
725     data.WriteInt32(1234);
726     data.WriteInt32(5678);
727     data.WriteInt32(1);
728     AVSessionServiceStubPerDemo stub;
729     stub.isSuccess = true;
730     int32_t result = stub.HandleStartCast(data, reply);
731     EXPECT_EQ(result, OHOS::ERR_NONE);
732     EXPECT_EQ(reply.ReadInt32(), ERR_PERMISSION_DENIED);
733     SLOGD("AVSessionServiceStub_HandleStartCast_003 end!");
734 }
735 
736 /**
737  * @tc.name: AVSessionServiceStub_HandleStopCast_001
738  * @tc.desc: Test HandleStopCast with CheckPermission returning non-ERR_NONE.
739  * @tc.type: FUNC
740  * @tc.require: #I5Y4MZ
741  */
742 HWTEST_F(AVSessionServiceStubTest, AVSessionServiceStub_HandleStopCast_001, TestSize.Level1)
743 {
744     SLOGD("AVSessionServiceStub_HandleStopCast_001 begin!");
745     OHOS::MessageParcel data;
746     OHOS::MessageParcel reply;
747     data.WriteString("TestSessionId");
748     data.WriteInt32(1234);
749     data.WriteInt32(5678);
750     AVSessionServiceStubPerDemo stub;
751     int32_t result = stub.HandleStopCast(data, reply);
752     EXPECT_EQ(result, OHOS::ERR_NONE);
753     SLOGD("AVSessionServiceStub_HandleStopCast_001 end!");
754 }
755 
756 /**
757  * @tc.name: AVSessionServiceStub_HandleStopDeviceLogging_001
758  * @tc.desc: Test HandleStopDeviceLogging with CheckPermission returning non-ERR_NONE.
759  * @tc.type: FUNC
760  * @tc.require: #I5Y4MZ
761  */
762 HWTEST_F(AVSessionServiceStubTest, AVSessionServiceStub_HandleStopDeviceLogging_001, TestSize.Level1)
763 {
764     SLOGD("AVSessionServiceStub_HandleStopDeviceLogging_001 begin!");
765     OHOS::MessageParcel data;
766     OHOS::MessageParcel reply;
767     AVSessionServiceStubPerDemo stub;
768     int32_t result = stub.HandleStopDeviceLogging(data, reply);
769     EXPECT_EQ(result, OHOS::ERR_NONE);
770     SLOGD("AVSessionServiceStub_HandleStopDeviceLogging_001 end!");
771 }