1 /*
2 * Copyright (c) 2025 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 "media_server_manager_test.h"
17 #include "media_errors.h"
18
19 namespace OHOS {
20 namespace Media {
21 using namespace std;
22 using namespace testing;
23 using namespace testing::ext;
24
25 static const int32_t PID_TEST = 12345;
26 std::shared_ptr<MockMonitorServiceStub> g_mockMonitorServiceStub = nullptr;
27 std::shared_ptr<MockRecorderProfilesServiceStub> g_mockRecorderProfilesServiceStub = nullptr;
28 std::shared_ptr<MockTransCoderServiceStub> g_mockTransCoderServiceStub = nullptr;
SetUpTestCase(void)29 void MediaServerManagerTest::SetUpTestCase(void)
30 {
31 }
32
TearDownTestCase(void)33 void MediaServerManagerTest::TearDownTestCase(void)
34 {
35 }
36
SetUp(void)37 void MediaServerManagerTest::SetUp(void)
38 {
39 }
40
TearDown(void)41 void MediaServerManagerTest::TearDown(void)
42 {
43 }
44
45 /**
46 * @tc.name : FreezeStubForPids_001
47 * @tc.number: FreezeStubForPids_001
48 * @tc.desc : Test FreezeStubForPids interface
49 */
50 HWTEST_F(MediaServerManagerTest, FreezeStubForPids_001, TestSize.Level1)
51 {
52 sptr<IRemoteObject> player =
53 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
54 ASSERT_NE(player, nullptr);
55 int32_t pid = IPCSkeleton::GetCallingPid();
56 std::set<int32_t> pidList;
57 pidList.insert(pid);
58 auto isProxy = true;
59 auto ret = MediaServerManager::GetInstance().FreezeStubForPids(pidList, isProxy);
60 EXPECT_EQ(ret, 0);
61 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
62 }
63
64 /**
65 * @tc.name : FreezeStubForPids_002
66 * @tc.number: FreezeStubForPids_002
67 * @tc.desc : Test FreezeStubForPids interface
68 */
69 HWTEST_F(MediaServerManagerTest, FreezeStubForPids_002, TestSize.Level1)
70 {
71 sptr<IRemoteObject> player =
72 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
73 ASSERT_NE(player, nullptr);
74 std::set<int32_t> pidList;
75 pidList.insert(PID_TEST);
76 auto isProxy = true;
77 auto ret = MediaServerManager::GetInstance().FreezeStubForPids(pidList, isProxy);
78 EXPECT_EQ(ret, 0);
79 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
80 }
81
82 /**
83 * @tc.name : FreezeStubForPids_003
84 * @tc.number: FreezeStubForPids_003
85 * @tc.desc : Test FreezeStubForPids interface
86 */
87 HWTEST_F(MediaServerManagerTest, FreezeStubForPids_003, TestSize.Level1)
88 {
89 sptr<IRemoteObject> player =
90 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
91 ASSERT_NE(player, nullptr);
92 int32_t pid = IPCSkeleton::GetCallingPid();
93 std::set<int32_t> pidList;
94 pidList.insert(pid);
95 auto isProxy = false;
96 auto ret = MediaServerManager::GetInstance().FreezeStubForPids(pidList, isProxy);
97 EXPECT_EQ(ret, 0);
98 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
99 }
100
101 /**
102 * @tc.name : ResetAllProxy_001
103 * @tc.number: ResetAllProxy_001
104 * @tc.desc : Test ResetAllProxy interface
105 */
106 HWTEST_F(MediaServerManagerTest, ResetAllProxy, TestSize.Level1)
107 {
108 sptr<IRemoteObject> player =
109 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
110 ASSERT_NE(player, nullptr);
111 auto ret = MediaServerManager::GetInstance().ResetAllProxy();
112 EXPECT_EQ(ret, 0);
113 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
114 }
115
116 /**
117 * @tc.name : DestroyStubObject_001
118 * @tc.number: DestroyStubObject_001
119 * @tc.desc : Test DestroyStubObject interface
120 */
121 HWTEST_F(MediaServerManagerTest, DestroyStubObject_001, TestSize.Level1)
122 {
123 sptr<IRemoteObject> recorder =
124 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
125 EXPECT_NE(recorder, nullptr);
126 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDER, recorder);
127 sptr<IRemoteObject> player =
128 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
129 EXPECT_NE(player, nullptr);
130 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::PLAYER, player);
131 sptr<IRemoteObject> avmetadatahelper =
132 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
133 EXPECT_NE(avmetadatahelper, nullptr);
134 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVMETADATAHELPER, avmetadatahelper);
135 sptr<IRemoteObject> avcodecList =
136 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
137 EXPECT_EQ(avcodecList, nullptr);
138 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODECLIST, avcodecList);
139 sptr<IRemoteObject> avcodec =
140 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
141 EXPECT_EQ(avcodec, nullptr);
142 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::AVCODEC, avcodec);
143 sptr<IRemoteObject> recorderProfiles =
144 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
145 EXPECT_NE(recorderProfiles, nullptr);
146 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::RECORDERPROFILES, recorderProfiles);
147 sptr<IRemoteObject> monitor =
148 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
149 EXPECT_NE(monitor, nullptr);
150 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::MONITOR, monitor);
151 sptr<IRemoteObject> screenCapture =
152 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
153 EXPECT_NE(screenCapture, nullptr);
154 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE, screenCapture);
155 sptr<IRemoteObject> screenCaptureController =
156 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
157 EXPECT_NE(screenCaptureController, nullptr);
158 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER,
159 screenCaptureController);
160 sptr<IRemoteObject> transcoder =
161 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
162 EXPECT_NE(transcoder, nullptr);
163 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::TRANSCODER, transcoder);
164 sptr<IRemoteObject> screenCaptureMonitor =
165 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
166 EXPECT_NE(screenCaptureMonitor, nullptr);
167 MediaServerManager::GetInstance().DestroyStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR,
168 screenCaptureMonitor);
169 }
170
171 /**
172 * @tc.name : DestroyStubObjectForPid_001
173 * @tc.number: DestroyStubObjectForPid_001
174 * @tc.desc : Test DestroyStubObjectForPid interface
175 */
176 HWTEST_F(MediaServerManagerTest, DestroyStubObjectForPid_001, TestSize.Level1)
177 {
178 sptr<IRemoteObject> recorder =
179 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDER);
180 EXPECT_NE(recorder, nullptr);
181 sptr<IRemoteObject> player =
182 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::PLAYER);
183 EXPECT_NE(player, nullptr);
184 sptr<IRemoteObject> avmetadatahelper =
185 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVMETADATAHELPER);
186 EXPECT_NE(avmetadatahelper, nullptr);
187 sptr<IRemoteObject> avcodecList =
188 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
189 EXPECT_EQ(avcodecList, nullptr);
190 sptr<IRemoteObject> avcodec =
191 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
192 EXPECT_EQ(avcodec, nullptr);
193 sptr<IRemoteObject> recorderProfiles =
194 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
195 EXPECT_NE(recorderProfiles, nullptr);
196 sptr<IRemoteObject> monitor =
197 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
198 EXPECT_NE(monitor, nullptr);
199 sptr<IRemoteObject> screenCapture =
200 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE);
201 EXPECT_NE(screenCapture, nullptr);
202 sptr<IRemoteObject> screenCaptureController =
203 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_CONTROLLER);
204 EXPECT_NE(screenCaptureController, nullptr);
205 sptr<IRemoteObject> transcoder =
206 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
207 EXPECT_NE(transcoder, nullptr);
208 sptr<IRemoteObject> screenCaptureMonitor =
209 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::SCREEN_CAPTURE_MONITOR);
210 EXPECT_NE(screenCaptureMonitor, nullptr);
211 pid_t pid = IPCSkeleton::GetCallingPid();
212 MediaServerManager::GetInstance().DestroyStubObjectForPid(pid);
213 }
214
215 /**
216 * @tc.name : DestroyAVPlayerStubForPid_001
217 * @tc.number: DestroyAVPlayerStubForPid_001
218 * @tc.desc : Test DestroyAVPlayerStubForPid interface
219 */
220 HWTEST_F(MediaServerManagerTest, DestroyAVPlayerStubForPid_001, TestSize.Level1)
221 {
222 g_mockMonitorServiceStub = std::make_shared<MockMonitorServiceStub>();
223 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
224 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
225 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
226 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
227 pid_t testPid = PID_TEST;
228 mediaServerManager.avMetadataHelperStubMap_[object] = testPid;
229 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
230 mediaServerManager.DestroyAVPlayerStubForPid(testPid);
231 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 0);
232 }
233
234 /**
235 * @tc.name : DestroyAVRecorderStubForPid_001
236 * @tc.number: DestroyAVRecorderStubForPid_001
237 * @tc.desc : Test DestroyAVRecorderStubForPid interface
238 */
239 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStubForPid_001, TestSize.Level1)
240 {
241 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
242 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
243 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
244 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
245 pid_t testPid = PID_TEST;
246 mediaServerManager.recorderStubMap_[object] = testPid;
247 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
248 mediaServerManager.DestroyAVRecorderStubForPid(testPid);
249 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 0);
250 }
251
252 /**
253 * @tc.name : DestroyAVRecorderStubForPid_002
254 * @tc.number: DestroyAVRecorderStubForPid_002
255 * @tc.desc : Test DestroyAVRecorderStubForPid interface
256 */
257 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStubForPid_002, TestSize.Level1)
258 {
259 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
260 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
261 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
262 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
263 pid_t testPid = PID_TEST;
264 mediaServerManager.recorderProfilesStubMap_[object] = testPid;
265 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
266 mediaServerManager.DestroyAVRecorderStubForPid(testPid);
267 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 0);
268 }
269
270 /**
271 * @tc.name : DestroyAVTranscoderStubForPid_001
272 * @tc.number: DestroyAVTranscoderStubForPid_001
273 * @tc.desc : Test DestroyAVTranscoderStubForPid interface
274 */
275 HWTEST_F(MediaServerManagerTest, DestroyAVTranscoderStubForPid_001, TestSize.Level1)
276 {
277 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
278 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
279 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
280 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
281 pid_t testPid = PID_TEST;
282 mediaServerManager.transCoderStubMap_[object] = testPid;
283 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
284 mediaServerManager.DestroyAVTranscoderStubForPid(testPid);
285 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 0);
286 }
287
288 /**
289 * @tc.name : DestroyAVCodecStubForPid_001
290 * @tc.number: DestroyAVCodecStubForPid_001
291 * @tc.desc : Test DestroyAVCodecStubForPid interface
292 */
293 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStubForPid_001, TestSize.Level1)
294 {
295 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
296 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
297 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
298 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
299 pid_t testPid = PID_TEST;
300 mediaServerManager.avCodecStubMap_[object] = testPid;
301 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
302 mediaServerManager.DestroyAVCodecStubForPid(testPid);
303 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
304 }
305
306 /**
307 * @tc.name : DestroyAVCodecStubForPid_002
308 * @tc.number: DestroyAVCodecStubForPid_002
309 * @tc.desc : Test DestroyAVCodecStubForPid interface
310 */
311 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStubForPid_002, TestSize.Level1)
312 {
313 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
314 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
315 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
316 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
317 pid_t testPid = PID_TEST;
318 mediaServerManager.avCodecListStubMap_[object] = testPid;
319 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
320 mediaServerManager.DestroyAVCodecStubForPid(testPid);
321 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
322 }
323
324 /**
325 * @tc.name : DestroyAVScreenCaptureStubForPid_001
326 * @tc.number: DestroyAVScreenCaptureStubForPid_001
327 * @tc.desc : Test DestroyAVScreenCaptureStubForPid interface
328 */
329 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStubForPid_001, TestSize.Level1)
330 {
331 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
332 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
333 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
334 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
335 pid_t testPid = PID_TEST;
336 mediaServerManager.screenCaptureStubMap_[object] = testPid;
337 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 1);
338 mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
339 ASSERT_EQ(mediaServerManager.screenCaptureStubMap_.size(), 0);
340 }
341
342 /**
343 * @tc.name : DestroyAVScreenCaptureStubForPid_002
344 * @tc.number: DestroyAVScreenCaptureStubForPid_002
345 * @tc.desc : Test DestroyAVScreenCaptureStubForPid interface
346 */
347 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStubForPid_002, TestSize.Level1)
348 {
349 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
350 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
351 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
352 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
353 pid_t testPid = PID_TEST;
354 mediaServerManager.screenCaptureMonitorStubMap_[object] = testPid;
355 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
356 mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
357 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 0);
358 }
359
360 /**
361 * @tc.name : DestroyAVScreenCaptureStubForPid_003
362 * @tc.number: DestroyAVScreenCaptureStubForPid_003
363 * @tc.desc : Test DestroyAVScreenCaptureStubForPid interface
364 */
365 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStubForPid_003, TestSize.Level1)
366 {
367 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
368 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
369 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
370 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
371 pid_t testPid = PID_TEST;
372 mediaServerManager.screenCaptureControllerStubMap_[object] = testPid;
373 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
374 mediaServerManager.DestroyAVScreenCaptureStubForPid(testPid);
375 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 0);
376 }
377
378 /**
379 * @tc.name : DestroyStubObject_002
380 * @tc.number: DestroyStubObject_002
381 * @tc.desc : Test DestroyStubObject interface
382 */
383 HWTEST_F(MediaServerManagerTest, DestroyStubObject_002, TestSize.Level1)
384 {
385 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
386 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
387 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
388 sptr<IRemoteObject> object = mediaServerManager.GetMonitorStubObject();
389 ASSERT_NE(object, nullptr);
390 pid_t testPid = IPCSkeleton::GetCallingPid();
391 mediaServerManager.avCodecStubMap_[object] = testPid;
392 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
393 mediaServerManager.DestroyStubObject(MediaServerManager::StubType::AVCODEC, object);
394 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
395 }
396
397 /**
398 * @tc.name : DestroyAVScreenCaptureStub_001
399 * @tc.number: DestroyAVScreenCaptureStub_001
400 * @tc.desc : Test DestroyAVScreenCaptureStub interface
401 */
402 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStub_001, TestSize.Level1)
403 {
404 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
405 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
406 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
407 sptr<IRemoteObject> object1 = nullptr;
408 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
409 pid_t testPid = 1;
410 mediaServerManager.screenCaptureControllerStubMap_[object2] = testPid;
411 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
412 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE, object1, testPid);
413 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
414 }
415
416 /**
417 * @tc.name : DestroyAVScreenCaptureStub_002
418 * @tc.number: DestroyAVScreenCaptureStub_002
419 * @tc.desc : Test DestroyAVScreenCaptureStub interface
420 */
421 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStub_002, TestSize.Level1)
422 {
423 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
424 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
425 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
426 sptr<IRemoteObject> object1 = nullptr;
427 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
428 pid_t testPid = 2;
429 mediaServerManager.screenCaptureMonitorStubMap_[object2] = testPid;
430 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
431 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR,
432 object1, testPid);
433 ASSERT_EQ(mediaServerManager.screenCaptureMonitorStubMap_.size(), 1);
434 }
435
436 /**
437 * @tc.name : DestroyAVScreenCaptureStub_003
438 * @tc.number: DestroyAVScreenCaptureStub_003
439 * @tc.desc : Test DestroyAVScreenCaptureStub interface
440 */
441 HWTEST_F(MediaServerManagerTest, DestroyAVScreenCaptureStub_003, TestSize.Level1)
442 {
443 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
444 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
445 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
446 sptr<IRemoteObject> object1 = nullptr;
447 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
448 pid_t testPid = 3;
449 mediaServerManager.screenCaptureControllerStubMap_[object2] = testPid;
450 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
451 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::SCREEN_CAPTURE_CONTROLLER,
452 object1, testPid);
453 ASSERT_EQ(mediaServerManager.screenCaptureControllerStubMap_.size(), 1);
454 mediaServerManager.DestroyAVScreenCaptureStub(MediaServerManager::StubType::TRANSCODER, object1, testPid);
455 }
456
457 /**
458 * @tc.name : DestroyAVPlayerStub_001
459 * @tc.number: DestroyAVPlayerStub_001
460 * @tc.desc : Test DestroyAVPlayerStub interface
461 */
462 HWTEST_F(MediaServerManagerTest, DestroyAVPlayerStub_001, TestSize.Level1)
463 {
464 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
465 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
466 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
467 sptr<IRemoteObject> object1 = nullptr;
468 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
469 pid_t pid = IPCSkeleton::GetCallingPid();
470 mediaServerManager.playerStubMap_[object2] = pid;
471 ASSERT_EQ(mediaServerManager.playerStubMap_.size(), 1);
472 mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::PLAYER, object1, pid);
473 ASSERT_EQ(mediaServerManager.playerStubMap_.size(), 1);
474 }
475
476 /**
477 * @tc.name : DestroyAVPlayerStub_002
478 * @tc.number: DestroyAVPlayerStub_002
479 * @tc.desc : Test DestroyAVPlayerStub interface
480 */
481 HWTEST_F(MediaServerManagerTest, DestroyAVPlayerStub_002, TestSize.Level1)
482 {
483 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
484 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
485 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
486 sptr<IRemoteObject> object1 = nullptr;
487 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
488 pid_t pid = IPCSkeleton::GetCallingPid();
489 mediaServerManager.avMetadataHelperStubMap_[object2] = pid;
490 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
491 mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::AVMETADATAHELPER, object1, pid);
492 ASSERT_EQ(mediaServerManager.avMetadataHelperStubMap_.size(), 1);
493 mediaServerManager.DestroyAVPlayerStub(MediaServerManager::StubType::RECORDER, object1, pid);
494 }
495
496 /**
497 * @tc.name : DestroyAVRecorderStub_001
498 * @tc.number: DestroyAVRecorderStub_001
499 * @tc.desc : Test DestroyAVRecorderStub interface
500 */
501 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStub_001, TestSize.Level1)
502 {
503 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
504 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
505 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
506 sptr<IRemoteObject> object1 = nullptr;
507 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::MONITOR);
508 pid_t pid = IPCSkeleton::GetCallingPid();
509 mediaServerManager.recorderStubMap_[object2] = pid;
510 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
511 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDER, object1, pid);
512 ASSERT_EQ(mediaServerManager.recorderStubMap_.size(), 1);
513 }
514
515 /**
516 * @tc.name : DestroyAVRecorderStub_002
517 * @tc.number: DestroyAVRecorderStub_002
518 * @tc.desc : Test DestroyAVRecorderStub interface
519 */
520 HWTEST_F(MediaServerManagerTest, DestroyAVRecorderStub_002, TestSize.Level1)
521 {
522 g_mockRecorderProfilesServiceStub = std::make_shared<MockRecorderProfilesServiceStub>();
523 ON_CALL(*g_mockRecorderProfilesServiceStub, GetInstance()).WillByDefault(testing::Return(
524 sptr<OHOS::Media::RecorderProfilesServiceStub>(g_mockRecorderProfilesServiceStub.get())));
525 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
526 sptr<IRemoteObject> object =
527 MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::RECORDERPROFILES);
528 pid_t pid = IPCSkeleton::GetCallingPid();
529 mediaServerManager.recorderProfilesStubMap_[object] = pid;
530 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
531 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::RECORDERPROFILES, object, pid);
532 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 0);
533 mediaServerManager.DestroyAVRecorderStub(MediaServerManager::StubType::SCREEN_CAPTURE, object, pid);
534 }
535
536 /**
537 * @tc.name : DestroyAVTransCoderStub_001
538 * @tc.number: DestroyAVTransCoderStub_001
539 * @tc.desc : Test DestroyAVTransCoderStub interface
540 */
541 HWTEST_F(MediaServerManagerTest, DestroyAVTransCoderStub_001, TestSize.Level1)
542 {
543 g_mockTransCoderServiceStub = std::make_shared<MockTransCoderServiceStub>();
544 ON_CALL(*g_mockTransCoderServiceStub, GetInstance())
545 .WillByDefault(testing::Return(sptr<OHOS::Media::TransCoderServiceStub>(g_mockTransCoderServiceStub.get())));
546 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
547 sptr<IRemoteObject> object1 = nullptr;
548 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
549 pid_t pid = IPCSkeleton::GetCallingPid();
550 mediaServerManager.transCoderStubMap_[object2] = pid;
551 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
552 mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::StubType::TRANSCODER, object1, pid);
553 ASSERT_EQ(mediaServerManager.transCoderStubMap_.size(), 1);
554 mediaServerManager.DestroyAVTransCoderStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object1, pid);
555 }
556
557 /**
558 * @tc.name : DestroyAVCodecStub_001
559 * @tc.number: DestroyAVCodecStub_001
560 * @tc.desc : Test DestroyAVCodecStub interface
561 */
562 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStub_001, TestSize.Level1)
563 {
564 ON_CALL(*g_mockTransCoderServiceStub, GetInstance())
565 .WillByDefault(testing::Return(sptr<OHOS::Media::TransCoderServiceStub>(g_mockTransCoderServiceStub.get())));
566 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
567 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
568 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODEC);
569 pid_t pid = IPCSkeleton::GetCallingPid();
570 mediaServerManager.avCodecStubMap_[object2] = pid;
571 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
572 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODEC, object1, pid);
573 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 1);
574 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODEC, object2, pid);
575 ASSERT_EQ(mediaServerManager.avCodecStubMap_.size(), 0);
576 }
577
578 /**
579 * @tc.name : DestroyAVCodecStub_002
580 * @tc.number: DestroyAVCodecStub_002
581 * @tc.desc : Test DestroyStubObjectForPid interface
582 */
583 HWTEST_F(MediaServerManagerTest, DestroyAVCodecStub_002, TestSize.Level1)
584 {
585 ON_CALL(*g_mockTransCoderServiceStub, GetInstance())
586 .WillByDefault(testing::Return(sptr<OHOS::Media::TransCoderServiceStub>(g_mockTransCoderServiceStub.get())));
587 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
588 sptr<IRemoteObject> object1 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::TRANSCODER);
589 sptr<IRemoteObject> object2 = MediaServerManager::GetInstance().CreateStubObject(MediaServerManager::AVCODECLIST);
590 pid_t pid = IPCSkeleton::GetCallingPid();
591 mediaServerManager.avCodecListStubMap_[object2] = pid;
592 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
593 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODECLIST, object1, pid);
594 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 1);
595 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::AVCODECLIST, object2, pid);
596 ASSERT_EQ(mediaServerManager.avCodecListStubMap_.size(), 0);
597 mediaServerManager.DestroyAVCodecStub(MediaServerManager::StubType::SCREEN_CAPTURE_MONITOR, object2, pid);
598 }
599
600 /**
601 * @tc.name : CreateStubObject_002
602 * @tc.number: CreateStubObject_002
603 * @tc.desc : Test CreateStubObject interface
604 */
605 HWTEST_F(MediaServerManagerTest, CreateStubObject_002, TestSize.Level1)
606 {
607 ON_CALL(*g_mockMonitorServiceStub, GetInstance())
608 .WillByDefault(testing::Return(sptr<OHOS::Media::MonitorServiceStub>(g_mockMonitorServiceStub.get())));
609 ON_CALL(*g_mockRecorderProfilesServiceStub, GetInstance())
610 .WillByDefault(testing::Return(sptr<OHOS::Media::RecorderProfilesServiceStub>
611 (g_mockRecorderProfilesServiceStub.get())));
612 MediaServerManager& mediaServerManager = MediaServerManager::GetInstance();
613 sptr<IRemoteObject> object1 = mediaServerManager.GetMonitorStubObject();
614 pid_t testPid = PID_TEST;
615 mediaServerManager.recorderProfilesStubMap_[object1] = testPid;
616 ASSERT_EQ(mediaServerManager.recorderProfilesStubMap_.size(), 1);
617 sptr<IRemoteObject> object2 = mediaServerManager.CreateStubObject(MediaServerManager::StubType::RECORDERPROFILES);
618 ASSERT_NE(object2, nullptr);
619 }
620 }
621 }