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 "accesstoken_kit.h"
18 #include "avcast_controller_stub.h"
19 #include "avsession_service.h"
20 #include "avsession_descriptor.h"
21 #include "avsession_errors.h"
22 #include "avsession_log.h"
23 #include "token_setproc.h"
24 
25 using namespace testing::ext;
26 using namespace OHOS::Security::AccessToken;
27 
28 namespace OHOS {
29 namespace AVSession {
30 
31 static std::shared_ptr<AVSessionService> g_AVSessionService;
32 static uint64_t g_selfTokenId = 0;
33 static HapInfoParams g_info = {
34     .userID = 100,
35     .bundleName = "ohos.permission_test.demo",
36     .instIndex = 0,
37     .appIDDesc = "ohos.permission_test.demo",
38     .isSystemApp = true
39 };
40 
41 static HapPolicyParams g_policy = {
42     .apl = APL_NORMAL,
43     .domain = "test.domain",
44     .permList = {
45         {
46             .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
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             .permissionName = "ohos.permission.MANAGE_MEDIA_RESOURCES",
59             .isGeneral = true,
60             .resDeviceID = {"local"},
61             .grantStatus = {PermissionState::PERMISSION_GRANTED},
62             .grantFlags = {1}
63         }
64     }
65 };
66 
67 class AVCastControllerStubTest : public testing::Test {
68 public:
69     static void SetUpTestCase();
70     static void TearDownTestCase();
71     void SetUp() override;
72     void TearDown() override;
73 };
74 
SetUpTestCase()75 void AVCastControllerStubTest::SetUpTestCase()
76 {
77     g_selfTokenId = GetSelfTokenID();
78     AccessTokenKit::AllocHapToken(g_info, g_policy);
79     AccessTokenIDEx tokenID = AccessTokenKit::GetHapTokenIDEx(g_info.userID, g_info.bundleName, g_info.instIndex);
80     SetSelfTokenID(tokenID.tokenIDEx);
81 
82     g_AVSessionService = std::make_shared<AVSessionService>(OHOS::AVSESSION_SERVICE_ID);
83 }
84 
TearDownTestCase()85 void AVCastControllerStubTest::TearDownTestCase()
86 {
87     SetSelfTokenID(g_selfTokenId);
88     auto tokenId = AccessTokenKit::GetHapTokenID(g_info.userID, g_info.bundleName, g_info.instIndex);
89     AccessTokenKit::DeleteToken(tokenId);
90 }
91 
SetUp()92 void AVCastControllerStubTest::SetUp()
93 {}
94 
TearDown()95 void AVCastControllerStubTest::TearDown()
96 {}
97 
98 class AVCastControllerStubDemo : public AVCastControllerStub {
99 public:
100     int32_t SendControlCommand(const AVCastControlCommand& cmd) override
101         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
102 
103     int32_t Start(const AVQueueItem& avQueueItem) override
104         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
105 
106     int32_t Prepare(const AVQueueItem& avQueueItem) override
107         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
108 
109     int32_t RegisterCallback(const std::shared_ptr<AVCastControllerCallback>& callback) override
110         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
111 
112     int32_t GetDuration(int32_t& duration) override
113         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
114 
115     int32_t GetCastAVPlaybackState(AVPlaybackState& avPlaybackState) override
116         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
117 
118     int32_t GetCurrentItem(AVQueueItem& currentItem) override
119         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
120 
121     int32_t GetValidCommands(std::vector<int32_t>& cmds) override
122         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
123 
124     int32_t SetDisplaySurface(std::string& surfaceId) override
125         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
126 
127     int32_t SetCastPlaybackFilter(const AVPlaybackState::PlaybackStateMaskType& filter) override
128         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
129 
130     int32_t ProcessMediaKeyResponse(const std::string& assetId, const std::vector<uint8_t>& response) override
131         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
132 
133     int32_t AddAvailableCommand(const int32_t cmd) override
134         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
135 
136     int32_t RemoveAvailableCommand(const int32_t cmd) override
137         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
138 
139     int32_t Destroy() override
140         { return isSuccess ? AVSESSION_SUCCESS : AVSESSION_ERROR; }
141 
142     bool isSuccess;
143 
144 protected:
145     int32_t RegisterCallbackInner(const sptr<IRemoteObject>& callback) override { return 0; }
146 };
147 
148 /**
149 * @tc.name: OnRemoteRequestCode0_1
150 * @tc.desc: test HandleSendControlCommand
151 * @tc.type: FUNC
152 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode0_1, TestSize.Level1)153 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode0_1, TestSize.Level1)
154 {
155     SLOGI("OnRemoteRequestCode0_1 begin");
156     uint32_t code = 0;
157     AVCastControllerStubDemo aVCastControllerStubDemo;
158     aVCastControllerStubDemo.isSuccess = true;
159     OHOS::MessageParcel data;
160     auto localDescriptor = IAVCastController::GetDescriptor();
161     data.WriteInterfaceToken(localDescriptor);
162     OHOS::MessageParcel reply;
163     OHOS::MessageOption option;
164     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
165     EXPECT_EQ(ret, ERR_NONE);
166     SLOGI("OnRemoteRequestCode0_1 end");
167 }
168 
169 /**
170 * @tc.name: OnRemoteRequestCode0_2
171 * @tc.desc: test HandleSendControlCommand
172 * @tc.type: FUNC
173 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode0_2, TestSize.Level1)174 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode0_2, TestSize.Level1)
175 {
176     SLOGI("OnRemoteRequestCode0_2 begin");
177     uint32_t code = 0;
178     AVCastControllerStubDemo aVCastControllerStubDemo;
179     aVCastControllerStubDemo.isSuccess = false;
180     OHOS::MessageParcel data;
181     auto localDescriptor = IAVCastController::GetDescriptor();
182     data.WriteInterfaceToken(localDescriptor);
183     sptr<AVCastControlCommand> cmd = new AVCastControlCommand();
184     data.WriteParcelable(cmd);
185     OHOS::MessageParcel reply;
186     OHOS::MessageOption option;
187     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
188     EXPECT_EQ(ret, ERR_NONE);
189     SLOGI("OnRemoteRequestCode0_2 end");
190 }
191 
192 /**
193 * @tc.name: OnRemoteRequestCode1_1
194 * @tc.desc: test HandleStart
195 * @tc.type: FUNC
196 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode1_1, TestSize.Level1)197 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode1_1, TestSize.Level1)
198 {
199     SLOGI("OnRemoteRequestCode1_1 begin");
200     uint32_t code = 1;
201     AVCastControllerStubDemo aVCastControllerStubDemo;
202     aVCastControllerStubDemo.isSuccess = true;
203     OHOS::MessageParcel data;
204     auto localDescriptor = IAVCastController::GetDescriptor();
205     data.WriteInterfaceToken(localDescriptor);
206     OHOS::MessageParcel reply;
207     OHOS::MessageOption option;
208     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
209     EXPECT_EQ(ret, ERR_NONE);
210     SLOGI("OnRemoteRequestCode1_1 end");
211 }
212 
213 /**
214 * @tc.name: OnRemoteRequestCode1_2
215 * @tc.desc: test HandleStart
216 * @tc.type: FUNC
217 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode1_2, TestSize.Level1)218 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode1_2, TestSize.Level1)
219 {
220     SLOGI("OnRemoteRequestCode1_2 begin");
221     uint32_t code = 1;
222     AVCastControllerStubDemo aVCastControllerStubDemo;
223     aVCastControllerStubDemo.isSuccess = false;
224     OHOS::MessageParcel data;
225     auto localDescriptor = IAVCastController::GetDescriptor();
226     data.WriteInterfaceToken(localDescriptor);
227     sptr<AVQueueItem> avQueueItem = new AVQueueItem();
228     data.WriteParcelable(avQueueItem);
229     OHOS::MessageParcel reply;
230     OHOS::MessageOption option;
231     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
232     EXPECT_EQ(ret, ERR_NONE);
233     SLOGI("OnRemoteRequestCode1_2 end");
234 }
235 
236 /**
237 * @tc.name: OnRemoteRequestCode2_1
238 * @tc.desc: test HandlePrepare
239 * @tc.type: FUNC
240 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode2_1, TestSize.Level1)241 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode2_1, TestSize.Level1)
242 {
243     SLOGI("OnRemoteRequestCode2_1 begin");
244     uint32_t code = 2;
245     AVCastControllerStubDemo aVCastControllerStubDemo;
246     aVCastControllerStubDemo.isSuccess = true;
247     OHOS::MessageParcel data;
248     auto localDescriptor = IAVCastController::GetDescriptor();
249     data.WriteInterfaceToken(localDescriptor);
250     OHOS::MessageParcel reply;
251     OHOS::MessageOption option;
252     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
253     EXPECT_EQ(ret, ERR_NONE);
254     SLOGI("OnRemoteRequestCode2_1 end");
255 }
256 
257 /**
258 * @tc.name: OnRemoteRequestCode2_2
259 * @tc.desc: test HandlePrepare
260 * @tc.type: FUNC
261 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode2_2, TestSize.Level1)262 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode2_2, TestSize.Level1)
263 {
264     SLOGI("OnRemoteRequestCode2_2 begin");
265     uint32_t code = 2;
266     AVCastControllerStubDemo aVCastControllerStubDemo;
267     aVCastControllerStubDemo.isSuccess = false;
268     OHOS::MessageParcel data;
269     auto localDescriptor = IAVCastController::GetDescriptor();
270     data.WriteInterfaceToken(localDescriptor);
271     sptr<AVQueueItem> avQueueItem = new AVQueueItem();
272     data.WriteParcelable(avQueueItem);
273     OHOS::MessageParcel reply;
274     OHOS::MessageOption option;
275     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
276     EXPECT_EQ(ret, ERR_NONE);
277     SLOGI("OnRemoteRequestCode2_2 end");
278 }
279 
280 /**
281 * @tc.name: OnRemoteRequestCode3_1
282 * @tc.desc: test HandleGetDuration
283 * @tc.type: FUNC
284 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode3_1, TestSize.Level1)285 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode3_1, TestSize.Level1)
286 {
287     SLOGI("OnRemoteRequestCode3_1 begin");
288     uint32_t code = 3;
289     AVCastControllerStubDemo aVCastControllerStubDemo;
290     aVCastControllerStubDemo.isSuccess = true;
291     OHOS::MessageParcel data;
292     auto localDescriptor = IAVCastController::GetDescriptor();
293     data.WriteInterfaceToken(localDescriptor);
294     OHOS::MessageParcel reply;
295     OHOS::MessageOption option;
296     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
297     EXPECT_EQ(ret, ERR_NONE);
298     SLOGI("OnRemoteRequestCode3_1 end");
299 }
300 
301 /**
302 * @tc.name: OnRemoteRequestCode3_2
303 * @tc.desc: test HandleGetDuration
304 * @tc.type: FUNC
305 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode3_2, TestSize.Level1)306 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode3_2, TestSize.Level1)
307 {
308     SLOGI("OnRemoteRequestCode3_2 begin");
309     uint32_t code = 3;
310     AVCastControllerStubDemo aVCastControllerStubDemo;
311     aVCastControllerStubDemo.isSuccess = false;
312     OHOS::MessageParcel data;
313     auto localDescriptor = IAVCastController::GetDescriptor();
314     data.WriteInterfaceToken(localDescriptor);
315     OHOS::MessageParcel reply;
316     OHOS::MessageOption option;
317     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
318     EXPECT_EQ(ret, ERR_NONE);
319     SLOGI("OnRemoteRequestCode3_2 end");
320 }
321 
322 /**
323 * @tc.name: OnRemoteRequestCode4_1
324 * @tc.desc: test HandleGetCastAVPlayBackState
325 * @tc.type: FUNC
326 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode4_1, TestSize.Level1)327 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode4_1, TestSize.Level1)
328 {
329     SLOGI("OnRemoteRequestCode4_1 begin");
330     uint32_t code = 4;
331     AVCastControllerStubDemo aVCastControllerStubDemo;
332     aVCastControllerStubDemo.isSuccess = true;
333     OHOS::MessageParcel data;
334     auto localDescriptor = IAVCastController::GetDescriptor();
335     data.WriteInterfaceToken(localDescriptor);
336     OHOS::MessageParcel reply;
337     OHOS::MessageOption option;
338     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
339     EXPECT_EQ(ret, ERR_NONE);
340     SLOGI("OnRemoteRequestCode4_1 end");
341 }
342 
343 /**
344 * @tc.name: OnRemoteRequestCode4_2
345 * @tc.desc: test HandleGetCastAVPlayBackState
346 * @tc.type: FUNC
347 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode4_2, TestSize.Level1)348 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode4_2, TestSize.Level1)
349 {
350     SLOGI("OnRemoteRequestCode4_2 begin");
351     uint32_t code = 4;
352     AVCastControllerStubDemo aVCastControllerStubDemo;
353     aVCastControllerStubDemo.isSuccess = false;
354     OHOS::MessageParcel data;
355     auto localDescriptor = IAVCastController::GetDescriptor();
356     data.WriteInterfaceToken(localDescriptor);
357     OHOS::MessageParcel reply;
358     OHOS::MessageOption option;
359     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
360     EXPECT_EQ(ret, ERR_NONE);
361     SLOGI("OnRemoteRequestCode4_2 end");
362 }
363 
364 /**
365 * @tc.name: OnRemoteRequestCode5_1
366 * @tc.desc: test HandleGetCurrentItem
367 * @tc.type: FUNC
368 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode5_1, TestSize.Level1)369 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode5_1, TestSize.Level1)
370 {
371     SLOGI("OnRemoteRequestCode5_1 begin");
372     uint32_t code = 5;
373     AVCastControllerStubDemo aVCastControllerStubDemo;
374     aVCastControllerStubDemo.isSuccess = true;
375     OHOS::MessageParcel data;
376     auto localDescriptor = IAVCastController::GetDescriptor();
377     data.WriteInterfaceToken(localDescriptor);
378     OHOS::MessageParcel reply;
379     OHOS::MessageOption option;
380     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
381     EXPECT_EQ(ret, ERR_NONE);
382     SLOGI("OnRemoteRequestCode5_1 end");
383 }
384 
385 /**
386 * @tc.name: OnRemoteRequestCode5_2
387 * @tc.desc: test HandleGetCurrentItem
388 * @tc.type: FUNC
389 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode5_2, TestSize.Level1)390 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode5_2, TestSize.Level1)
391 {
392     SLOGI("OnRemoteRequestCode5_2 begin");
393     uint32_t code = 5;
394     AVCastControllerStubDemo aVCastControllerStubDemo;
395     aVCastControllerStubDemo.isSuccess = false;
396     OHOS::MessageParcel data;
397     auto localDescriptor = IAVCastController::GetDescriptor();
398     data.WriteInterfaceToken(localDescriptor);
399     OHOS::MessageParcel reply;
400     OHOS::MessageOption option;
401     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
402     EXPECT_EQ(ret, ERR_NONE);
403     SLOGI("OnRemoteRequestCode5_2 end");
404 }
405 
406 /**
407 * @tc.name: OnRemoteRequestCode6_1
408 * @tc.desc: test HandleGetValidCommands
409 * @tc.type: FUNC
410 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode6_1, TestSize.Level1)411 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode6_1, TestSize.Level1)
412 {
413     SLOGI("OnRemoteRequestCode6_1 begin");
414     uint32_t code = 6;
415     AVCastControllerStubDemo aVCastControllerStubDemo;
416     aVCastControllerStubDemo.isSuccess = true;
417     OHOS::MessageParcel data;
418     auto localDescriptor = IAVCastController::GetDescriptor();
419     data.WriteInterfaceToken(localDescriptor);
420     OHOS::MessageParcel reply;
421     OHOS::MessageOption option;
422     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
423     EXPECT_EQ(ret, ERR_NONE);
424     SLOGI("OnRemoteRequestCode6_1 end");
425 }
426 
427 /**
428 * @tc.name: OnRemoteRequestCode6_2
429 * @tc.desc: test HandleGetValidCommands
430 * @tc.type: FUNC
431 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode6_2, TestSize.Level1)432 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode6_2, TestSize.Level1)
433 {
434     SLOGI("OnRemoteRequestCode6_2 begin");
435     uint32_t code = 6;
436     AVCastControllerStubDemo aVCastControllerStubDemo;
437     aVCastControllerStubDemo.isSuccess = false;
438     OHOS::MessageParcel data;
439     auto localDescriptor = IAVCastController::GetDescriptor();
440     data.WriteInterfaceToken(localDescriptor);
441     OHOS::MessageParcel reply;
442     OHOS::MessageOption option;
443     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
444     EXPECT_EQ(ret, ERR_NONE);
445     SLOGI("OnRemoteRequestCode6_2 end");
446 }
447 
448 /**
449 * @tc.name: OnRemoteRequestCode7_1
450 * @tc.desc: test HandleSetDisplaySurface
451 * @tc.type: FUNC
452 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode7_1, TestSize.Level1)453 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode7_1, TestSize.Level1)
454 {
455     SLOGI("OnRemoteRequestCode7_1 begin");
456     uint32_t code = 7;
457     AVCastControllerStubDemo aVCastControllerStubDemo;
458     aVCastControllerStubDemo.isSuccess = true;
459     OHOS::MessageParcel data;
460     auto localDescriptor = IAVCastController::GetDescriptor();
461     data.WriteInterfaceToken(localDescriptor);
462     OHOS::MessageParcel reply;
463     OHOS::MessageOption option;
464     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
465     EXPECT_EQ(ret, ERR_NONE);
466     SLOGI("OnRemoteRequestCode7_1 end");
467 }
468 
469 /**
470 * @tc.name: OnRemoteRequestCode7_2
471 * @tc.desc: test HandleSetDisplaySurface
472 * @tc.type: FUNC
473 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode7_2, TestSize.Level1)474 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode7_2, TestSize.Level1)
475 {
476     SLOGI("OnRemoteRequestCode7_2 begin");
477     uint32_t code = 7;
478     AVCastControllerStubDemo aVCastControllerStubDemo;
479     aVCastControllerStubDemo.isSuccess = false;
480     OHOS::MessageParcel data;
481     auto localDescriptor = IAVCastController::GetDescriptor();
482     data.WriteInterfaceToken(localDescriptor);
483 
484     std::string deviceId = "deviceId";
485     std::string bundleName = "test.ohos.avsession";
486     std::string abilityName = "test.ability";
487     std::string moduleName = "moduleName";
488     AppExecFwk::ElementName elementName(deviceId, bundleName, abilityName, moduleName);
489     sptr<IRemoteObject> obj = g_AVSessionService->CreateSessionInner("test",
490         AVSession::SESSION_TYPE_AUDIO, elementName);
491     data.WriteRemoteObject(obj);
492 
493     OHOS::MessageParcel reply;
494     OHOS::MessageOption option;
495     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
496     EXPECT_EQ(ret, ERR_NONE);
497     SLOGI("OnRemoteRequestCode7_2 end");
498 }
499 
500 /**
501 * @tc.name: OnRemoteRequestCode8_1
502 * @tc.desc: test HandleSetCastPlaybackFilter
503 * @tc.type: FUNC
504 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode8_1, TestSize.Level1)505 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode8_1, TestSize.Level1)
506 {
507     SLOGI("OnRemoteRequestCode0_1 begin");
508     uint32_t code = 8;
509     AVCastControllerStubDemo aVCastControllerStubDemo;
510     aVCastControllerStubDemo.isSuccess = true;
511     OHOS::MessageParcel data;
512     auto localDescriptor = IAVCastController::GetDescriptor();
513     data.WriteInterfaceToken(localDescriptor);
514     OHOS::MessageParcel reply;
515     OHOS::MessageOption option;
516     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
517     EXPECT_EQ(ret, ERR_NONE);
518     SLOGI("OnRemoteRequestCode0_1 end");
519 }
520 
521 /**
522 * @tc.name: OnRemoteRequestCode8_2
523 * @tc.desc: test HandleSetCastPlaybackFilter
524 * @tc.type: FUNC
525 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode8_2, TestSize.Level1)526 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode8_2, TestSize.Level1)
527 {
528     SLOGI("OnRemoteRequestCode8_2 begin");
529     uint32_t code = 8;
530     AVCastControllerStubDemo aVCastControllerStubDemo;
531     aVCastControllerStubDemo.isSuccess = false;
532     OHOS::MessageParcel data;
533     auto localDescriptor = IAVCastController::GetDescriptor();
534     data.WriteInterfaceToken(localDescriptor);
535     std::string str(14, 'a');
536     data.WriteString(str);
537     OHOS::MessageParcel reply;
538     OHOS::MessageOption option;
539     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
540     EXPECT_EQ(ret, ERR_NONE);
541     SLOGI("OnRemoteRequestCode8_2 end");
542 }
543 
544 /**
545 * @tc.name: OnRemoteRequestCode8_3
546 * @tc.desc: test HandleSetCastPlaybackFilter
547 * @tc.type: FUNC
548 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode8_3, TestSize.Level1)549 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode8_3, TestSize.Level1)
550 {
551     SLOGI("OnRemoteRequestCode8_3 begin");
552     uint32_t code = 8;
553     AVCastControllerStubDemo aVCastControllerStubDemo;
554     aVCastControllerStubDemo.isSuccess = false;
555     OHOS::MessageParcel data;
556     auto localDescriptor = IAVCastController::GetDescriptor();
557     data.WriteInterfaceToken(localDescriptor);
558     std::string str{"01010101010101"};
559     data.WriteString(str);
560     OHOS::MessageParcel reply;
561     OHOS::MessageOption option;
562     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
563     EXPECT_EQ(ret, AVSESSION_SUCCESS);
564     SLOGI("OnRemoteRequestCode8_3 end");
565 }
566 
567 /**
568 * @tc.name: OnRemoteRequestCode9_1
569 * @tc.desc: test HandleProcessMediaKeyResponse
570 * @tc.type: FUNC
571 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode9_1, TestSize.Level1)572 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode9_1, TestSize.Level1)
573 {
574     SLOGI("OnRemoteRequestCode9_1 begin");
575     uint32_t code = 9;
576     AVCastControllerStubDemo aVCastControllerStubDemo;
577     aVCastControllerStubDemo.isSuccess = true;
578     OHOS::MessageParcel data;
579     auto localDescriptor = IAVCastController::GetDescriptor();
580     data.WriteInterfaceToken(localDescriptor);
581     data.WriteInt32(0);
582     OHOS::MessageParcel reply;
583     OHOS::MessageOption option;
584     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
585     EXPECT_EQ(ret, ERR_NONE);
586     SLOGI("OnRemoteRequestCode9_1 end");
587 }
588 
589 /**
590 * @tc.name: OnRemoteRequestCode9_2
591 * @tc.desc: test HandleProcessMediaKeyResponse
592 * @tc.type: FUNC
593 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode9_2, TestSize.Level1)594 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode9_2, TestSize.Level1)
595 {
596     SLOGI("OnRemoteRequestCode9_2 begin");
597     uint32_t code = 9;
598     AVCastControllerStubDemo aVCastControllerStubDemo;
599     aVCastControllerStubDemo.isSuccess = false;
600     OHOS::MessageParcel data;
601     auto localDescriptor = IAVCastController::GetDescriptor();
602     data.WriteInterfaceToken(localDescriptor);
603     data.WriteInt32(4);
604     OHOS::MessageParcel reply;
605     OHOS::MessageOption option;
606     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
607     EXPECT_EQ(ret, IPC_STUB_WRITE_PARCEL_ERR);
608     SLOGI("OnRemoteRequestCode9_2 end");
609 }
610 
611 /**
612 * @tc.name: OnRemoteRequestCode9_3
613 * @tc.desc: test HandleProcessMediaKeyResponse
614 * @tc.type: FUNC
615 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode9_3, TestSize.Level1)616 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode9_3, TestSize.Level1)
617 {
618     SLOGI("OnRemoteRequestCode9_3 begin");
619     uint32_t code = 9;
620     AVCastControllerStubDemo aVCastControllerStubDemo;
621     aVCastControllerStubDemo.isSuccess = false;
622     OHOS::MessageParcel data;
623     auto localDescriptor = IAVCastController::GetDescriptor();
624     data.WriteInterfaceToken(localDescriptor);
625     data.WriteInt32(4);
626     std::string str{"****"};
627     data.WriteString(str.c_str());
628     OHOS::MessageParcel reply;
629     OHOS::MessageOption option;
630     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
631     EXPECT_EQ(ret, ERR_NONE);
632     SLOGI("OnRemoteRequestCode9_3 end");
633 }
634 
635 /**
636 * @tc.name: OnRemoteRequestCode10_1
637 * @tc.desc: test HandleRegisterCallbackInner
638 * @tc.type: FUNC
639 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode10_1, TestSize.Level1)640 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode10_1, TestSize.Level1)
641 {
642     SLOGI("OnRemoteRequestCode10_1 begin");
643     uint32_t code = 10;
644     AVCastControllerStubDemo aVCastControllerStubDemo;
645     aVCastControllerStubDemo.isSuccess = true;
646 
647     OHOS::MessageParcel data;
648     auto localDescriptor = IAVCastController::GetDescriptor();
649     data.WriteInterfaceToken(localDescriptor);
650     std::string deviceId = "deviceId";
651     std::string bundleName = "test.ohos.avsession";
652     std::string abilityName = "test.ability";
653     std::string moduleName = "moduleName";
654     AppExecFwk::ElementName elementName(deviceId, bundleName, abilityName, moduleName);
655     sptr<IRemoteObject> obj = g_AVSessionService->CreateSessionInner("test",
656         AVSession::SESSION_TYPE_AUDIO, elementName);
657     data.WriteRemoteObject(obj);
658 
659     OHOS::MessageParcel reply;
660     OHOS::MessageOption option;
661     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
662     EXPECT_EQ(ret, ERR_NONE);
663     SLOGI("OnRemoteRequestCode10_1 end");
664 }
665 
666 /**
667 * @tc.name: OnRemoteRequestCode10_2
668 * @tc.desc: test HandleRegisterCallbackInner
669 * @tc.type: FUNC
670 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode10_2, TestSize.Level1)671 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode10_2, TestSize.Level1)
672 {
673     SLOGI("OnRemoteRequestCode10_2 begin");
674     uint32_t code = 10;
675     AVCastControllerStubDemo aVCastControllerStubDemo;
676     aVCastControllerStubDemo.isSuccess = false;
677     OHOS::MessageParcel data;
678     auto localDescriptor = IAVCastController::GetDescriptor();
679     data.WriteInterfaceToken(localDescriptor);
680     OHOS::MessageParcel reply;
681     OHOS::MessageOption option;
682     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
683     EXPECT_EQ(ret, ERR_NONE);
684     SLOGI("OnRemoteRequestCode10_2 end");
685 }
686 
687 /**
688 * @tc.name: OnRemoteRequestCode11_1
689 * @tc.desc: test HandleDestroy
690 * @tc.type: FUNC
691 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode11_1, TestSize.Level1)692 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode11_1, TestSize.Level1)
693 {
694     SLOGI("OnRemoteRequestCode11_1 begin");
695     uint32_t code = 11;
696     AVCastControllerStubDemo aVCastControllerStubDemo;
697     aVCastControllerStubDemo.isSuccess = true;
698     OHOS::MessageParcel data;
699     auto localDescriptor = IAVCastController::GetDescriptor();
700     data.WriteInterfaceToken(localDescriptor);
701     OHOS::MessageParcel reply;
702     OHOS::MessageOption option;
703     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
704     EXPECT_EQ(ret, ERR_NONE);
705     SLOGI("OnRemoteRequestCode11_1 end");
706 }
707 
708 /**
709 * @tc.name: OnRemoteRequestCode11_2
710 * @tc.desc: test HandleDestroy
711 * @tc.type: FUNC
712 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode11_2, TestSize.Level1)713 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode11_2, TestSize.Level1)
714 {
715     SLOGI("OnRemoteRequestCode11_2 begin");
716     uint32_t code = 11;
717     AVCastControllerStubDemo aVCastControllerStubDemo;
718     aVCastControllerStubDemo.isSuccess = false;
719     OHOS::MessageParcel data;
720     auto localDescriptor = IAVCastController::GetDescriptor();
721     data.WriteInterfaceToken(localDescriptor);
722     OHOS::MessageParcel reply;
723     OHOS::MessageOption option;
724     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
725     EXPECT_EQ(ret, ERR_NONE);
726     SLOGI("OnRemoteRequestCode11_2 end");
727 }
728 
729 /**
730 * @tc.name: OnRemoteRequestCode12_1
731 * @tc.desc: test HandleAddAvailableCommand
732 * @tc.type: FUNC
733 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode12_1, TestSize.Level1)734 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode12_1, TestSize.Level1)
735 {
736     SLOGI("OnRemoteRequestCode12_1 begin");
737     uint32_t code = 12;
738     AVCastControllerStubDemo aVCastControllerStubDemo;
739     aVCastControllerStubDemo.isSuccess = true;
740     OHOS::MessageParcel data;
741     auto localDescriptor = IAVCastController::GetDescriptor();
742     data.WriteInterfaceToken(localDescriptor);
743     OHOS::MessageParcel reply;
744     OHOS::MessageOption option;
745     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
746     EXPECT_EQ(ret, ERR_NONE);
747     SLOGI("OnRemoteRequestCode12_1 end");
748 }
749 
750 /**
751 * @tc.name: OnRemoteRequestCode12_2
752 * @tc.desc: test HandleAddAvailableCommand
753 * @tc.type: FUNC
754 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode12_2, TestSize.Level1)755 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode12_2, TestSize.Level1)
756 {
757     SLOGI("OnRemoteRequestCode12_2 begin");
758     uint32_t code = 12;
759     AVCastControllerStubDemo aVCastControllerStubDemo;
760     aVCastControllerStubDemo.isSuccess = false;
761     OHOS::MessageParcel data;
762     auto localDescriptor = IAVCastController::GetDescriptor();
763     data.WriteInterfaceToken(localDescriptor);
764     OHOS::MessageParcel reply;
765     OHOS::MessageOption option;
766     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
767     EXPECT_EQ(ret, ERR_NONE);
768     SLOGI("OnRemoteRequestCode12_2 end");
769 }
770 
771 /**
772 * @tc.name: OnRemoteRequestCode13_1
773 * @tc.desc: test HandleRemoveAvailableCommand
774 * @tc.type: FUNC
775 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode13_1, TestSize.Level1)776 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode13_1, TestSize.Level1)
777 {
778     SLOGI("OnRemoteRequestCode13_1 begin");
779     uint32_t code = 13;
780     AVCastControllerStubDemo aVCastControllerStubDemo;
781     aVCastControllerStubDemo.isSuccess = true;
782     OHOS::MessageParcel data;
783     auto localDescriptor = IAVCastController::GetDescriptor();
784     data.WriteInterfaceToken(localDescriptor);
785     OHOS::MessageParcel reply;
786     OHOS::MessageOption option;
787     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
788     EXPECT_EQ(ret, ERR_NONE);
789     SLOGI("OnRemoteRequestCode13_1 end");
790 }
791 
792 /**
793 * @tc.name: OnRemoteRequestCode13_2
794 * @tc.desc: test HandleRemoveAvailableCommand
795 * @tc.type: FUNC
796 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode13_2, TestSize.Level1)797 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode13_2, TestSize.Level1)
798 {
799     SLOGI("OnRemoteRequestCode13_2 begin");
800     uint32_t code = 13;
801     AVCastControllerStubDemo aVCastControllerStubDemo;
802     aVCastControllerStubDemo.isSuccess = false;
803     OHOS::MessageParcel data;
804     auto localDescriptor = IAVCastController::GetDescriptor();
805     data.WriteInterfaceToken(localDescriptor);
806     OHOS::MessageParcel reply;
807     OHOS::MessageOption option;
808     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
809     EXPECT_EQ(ret, ERR_NONE);
810     SLOGI("OnRemoteRequestCode13_2 end");
811 }
812 
813 /**
814 * @tc.name: OnRemoteRequestCode14
815 * @tc.desc: test OnRemoteRequest
816 * @tc.type: FUNC
817 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode14, TestSize.Level1)818 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode14, TestSize.Level1)
819 {
820     SLOGI("OnRemoteRequestCode14 begin");
821     uint32_t code = 0;
822     AVCastControllerStubDemo aVCastControllerStubDemo;
823     aVCastControllerStubDemo.isSuccess = false;
824     OHOS::MessageParcel data;
825     OHOS::MessageParcel reply;
826     OHOS::MessageOption option;
827     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
828     EXPECT_EQ(ret, AVSESSION_ERROR);
829     SLOGI("OnRemoteRequestCode14 end");
830 }
831 
832 /**
833 * @tc.name: OnRemoteRequestCode15
834 * @tc.desc: test OnRemoteRequest
835 * @tc.type: FUNC
836 */
HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode15, TestSize.Level1)837 static HWTEST_F(AVCastControllerStubTest, OnRemoteRequestCode15, TestSize.Level1)
838 {
839     SLOGI("OnRemoteRequestCode15 begin");
840     uint32_t code = 1000;
841     AVCastControllerStubDemo aVCastControllerStubDemo;
842     aVCastControllerStubDemo.isSuccess = false;
843     OHOS::MessageParcel data;
844     auto localDescriptor = IAVCastController::GetDescriptor();
845     data.WriteInterfaceToken(localDescriptor);
846     OHOS::MessageParcel reply;
847     OHOS::MessageOption option;
848     int ret = aVCastControllerStubDemo.OnRemoteRequest(code, data, reply, option);
849     EXPECT_EQ(ret, IPC_STUB_UNKNOW_TRANS_ERR);
850     SLOGI("OnRemoteRequestCode15 end");
851 }
852 
853 } // namespace OHOS
854 } // namespace AVSession