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