1 /*
2 * Copyright (c) 2022-2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include "display_manager.h"
18 #include "display_manager_proxy.h"
19 #include "window.h"
20 #include "dm_common.h"
21
22 #include "mock_display_manager_adapter.h"
23 #include "singleton_mocker.h"
24 #include "display_manager.cpp"
25 #include "window_scene.h"
26 #include "scene_board_judgement.h"
27
28 using namespace testing;
29 using namespace testing::ext;
30
31 namespace OHOS {
32 namespace Rosen {
33 using Mocker = SingletonMocker<DisplayManagerAdapter, MockDisplayManagerAdapter>;
34 class DmMockScreenshotListener : public DisplayManager::IScreenshotListener {
35 public:
36 void OnScreenshot(const ScreenshotInfo info) override {}
37 };
38 class DmMockPrivateWindowListener : public DisplayManager::IPrivateWindowListener {
39 public:
40 void OnPrivateWindow([[maybe_unused]]bool) override {}
41 };
42 class DmMockFoldAngleListener : public DisplayManager::IFoldAngleListener {
43 public:
44 void OnFoldAngleChanged([[maybe_unused]]std::vector<float>) override {}
45 };
46 class DmMockCaptureStatusListener : public DisplayManager::ICaptureStatusListener {
47 public:
48 void OnCaptureStatusChanged([[maybe_unused]]bool) override {}
49 };
50 class DmMockDisplayListener : public DisplayManager::IDisplayListener {
51 public:
52 void OnCreate(DisplayId) override {}
53 void OnDestroy(DisplayId) override {}
54 void OnChange(DisplayId) override {}
55 };
56 class DmMockDisplayPowerEventListener : public IDisplayPowerEventListener {
57 public:
58 void OnDisplayPowerEvent(DisplayPowerEvent, EventStatus) override {}
59 };
60
61 class DisplayManagerTest : public testing::Test {
62 public:
63 static void SetUpTestCase();
64 static void TearDownTestCase();
65 virtual void SetUp() override;
66 virtual void TearDown() override;
67 };
68
SetUpTestCase()69 void DisplayManagerTest::SetUpTestCase()
70 {
71 }
72
TearDownTestCase()73 void DisplayManagerTest::TearDownTestCase()
74 {
75 }
76
SetUp()77 void DisplayManagerTest::SetUp()
78 {
79 }
80
TearDown()81 void DisplayManagerTest::TearDown()
82 {
83 }
84
85 namespace {
86 /**
87 * @tc.name: Freeze01
88 * @tc.desc: success
89 * @tc.type: FUNC
90 */
HWTEST_F(DisplayManagerTest, Freeze01, Function | SmallTest | Level1)91 HWTEST_F(DisplayManagerTest, Freeze01, Function | SmallTest | Level1)
92 {
93 std::vector<DisplayId> displayIds;
94 displayIds.push_back(0);
95 bool ret = DisplayManager::GetInstance().Freeze(displayIds);
96 if (!SceneBoardJudgement::IsSceneBoardEnabled()) {
97 ASSERT_TRUE(ret);
98 } else {
99 ASSERT_FALSE(ret);
100 }
101 }
102
103 /**
104 * @tc.name: Freeze02
105 * @tc.desc: test Freeze displayIds exceed the maximum
106 * @tc.type: FUNC
107 */
HWTEST_F(DisplayManagerTest, Freeze02, Function | SmallTest | Level1)108 HWTEST_F(DisplayManagerTest, Freeze02, Function | SmallTest | Level1)
109 {
110 std::vector<DisplayId> displayIds;
111 for (uint32_t i = 0; i < 33; i++) { // MAX_DISPLAY_SIZE + 1
112 displayIds.push_back(i);
113 }
114 bool ret = DisplayManager::GetInstance().Freeze(displayIds);
115 if (!SceneBoardJudgement::IsSceneBoardEnabled()) {
116 ASSERT_FALSE(ret);
117 }
118 }
119
120 /**
121 * @tc.name: Freeze03
122 * @tc.desc: test Freeze displayIds empty
123 * @tc.type: FUNC
124 */
HWTEST_F(DisplayManagerTest, Freeze03, Function | SmallTest | Level1)125 HWTEST_F(DisplayManagerTest, Freeze03, Function | SmallTest | Level1)
126 {
127 std::vector<DisplayId> displayIds;
128 bool ret = DisplayManager::GetInstance().Freeze(displayIds);
129 if (!SceneBoardJudgement::IsSceneBoardEnabled()) {
130 ASSERT_FALSE(ret);
131 }
132 }
133
134 /**
135 * @tc.name: Unfreeze01
136 * @tc.desc: success
137 * @tc.type: FUNC
138 */
HWTEST_F(DisplayManagerTest, Unfreeze01, Function | SmallTest | Level1)139 HWTEST_F(DisplayManagerTest, Unfreeze01, Function | SmallTest | Level1)
140 {
141 std::vector<DisplayId> displayIds;
142 displayIds.push_back(0);
143 bool ret = DisplayManager::GetInstance().Unfreeze(displayIds);
144 if (!SceneBoardJudgement::IsSceneBoardEnabled()) {
145 ASSERT_TRUE(ret);
146 } else {
147 ASSERT_FALSE(ret);
148 }
149 }
150
151 /**
152 * @tc.name: Unfreeze02
153 * @tc.desc: test Freeze displayIds exceed the maximum
154 * @tc.type: FUNC
155 */
HWTEST_F(DisplayManagerTest, Unfreeze02, Function | SmallTest | Level1)156 HWTEST_F(DisplayManagerTest, Unfreeze02, Function | SmallTest | Level1)
157 {
158 std::vector<DisplayId> displayIds;
159 for (uint32_t i = 0; i < 33; i++) { // MAX_DISPLAY_SIZE + 1
160 displayIds.push_back(i);
161 }
162
163 bool ret = DisplayManager::GetInstance().Unfreeze(displayIds);
164 ASSERT_FALSE(ret);
165 }
166
167 /**
168 * @tc.name: Unfreeze03
169 * @tc.desc: test Freeze displayIds empty
170 * @tc.type: FUNC
171 */
HWTEST_F(DisplayManagerTest, Unfreeze03, Function | SmallTest | Level1)172 HWTEST_F(DisplayManagerTest, Unfreeze03, Function | SmallTest | Level1)
173 {
174 std::vector<DisplayId> displayIds;
175 bool ret = DisplayManager::GetInstance().Unfreeze(displayIds);
176 ASSERT_FALSE(ret);
177 }
178
179 /**
180 * @tc.name: RegisterScreenshotListener01
181 * @tc.desc: test RegisterScreenshotListener with null listener
182 * @tc.type: FUNC
183 */
HWTEST_F(DisplayManagerTest, RegisterScreenshotListener01, Function | SmallTest | Level1)184 HWTEST_F(DisplayManagerTest, RegisterScreenshotListener01, Function | SmallTest | Level1)
185 {
186 DMError ret = DisplayManager::GetInstance().RegisterScreenshotListener(nullptr);
187 ASSERT_FALSE(DMError::DM_OK == ret);
188 }
189
190 /**
191 * @tc.name: RegisterScreenshotListener02
192 * @tc.desc: test RegisterScreenshotListener with null listener
193 * @tc.type: FUNC
194 */
HWTEST_F(DisplayManagerTest, RegisterScreenshotListener02, Function | SmallTest | Level1)195 HWTEST_F(DisplayManagerTest, RegisterScreenshotListener02, Function | SmallTest | Level1)
196 {
197 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
198 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_NULLPTR));
199 sptr<DisplayManager::IScreenshotListener> listener = new DmMockScreenshotListener();
200 DMError ret = DisplayManager::GetInstance().RegisterScreenshotListener(listener);
201 ASSERT_FALSE(DMError::DM_OK == ret);
202 }
203
204 /**
205 * @tc.name: UnregisterScreenshotListener01
206 * @tc.desc: test UnregisterScreenshotListener with null listener
207 * @tc.type: FUNC
208 */
HWTEST_F(DisplayManagerTest, UnregisterScreenshotListener01, Function | SmallTest | Level1)209 HWTEST_F(DisplayManagerTest, UnregisterScreenshotListener01, Function | SmallTest | Level1)
210 {
211 DMError ret = DisplayManager::GetInstance().UnregisterScreenshotListener(nullptr);
212 ASSERT_FALSE(DMError::DM_OK == ret);
213 }
214
215 /**
216 * @tc.name: UnregisterScreenshotListener02
217 * @tc.desc: test UnregisterScreenshotListener with null listener
218 * @tc.type: FUNC
219 */
HWTEST_F(DisplayManagerTest, UnregisterScreenshotListener02, Function | SmallTest | Level1)220 HWTEST_F(DisplayManagerTest, UnregisterScreenshotListener02, Function | SmallTest | Level1)
221 {
222 sptr<DisplayManager::IScreenshotListener> listener = new DmMockScreenshotListener();
223 DMError ret = DisplayManager::GetInstance().UnregisterScreenshotListener(listener);
224 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
225 }
226
227 /**
228 * @tc.name: OnDisplayCreate01
229 * @tc.desc: OnDisplayCreate
230 * @tc.type: FUNC
231 */
HWTEST_F(DisplayManagerTest, OnDisplayCreate01, Function | SmallTest | Level1)232 HWTEST_F(DisplayManagerTest, OnDisplayCreate01, Function | SmallTest | Level1)
233 {
234 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
235 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
236 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
237 DisplayManager::GetInstance().RegisterDisplayListener(listener);
238 auto displayManagerListener = DisplayManager::GetInstance().pImpl_->displayManagerListener_;
239 ASSERT_NE(displayManagerListener, nullptr);
240 displayManagerListener->OnDisplayCreate(nullptr);
241 sptr<DisplayInfo> displayInfo = new DisplayInfo();
242 displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
243 displayManagerListener->OnDisplayCreate(displayInfo);
244 displayInfo->SetDisplayId(0);
245 displayManagerListener->OnDisplayCreate(displayInfo);
246 ASSERT_NE(displayManagerListener->pImpl_, nullptr);
247 displayManagerListener->pImpl_ = nullptr;
248 displayManagerListener->OnDisplayCreate(displayInfo);
249 DisplayManager::GetInstance().pImpl_->displayManagerListener_ = nullptr;
250 }
251
252 /**
253 * @tc.name: CheckRectValid
254 * @tc.desc: CheckRectValid all
255 * @tc.type: FUNC
256 */
HWTEST_F(DisplayManagerTest, CheckRectValid, Function | SmallTest | Level1)257 HWTEST_F(DisplayManagerTest, CheckRectValid, Function | SmallTest | Level1)
258 {
259 int32_t oriHeight = 500;
260 int32_t oriWidth = 500;
261 Media::Rect rect = {.left = 1, .top = 1, .width = 1, .height = 1};
262 bool ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
263 ASSERT_TRUE(ret);
264 rect.left = -1;
265 ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
266 ASSERT_FALSE(ret);
267 rect.left = 1;
268 rect.top = -1;
269 ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
270 ASSERT_FALSE(ret);
271 rect.top = 1;
272 rect.width = -1;
273 ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
274 ASSERT_FALSE(ret);
275 rect.width = 1;
276 rect.height = -1;
277 ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
278 ASSERT_FALSE(ret);
279 rect.width = 500;
280 rect.height = 1;
281 ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
282 ASSERT_FALSE(ret);
283 rect.width = 1;
284 rect.height = 500;
285 ret = DisplayManager::GetInstance().pImpl_->CheckRectValid(rect, oriHeight, oriWidth);
286 ASSERT_FALSE(ret);
287 }
288
289 /**
290 * @tc.name: CheckSizeValid
291 * @tc.desc: CheckSizeValid all
292 * @tc.type: FUNC
293 */
HWTEST_F(DisplayManagerTest, CheckSizeValid, Function | SmallTest | Level1)294 HWTEST_F(DisplayManagerTest, CheckSizeValid, Function | SmallTest | Level1)
295 {
296 int32_t oriHeight = 500;
297 int32_t oriWidth = 500;
298 Media::Size size = {.width = 1, .height = 1};
299 bool ret = DisplayManager::GetInstance().pImpl_->CheckSizeValid(size, oriHeight, oriWidth);
300 ASSERT_TRUE(ret);
301 size.width = -1;
302 ret = DisplayManager::GetInstance().pImpl_->CheckSizeValid(size, oriHeight, oriWidth);
303 ASSERT_FALSE(ret);
304 size.width = 1;
305 size.height = -1;
306 ret = DisplayManager::GetInstance().pImpl_->CheckSizeValid(size, oriHeight, oriWidth);
307 ASSERT_FALSE(ret);
308 size.width = DisplayManager::MAX_RESOLUTION_SIZE_SCREENSHOT + 1;
309 size.height = 1;
310 ret = DisplayManager::GetInstance().pImpl_->CheckSizeValid(size, oriHeight, oriWidth);
311 ASSERT_FALSE(ret);
312 size.width = DisplayManager::MAX_RESOLUTION_SIZE_SCREENSHOT;
313 size.height = DisplayManager::MAX_RESOLUTION_SIZE_SCREENSHOT + 1;
314 ret = DisplayManager::GetInstance().pImpl_->CheckSizeValid(size, oriHeight, oriWidth);
315 ASSERT_FALSE(ret);
316 }
317
318 /**
319 * @tc.name: ImplGetDefaultDisplay01
320 * @tc.desc: Impl GetDefaultDisplay nullptr
321 * @tc.type: FUNC
322 */
HWTEST_F(DisplayManagerTest, ImplGetDefaultDisplay01, Function | SmallTest | Level1)323 HWTEST_F(DisplayManagerTest, ImplGetDefaultDisplay01, Function | SmallTest | Level1)
324 {
325 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
326 EXPECT_CALL(m->Mock(), GetDefaultDisplayInfo()).Times(1).WillOnce(Return(nullptr));
327 sptr<Display> display = DisplayManager::GetInstance().pImpl_->GetDefaultDisplay();
328 ASSERT_EQ(display, nullptr);
329 }
330
331 /**
332 * @tc.name: GetDisplayByScreen
333 * @tc.desc: for interface coverage & check GetDisplayByScreen
334 * @tc.type: FUNC
335 */
HWTEST_F(DisplayManagerTest, GetDisplayByScreen, Function | SmallTest | Level1)336 HWTEST_F(DisplayManagerTest, GetDisplayByScreen, Function | SmallTest | Level1)
337 {
338 auto& displayManager = DisplayManager::GetInstance();
339 sptr<Display> display = displayManager.GetDisplayByScreen(SCREEN_ID_INVALID);
340 ASSERT_EQ(display, nullptr);
341
342 sptr<DisplayInfo> displayInfo = new DisplayInfo();
343 displayInfo->SetDisplayId(DISPLAY_ID_INVALID);
344 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
345 EXPECT_CALL(m->Mock(), GetDisplayInfoByScreenId(_)).Times(1).WillOnce(Return(displayInfo));
346 display = displayManager.GetDisplayByScreen(1);
347 ASSERT_EQ(display, nullptr);
348 }
349
350 /**
351 * @tc.name: ImplGetDefaultDisplaySync
352 * @tc.desc: Impl GetDefaultDisplaySync nullptr
353 * @tc.type: FUNC
354 */
HWTEST_F(DisplayManagerTest, ImplGetDefaultDisplaySync, Function | SmallTest | Level1)355 HWTEST_F(DisplayManagerTest, ImplGetDefaultDisplaySync, Function | SmallTest | Level1)
356 {
357 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
358 EXPECT_CALL(m->Mock(), GetDefaultDisplayInfo()).Times(6).WillRepeatedly(Return(nullptr));
359 sptr<Display> display = DisplayManager::GetInstance().GetDefaultDisplaySync();
360 ASSERT_EQ(display, nullptr);
361 }
362
363 /**
364 * @tc.name: GetScreenBrightness
365 * @tc.desc: GetScreenBrightness fun
366 * @tc.type: FUNC
367 */
HWTEST_F(DisplayManagerTest, GetScreenBrightness, Function | SmallTest | Level1)368 HWTEST_F(DisplayManagerTest, GetScreenBrightness, Function | SmallTest | Level1)
369 {
370 uint64_t screenId = 2;
371 auto ret = DisplayManager::GetInstance().GetScreenBrightness(screenId);
372 ASSERT_FALSE(ret == 1);
373 }
374
375 /**
376 * @tc.name: GetDisplayById
377 * @tc.desc: GetDisplayById fun
378 * @tc.type: FUNC
379 */
HWTEST_F(DisplayManagerTest, GetDisplayById, Function | SmallTest | Level1)380 HWTEST_F(DisplayManagerTest, GetDisplayById, Function | SmallTest | Level1)
381 {
382 DisplayId displayId = -1;
383 g_dmIsDestroyed = true;
384 auto ret = DisplayManager::GetInstance().GetDisplayById(displayId);
385 ASSERT_EQ(ret, nullptr);
386 }
387
388 /**
389 * @tc.name: RegisterPrivateWindowListener
390 * @tc.desc: RegisterPrivateWindowListener fun
391 * @tc.type: FUNC
392 */
HWTEST_F(DisplayManagerTest, RegisterPrivateWindowListener01, Function | SmallTest | Level1)393 HWTEST_F(DisplayManagerTest, RegisterPrivateWindowListener01, Function | SmallTest | Level1)
394 {
395 sptr<DisplayManager::IPrivateWindowListener> listener;
396 auto ret = DisplayManager::GetInstance().RegisterPrivateWindowListener(listener);
397 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
398 }
399
400 /**
401 * @tc.name: RegisterPrivateWindowListener
402 * @tc.desc: RegisterPrivateWindowListener fun
403 * @tc.type: FUNC
404 */
HWTEST_F(DisplayManagerTest, RegisterPrivateWindowListener02, Function | SmallTest | Level1)405 HWTEST_F(DisplayManagerTest, RegisterPrivateWindowListener02, Function | SmallTest | Level1)
406 {
407 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
408 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
409 sptr<DisplayManager::IPrivateWindowListener> listener = new DmMockPrivateWindowListener();
410 auto ret = DisplayManager::GetInstance().RegisterPrivateWindowListener(listener);
411 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
412 }
413
414 /**
415 * @tc.name: UnregisterPrivateWindowListener
416 * @tc.desc: UnregisterPrivateWindowListener fun
417 * @tc.type: FUNC
418 */
HWTEST_F(DisplayManagerTest, UnregisterPrivateWindowListener, Function | SmallTest | Level1)419 HWTEST_F(DisplayManagerTest, UnregisterPrivateWindowListener, Function | SmallTest | Level1)
420 {
421 sptr<DisplayManager::IPrivateWindowListener> listener = nullptr;
422 sptr<DisplayManager::Impl> impl_;
423 auto ret = DisplayManager::GetInstance().UnregisterPrivateWindowListener(listener);
424 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
425 }
426
427 /**
428 * @tc.name: ImplUnregisterPrivateWindowListener
429 * @tc.desc: ImplUnregisterPrivateWindowListener fun
430 * @tc.type: FUNC
431 */
HWTEST_F(DisplayManagerTest, ImplUnregisterPrivateWindowListener, Function | SmallTest | Level1)432 HWTEST_F(DisplayManagerTest, ImplUnregisterPrivateWindowListener, Function | SmallTest | Level1)
433 {
434 std::recursive_mutex mutex;
435 DisplayManager::Impl impl(mutex);
436 sptr<DisplayManager::IPrivateWindowListener> listener;
437 auto ret = impl.UnregisterPrivateWindowListener(listener);
438 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
439 }
440
441 /**
442 * @tc.name: RegisterPrivateWindowListChangeListener
443 * @tc.desc: RegisterPrivateWindowListChangeListener fun
444 * @tc.type: FUNC
445 */
HWTEST_F(DisplayManagerTest, RegisterPrivateWindowListChangeListener, Function | SmallTest | Level1)446 HWTEST_F(DisplayManagerTest, RegisterPrivateWindowListChangeListener, Function | SmallTest | Level1)
447 {
448 sptr<DisplayManager::IPrivateWindowListChangeListener> listener;
449 auto ret = DisplayManager::GetInstance().RegisterPrivateWindowListChangeListener(listener);
450 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
451 listener = new DisplayManager::IPrivateWindowListChangeListener();
452 ret = DisplayManager::GetInstance().RegisterPrivateWindowListChangeListener(listener);
453 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterPrivateWindowListChangeListener(listener));
454 listener.clear();
455 }
456
457 /**
458 * @tc.name: UnregisterPrivateWindowListChangeListener
459 * @tc.desc: UnregisterPrivateWindowListChangeListener fun
460 * @tc.type: FUNC
461 */
HWTEST_F(DisplayManagerTest, UnregisterPrivateWindowListChangeListener, Function | SmallTest | Level1)462 HWTEST_F(DisplayManagerTest, UnregisterPrivateWindowListChangeListener, Function | SmallTest | Level1)
463 {
464 sptr<DisplayManager::IPrivateWindowListChangeListener> listener = nullptr;
465 auto ret = DisplayManager::GetInstance().UnregisterPrivateWindowListChangeListener(listener);
466 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
467 listener = new DisplayManager::IPrivateWindowListChangeListener();
468 ret = DisplayManager::GetInstance().UnregisterPrivateWindowListChangeListener(listener);
469 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterPrivateWindowListChangeListener(listener));
470 listener.clear();
471 }
472
473 /**
474 * @tc.name: ImplRegisterPrivateWindowListChangeListener
475 * @tc.desc: ImplRegisterPrivateWindowListChangeListener fun
476 * @tc.type: FUNC
477 */
HWTEST_F(DisplayManagerTest, ImplRegisterPrivateWindowListChangeListener01, Function | SmallTest | Level1)478 HWTEST_F(DisplayManagerTest, ImplRegisterPrivateWindowListChangeListener01, Function | SmallTest | Level1)
479 {
480 std::recursive_mutex mutex;
481 sptr<DisplayManager::Impl> impl_;
482 sptr<DisplayManager::IPrivateWindowListChangeListener> listener;
483 DisplayManager::GetInstance().pImpl_->privateWindowListChangeListenerAgent_ = nullptr;
484 sptr<DisplayManager::Impl::DisplayManagerPrivateWindowListAgent> privateWindowListChangeListenerAgent =
485 new DisplayManager::Impl::DisplayManagerPrivateWindowListAgent(impl_);
486 auto ret = DisplayManager::GetInstance().pImpl_->RegisterPrivateWindowListChangeListener(listener);
487 ASSERT_EQ(ret, SingletonContainer::Get<DisplayManagerAdapter>().RegisterDisplayManagerAgent(
488 privateWindowListChangeListenerAgent,
489 DisplayManagerAgentType::PRIVATE_WINDOW_LIST_LISTENER));
490 listener = nullptr;
491 privateWindowListChangeListenerAgent.clear();
492 }
493
494 /**
495 * @tc.name: ImplRegisterPrivateWindowListChangeListener
496 * @tc.desc: ImplRegisterPrivateWindowListChangeListener fun
497 * @tc.type: FUNC
498 */
HWTEST_F(DisplayManagerTest, ImplRegisterPrivateWindowListChangeListener02, Function | SmallTest | Level1)499 HWTEST_F(DisplayManagerTest, ImplRegisterPrivateWindowListChangeListener02, Function | SmallTest | Level1)
500 {
501 std::recursive_mutex mutex;
502 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
503 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
504 sptr<DisplayManager::Impl> impl_;
505 sptr<DisplayManager::IPrivateWindowListChangeListener> listener;
506 DisplayManager::GetInstance().pImpl_->privateWindowListChangeListenerAgent_ = nullptr;
507 sptr<DisplayManager::Impl::DisplayManagerPrivateWindowListAgent> privateWindowListChangeListenerAgent =
508 new DisplayManager::Impl::DisplayManagerPrivateWindowListAgent(impl_);
509 auto ret = DisplayManager::GetInstance().pImpl_->RegisterPrivateWindowListChangeListener(listener);
510 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
511 listener = nullptr;
512 privateWindowListChangeListenerAgent.clear();
513 }
514
515 /**
516 * @tc.name: ImplUnregisterPrivateWindowListChangeListener
517 * @tc.desc: ImplUnregisterPrivateWindowListChangeListener fun
518 * @tc.type: FUNC
519 */
HWTEST_F(DisplayManagerTest, ImplUnregisterPrivateWindowListChangeListener, Function | SmallTest | Level1)520 HWTEST_F(DisplayManagerTest, ImplUnregisterPrivateWindowListChangeListener, Function | SmallTest | Level1)
521 {
522 std::recursive_mutex mutex;
523 DisplayManager::Impl impl(mutex);
524 sptr<DisplayManager::IPrivateWindowListChangeListener> listener;
525 auto ret = impl.UnregisterPrivateWindowListChangeListener(listener);
526 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
527 }
528
529 /**
530 * @tc.name: ImplUnregisterFoldStatusListener
531 * @tc.desc: ImplUnregisterFoldStatusListener fun
532 * @tc.type: FUNC
533 */
HWTEST_F(DisplayManagerTest, ImplUnregisterFoldStatusListener, Function | SmallTest | Level1)534 HWTEST_F(DisplayManagerTest, ImplUnregisterFoldStatusListener, Function | SmallTest | Level1)
535 {
536 sptr<DisplayManager::IFoldStatusListener> listener;
537 auto ret = DisplayManager::GetInstance().pImpl_->UnregisterFoldStatusListener(listener);
538 ASSERT_NE(ret, DMError::DM_OK);
539 listener.clear();
540 }
541
542 /**
543 * @tc.name: RegisterFoldStatusListener
544 * @tc.desc: RegisterFoldStatusListener fun
545 * @tc.type: FUNC
546 */
HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener, Function | SmallTest | Level1)547 HWTEST_F(DisplayManagerTest, RegisterFoldStatusListener, Function | SmallTest | Level1)
548 {
549 sptr<DisplayManager::IFoldStatusListener> listener;
550 auto ret = DisplayManager::GetInstance().RegisterFoldStatusListener(listener);
551 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
552 listener = new DisplayManager::IFoldStatusListener();
553 ret = DisplayManager::GetInstance().RegisterFoldStatusListener(listener);
554 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterFoldStatusListener(listener));
555 listener.clear();
556 }
557
558 /**
559 * @tc.name: ImplRegisterFoldStatusListener
560 * @tc.desc: ImplRegisterFoldStatusListener fun
561 * @tc.type: FUNC
562 */
HWTEST_F(DisplayManagerTest, ImplRegisterFoldStatusListener, Function | SmallTest | Level1)563 HWTEST_F(DisplayManagerTest, ImplRegisterFoldStatusListener, Function | SmallTest | Level1)
564 {
565 sptr<DisplayManager::IFoldStatusListener> listener;
566 sptr<DisplayManager::Impl> impl_;
567 DisplayManager::GetInstance().pImpl_->foldStatusListenerAgent_ = nullptr;
568 sptr<DisplayManager::Impl::DisplayManagerFoldStatusAgent> foldStatusListenerAgent =
569 new DisplayManager::Impl::DisplayManagerFoldStatusAgent(impl_);
570 auto ret = DisplayManager::GetInstance().pImpl_->RegisterFoldStatusListener(listener);
571 ASSERT_EQ(ret, SingletonContainer::Get<DisplayManagerAdapter>().RegisterDisplayManagerAgent(
572 foldStatusListenerAgent,
573 DisplayManagerAgentType::FOLD_STATUS_CHANGED_LISTENER));
574 listener = nullptr;
575 foldStatusListenerAgent.clear();
576 }
577
578 /**
579 * @tc.name: UnregisterFoldStatusListener
580 * @tc.desc: UnregisterFoldStatusListener fun
581 * @tc.type: FUNC
582 */
HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener, Function | SmallTest | Level1)583 HWTEST_F(DisplayManagerTest, UnregisterFoldStatusListener, Function | SmallTest | Level1)
584 {
585 sptr<DisplayManager::IFoldStatusListener> listener;
586 auto ret = DisplayManager::GetInstance().UnregisterFoldStatusListener(listener);
587 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
588 listener = new DisplayManager::IFoldStatusListener();
589 ret = DisplayManager::GetInstance().UnregisterFoldStatusListener(listener);
590 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterFoldStatusListener(listener));
591 listener.clear();
592 }
593
594 /**
595 * @tc.name: RegisterDisplayModeListener
596 * @tc.desc: RegisterDisplayModeListener fun
597 * @tc.type: FUNC
598 */
HWTEST_F(DisplayManagerTest, RegisterDisplayModeListener, Function | SmallTest | Level1)599 HWTEST_F(DisplayManagerTest, RegisterDisplayModeListener, Function | SmallTest | Level1)
600 {
601 sptr<DisplayManager::IDisplayModeListener> listener;
602 auto ret = DisplayManager::GetInstance().RegisterDisplayModeListener(listener);
603 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
604 listener = new DisplayManager::IDisplayModeListener();
605 ret = DisplayManager::GetInstance().RegisterDisplayModeListener(listener);
606 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterDisplayModeListener(listener));
607 listener.clear();
608 }
609
610 /**
611 * @tc.name: ImplRegisterDisplayModeListener
612 * @tc.desc: ImplRegisterDisplayModeListener fun
613 * @tc.type: FUNC
614 */
HWTEST_F(DisplayManagerTest, ImplRegisterDisplayModeListener, Function | SmallTest | Level1)615 HWTEST_F(DisplayManagerTest, ImplRegisterDisplayModeListener, Function | SmallTest | Level1)
616 {
617 sptr<DisplayManager::IDisplayModeListener> listener;
618 DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ = nullptr;
619 sptr<DisplayManager::Impl> impl_;
620 sptr<DisplayManager::Impl::DisplayManagerDisplayModeAgent> displayModeListenerAgent =
621 new DisplayManager::Impl::DisplayManagerDisplayModeAgent(impl_);
622 auto ret = DisplayManager::GetInstance().pImpl_->RegisterDisplayModeListener(listener);
623 ASSERT_EQ(ret, SingletonContainer::Get<DisplayManagerAdapter>().RegisterDisplayManagerAgent(
624 displayModeListenerAgent,
625 DisplayManagerAgentType::DISPLAY_MODE_CHANGED_LISTENER));
626 listener.clear();
627 displayModeListenerAgent.clear();
628 }
629
630 /**
631 * @tc.name: UnregisterDisplayModeListener
632 * @tc.desc: UnregisterDisplayModeListener fun
633 * @tc.type: FUNC
634 */
HWTEST_F(DisplayManagerTest, UnregisterDisplayModeListener, Function | SmallTest | Level1)635 HWTEST_F(DisplayManagerTest, UnregisterDisplayModeListener, Function | SmallTest | Level1)
636 {
637 sptr<DisplayManager::IDisplayModeListener> listener;
638 auto ret = DisplayManager::GetInstance().UnregisterDisplayModeListener(listener);
639 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
640 listener = new DisplayManager::IDisplayModeListener();
641 ret = DisplayManager::GetInstance().UnregisterDisplayModeListener(listener);
642 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterDisplayModeListener(listener));
643 listener.clear();
644 }
645
646 /**
647 * @tc.name: ImplUnregisterDisplayModeListener
648 * @tc.desc: ImplUnregisterDisplayModeListener fun
649 * @tc.type: FUNC
650 */
HWTEST_F(DisplayManagerTest, ImplUnregisterDisplayModeListener, Function | SmallTest | Level1)651 HWTEST_F(DisplayManagerTest, ImplUnregisterDisplayModeListener, Function | SmallTest | Level1)
652 {
653 sptr<DisplayManager::IDisplayModeListener> listener;
654 auto ret = DisplayManager::GetInstance().pImpl_->UnregisterDisplayModeListener(listener);
655 ASSERT_EQ(ret, DMError::DM_OK);
656 listener.clear();
657 }
658
659 /**
660 * @tc.name: OnDisplayCreate02
661 * @tc.desc: OnDisplayCreate
662 * @tc.type: FUNC
663 */
HWTEST_F(DisplayManagerTest, OnDisplayCreate02, Function | SmallTest | Level1)664 HWTEST_F(DisplayManagerTest, OnDisplayCreate02, Function | SmallTest | Level1)
665 {
666 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
667 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
668 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
669 DisplayManager::GetInstance().RegisterDisplayListener(listener);
670 auto displayManagerListener = DisplayManager::GetInstance().pImpl_->displayManagerListener_;
671 ASSERT_NE(displayManagerListener, nullptr);
672
673 sptr<DisplayInfo> displayInfo = nullptr;
674 displayManagerListener->OnDisplayCreate(displayInfo);
675 ASSERT_NE(displayManagerListener->pImpl_, nullptr);
676 }
677
678 /**
679 * @tc.name: RegisterDisplayListener
680 * @tc.desc: RegisterDisplayListener fun
681 * @tc.type: FUNC
682 */
HWTEST_F(DisplayManagerTest, RegisterDisplayListener, Function | SmallTest | Level1)683 HWTEST_F(DisplayManagerTest, RegisterDisplayListener, Function | SmallTest | Level1)
684 {
685 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
686 bool hasPrivate = true;
687 DisplayManager::GetInstance().pImpl_->NotifyPrivateWindowStateChanged(hasPrivate);
688 auto ret = DisplayManager::GetInstance().RegisterDisplayListener(listener);
689 ASSERT_EQ(ret, DMError::DM_OK);
690 }
691
692 /**
693 * @tc.name: UnregisterDisplayListener
694 * @tc.desc: UnregisterDisplayListener fun
695 * @tc.type: FUNC
696 */
HWTEST_F(DisplayManagerTest, UnregisterDisplayListener, Function | SmallTest | Level1)697 HWTEST_F(DisplayManagerTest, UnregisterDisplayListener, Function | SmallTest | Level1)
698 {
699 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
700 sptr<DisplayManager::Impl> impl_;
701 auto ret = DisplayManager::GetInstance().UnregisterDisplayListener(listener);
702 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
703 }
704
705 /**
706 * @tc.name: HasPrivateWindow
707 * @tc.desc: HasPrivateWindow fun
708 * @tc.type: FUNC
709 */
HWTEST_F(DisplayManagerTest, HasPrivateWindow, Function | SmallTest | Level1)710 HWTEST_F(DisplayManagerTest, HasPrivateWindow, Function | SmallTest | Level1)
711 {
712 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
713 bool hasPrivateWindow = false;
714 auto ret = DisplayManager::GetInstance().HasPrivateWindow(0, hasPrivateWindow);
715 ASSERT_EQ(ret, DMError::DM_OK);
716 }
717
718 /**
719 * @tc.name: HasPrivateWindow02
720 * @tc.desc: HasPrivateWindow fun
721 * @tc.type: FUNC
722 */
HWTEST_F(DisplayManagerTest, HasPrivateWindow02, Function | SmallTest | Level1)723 HWTEST_F(DisplayManagerTest, HasPrivateWindow02, Function | SmallTest | Level1)
724 {
725 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
726 sptr<DisplayManager::Impl> impl_;
727 bool hasPrivateWindow = false;
728 auto ret = DisplayManager::GetInstance().pImpl_->HasPrivateWindow(0, hasPrivateWindow);
729 ASSERT_EQ(ret, DMError::DM_OK);
730 }
731
732 /**
733 * @tc.name: IsFoldable
734 * @tc.desc: IsFoldable all
735 * @tc.type: FUNC
736 */
HWTEST_F(DisplayManagerTest, IsFoldable, Function | SmallTest | Level1)737 HWTEST_F(DisplayManagerTest, IsFoldable, Function | SmallTest | Level1)
738 {
739 bool ret = DisplayManager::GetInstance().IsFoldable();
740 ASSERT_FALSE(ret);
741 }
742
743 /**
744 * @tc.name: IsFoldable
745 * @tc.desc: IsFoldable fun
746 * @tc.type: FUNC
747 */
HWTEST_F(DisplayManagerTest, IsFoldable01, Function | SmallTest | Level1)748 HWTEST_F(DisplayManagerTest, IsFoldable01, Function | SmallTest | Level1)
749 {
750 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
751 FoldDisplayMode mode = FoldDisplayMode{0};
752 DisplayManager::GetInstance().SetFoldDisplayMode(mode);
753 DisplayManager::GetInstance().SetFoldStatusLocked(false);
754 sptr<DisplayManager::Impl> impl_;
755 auto ret = DisplayManager::GetInstance().pImpl_->IsFoldable();
756 ASSERT_FALSE(ret);
757 }
758
759 /**
760 * @tc.name: AddSurfaceNodeToDisplay
761 * @tc.desc: AddSurfaceNodeToDisplay fun
762 * @tc.type: FUNC
763 */
HWTEST_F(DisplayManagerTest, AddSurfaceNodeToDisplay, Function | SmallTest | Level1)764 HWTEST_F(DisplayManagerTest, AddSurfaceNodeToDisplay, Function | SmallTest | Level1)
765 {
766 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
767 std::shared_ptr<class RSSurfaceNode> surfaceNode;
768 auto ret = DisplayManager::GetInstance().AddSurfaceNodeToDisplay(0, surfaceNode);
769 if (SceneBoardJudgement::IsSceneBoardEnabled()) {
770 ASSERT_NE(ret, DMError::DM_ERROR_IPC_FAILED);
771 } else {
772 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
773 }
774 }
775
776 /**
777 * @tc.name: RemoveSurfaceNodeFromDisplay
778 * @tc.desc: RemoveSurfaceNodeFromDisplay fun
779 * @tc.type: FUNC
780 */
HWTEST_F(DisplayManagerTest, RemoveSurfaceNodeFromDisplay, Function | SmallTest | Level1)781 HWTEST_F(DisplayManagerTest, RemoveSurfaceNodeFromDisplay, Function | SmallTest | Level1)
782 {
783 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
784 std::shared_ptr<class RSSurfaceNode> surfaceNode;
785 DisplayManager::GetInstance().OnRemoteDied();
786 auto ret = DisplayManager::GetInstance().RemoveSurfaceNodeFromDisplay(0, surfaceNode);
787 if (SceneBoardJudgement::IsSceneBoardEnabled()) {
788 ASSERT_NE(ret, DMError::DM_ERROR_IPC_FAILED);
789 } else {
790 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
791 }
792 }
793
794 /**
795 * @tc.name: RegisterFoldAngleListener01
796 * @tc.desc: RegisterFoldAngleListener01 fun
797 * @tc.type: FUNC
798 */
HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener01, Function | SmallTest | Level1)799 HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener01, Function | SmallTest | Level1)
800 {
801 sptr<DisplayManager::IFoldAngleListener> listener = nullptr;
802 auto ret = DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
803 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
804 listener = new DisplayManager::IFoldAngleListener();
805 ret = DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
806 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterFoldAngleListener(listener));
807 listener.clear();
808 }
809
810 /**
811 * @tc.name: RegisterFoldAngleListener02
812 * @tc.desc: RegisterFoldAngleListener01 fun
813 * @tc.type: FUNC
814 */
HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener02, Function | SmallTest | Level1)815 HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener02, Function | SmallTest | Level1)
816 {
817 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
818 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
819 DisplayManager::GetInstance().pImpl_->foldAngleListenerAgent_ = nullptr;
820 sptr<DisplayManager::IFoldAngleListener> listener = new DmMockFoldAngleListener();
821 auto ret = DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
822 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
823 listener.clear();
824 }
825
826 /**
827 * @tc.name: UnregisterFoldAngleListener01
828 * @tc.desc: UnregisterFoldAngleListener01 fun
829 * @tc.type: FUNC
830 */
HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener01, Function | SmallTest | Level1)831 HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener01, Function | SmallTest | Level1)
832 {
833 sptr<DisplayManager::IFoldAngleListener> listener;
834 auto ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
835 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
836 listener = new DisplayManager::IFoldAngleListener();
837 ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
838 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterFoldAngleListener(listener));
839 listener.clear();
840 }
841
842 /**
843 * @tc.name: UnregisterFoldAngleListener02
844 * @tc.desc: UnregisterFoldAngleListener02 fun
845 * @tc.type: FUNC
846 */
HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener02, Function | SmallTest | Level1)847 HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener02, Function | SmallTest | Level1)
848 {
849 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->foldAngleListeners_.empty());
850 sptr<DisplayManager::IFoldAngleListener> listener = new DisplayManager::IFoldAngleListener();
851 DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
852 auto ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
853 ASSERT_EQ(ret, DMError::DM_OK);
854 listener.clear();
855 }
856
857 /**
858 * @tc.name: UnregisterFoldAngleListener03
859 * @tc.desc: UnregisterFoldAngleListener03 fun
860 * @tc.type: FUNC
861 */
HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener03, Function | SmallTest | Level1)862 HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener03, Function | SmallTest | Level1)
863 {
864 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->foldAngleListeners_.empty());
865 DisplayManager::GetInstance().pImpl_->foldAngleListeners_.clear();
866 sptr<DisplayManager::IFoldAngleListener> listener = new DisplayManager::IFoldAngleListener();
867 DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
868 auto ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
869 ASSERT_EQ(ret, DMError::DM_OK);
870 listener.clear();
871 }
872
873 /**
874 * @tc.name: RegisterCaptureStatusListener01
875 * @tc.desc: RegisterCaptureStatusListener01 fun
876 * @tc.type: FUNC
877 */
HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener01, Function | SmallTest | Level1)878 HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener01, Function | SmallTest | Level1)
879 {
880 sptr<DisplayManager::ICaptureStatusListener> listener = nullptr;
881 auto ret = DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
882 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
883 listener = new DisplayManager::ICaptureStatusListener();
884 ret = DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
885 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterCaptureStatusListener(listener));
886 listener.clear();
887 }
888
889 /**
890 * @tc.name: RegisterCaptureStatusListener02
891 * @tc.desc: RegisterCaptureStatusListener02 fun
892 * @tc.type: FUNC
893 */
HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener02, Function | SmallTest | Level1)894 HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener02, Function | SmallTest | Level1)
895 {
896 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
897 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
898 DisplayManager::GetInstance().pImpl_->captureStatusListenerAgent_ = nullptr;
899 sptr<DisplayManager::ICaptureStatusListener> listener = new DisplayManager::ICaptureStatusListener();
900 auto ret = DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
901 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
902 listener.clear();
903 }
904
905 /**
906 * @tc.name: UnregisterCaptureStatusListener01
907 * @tc.desc: UnregisterCaptureStatusListener01 fun
908 * @tc.type: FUNC
909 */
HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener01, Function | SmallTest | Level1)910 HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener01, Function | SmallTest | Level1)
911 {
912 sptr<DisplayManager::ICaptureStatusListener> listener;
913 auto ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
914 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
915 listener = new DisplayManager::ICaptureStatusListener();
916 ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
917 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterCaptureStatusListener(listener));
918 listener.clear();
919 }
920
921 /**
922 * @tc.name: UnregisterCaptureStatusListener02
923 * @tc.desc: UnregisterCaptureStatusListener02 fun
924 * @tc.type: FUNC
925 */
HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener02, Function | SmallTest | Level1)926 HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener02, Function | SmallTest | Level1)
927 {
928 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->captureStatusListeners_.empty());
929 sptr<DisplayManager::ICaptureStatusListener> listener = new DisplayManager::ICaptureStatusListener();
930 DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
931 auto ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
932 ASSERT_EQ(ret, DMError::DM_OK);
933 listener.clear();
934 }
935
936 /**
937 * @tc.name: UnregisterCaptureStatusListener03
938 * @tc.desc: UnregisterCaptureStatusListener03 fun
939 * @tc.type: FUNC
940 */
HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener03, Function | SmallTest | Level1)941 HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener03, Function | SmallTest | Level1)
942 {
943 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->captureStatusListeners_.empty());
944 DisplayManager::GetInstance().pImpl_->captureStatusListeners_.clear();
945 sptr<DisplayManager::ICaptureStatusListener> listener = new DisplayManager::ICaptureStatusListener();
946 DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
947 auto ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
948 ASSERT_EQ(ret, DMError::DM_OK);
949 listener.clear();
950 }
951
952
953 /**
954 * @tc.name: RegisterDisplayUpdateListener01
955 * @tc.desc: RegisterDisplayUpdateListener01 fun
956 * @tc.type: FUNC
957 */
HWTEST_F(DisplayManagerTest, RegisterDisplayUpdateListener01, Function | SmallTest | Level1)958 HWTEST_F(DisplayManagerTest, RegisterDisplayUpdateListener01, Function | SmallTest | Level1)
959 {
960 sptr<DisplayManager::IDisplayUpdateListener> listener = nullptr;
961 auto ret = DisplayManager::GetInstance().RegisterDisplayUpdateListener(listener);
962 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
963 listener = new DisplayManager::IDisplayUpdateListener();
964 ret = DisplayManager::GetInstance().RegisterDisplayUpdateListener(listener);
965 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterDisplayUpdateListener(listener));
966 listener.clear();
967 }
968
969 /**
970 * @tc.name: IsCaptured01
971 * @tc.desc: IsCaptured01 fun
972 * @tc.type: FUNC
973 */
HWTEST_F(DisplayManagerTest, IsCaptured01, Function | SmallTest | Level1)974 HWTEST_F(DisplayManagerTest, IsCaptured01, Function | SmallTest | Level1)
975 {
976 auto ret = DisplayManager::GetInstance().IsCaptured();
977 ASSERT_FALSE(ret);
978 }
979
980 /**
981 * @tc.name: isinsideof
982 * @tc.desc: isinside0f fun
983 * @tc.type: FUNC
984 */
HWTEST_F(DisplayManagerTest, isinsideof, Function | SmallTest | Level1)985 HWTEST_F(DisplayManagerTest, isinsideof, Function | SmallTest | Level1)
986 {
987 DMRect rect = {2, 2, 2, 2};
988 DMRect rect1 = {2, 2, 2, 2};
989 ASSERT_EQ(rect.IsInsideOf(rect1), true);
990 }
991
992 /**
993 * @tc.name: GetAllDisplayPhysicalResolution
994 * @tc.desc: GetAllDisplayPhysicalResolution test
995 * @tc.type: FUNC
996 */
HWTEST_F(DisplayManagerTest, GetAllDisplayPhysicalResolution, Function | SmallTest | Level1)997 HWTEST_F(DisplayManagerTest, GetAllDisplayPhysicalResolution, Function | SmallTest | Level1)
998 {
999 std::vector<DisplayPhysicalResolution> allSize = DisplayManager::GetInstance().GetAllDisplayPhysicalResolution();
1000 ASSERT_TRUE(!allSize.empty());
1001 }
1002
1003 /**
1004 * @tc.name: ClearDisplayStateCallback
1005 * @tc.desc: ClearDisplayStateCallback test
1006 * @tc.type: FUNC
1007 */
HWTEST_F(DisplayManagerTest, ClearDisplayStateCallback, Function | SmallTest | Level1)1008 HWTEST_F(DisplayManagerTest, ClearDisplayStateCallback, Function | SmallTest | Level1)
1009 {
1010 DisplayManager::GetInstance().pImpl_->ClearDisplayStateCallback();
1011 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->displayStateAgent_ == nullptr);
1012 }
1013
1014 /**
1015 * @tc.name: ClearFoldStatusCallback
1016 * @tc.desc: ClearFoldStatusCallback test
1017 * @tc.type: FUNC
1018 */
HWTEST_F(DisplayManagerTest, ClearFoldStatusCallback, Function | SmallTest | Level1)1019 HWTEST_F(DisplayManagerTest, ClearFoldStatusCallback, Function | SmallTest | Level1)
1020 {
1021 DisplayManager::GetInstance().pImpl_->ClearFoldStatusCallback();
1022 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->foldStatusListenerAgent_ == nullptr);
1023 }
1024
1025 /**
1026 * @tc.name: ClearFoldAngleCallback
1027 * @tc.desc: ClearFoldAngleCallback test
1028 * @tc.type: FUNC
1029 */
HWTEST_F(DisplayManagerTest, ClearFoldAngleCallback, Function | SmallTest | Level1)1030 HWTEST_F(DisplayManagerTest, ClearFoldAngleCallback, Function | SmallTest | Level1)
1031 {
1032 DisplayManager::GetInstance().pImpl_->ClearFoldAngleCallback();
1033 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->foldAngleListenerAgent_ == nullptr);
1034 }
1035
1036 /**
1037 * @tc.name: ClearCaptureStatusCallback
1038 * @tc.desc: ClearCaptureStatusCallback test
1039 * @tc.type: FUNC
1040 */
HWTEST_F(DisplayManagerTest, ClearCaptureStatusCallback, Function | SmallTest | Level1)1041 HWTEST_F(DisplayManagerTest, ClearCaptureStatusCallback, Function | SmallTest | Level1)
1042 {
1043 DisplayManager::GetInstance().pImpl_->ClearCaptureStatusCallback();
1044 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->captureStatusListenerAgent_ == nullptr);
1045 }
1046
1047 /**
1048 * @tc.name: ClearDisplayModeCallback
1049 * @tc.desc: ClearDisplayModeCallback test
1050 * @tc.type: FUNC
1051 */
HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback01, Function | SmallTest | Level1)1052 HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback01, Function | SmallTest | Level1)
1053 {
1054 DisplayManager::GetInstance().pImpl_->ClearDisplayModeCallback();
1055 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr);
1056 }
1057
1058 /**
1059 * @tc.name: ClearDisplayModeCallback
1060 * @tc.desc: ClearDisplayModeCallback test
1061 * @tc.type: FUNC
1062 */
HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback02, Function | SmallTest | Level1)1063 HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback02, Function | SmallTest | Level1)
1064 {
1065 sptr<DisplayManager::IDisplayModeListener> listener = new DisplayManager::IDisplayModeListener();
1066 DisplayManager::GetInstance().RegisterDisplayModeListener(listener);
1067 DisplayManager::GetInstance().pImpl_->ClearDisplayModeCallback();
1068 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr);
1069 }
1070
1071 /**
1072 * @tc.name: GetDisplayByScreenId
1073 * @tc.desc: GetDisplayByScreenId test
1074 * @tc.type: FUNC
1075 */
HWTEST_F(DisplayManagerTest, GetDisplayByScreenId, Function | SmallTest | Level1)1076 HWTEST_F(DisplayManagerTest, GetDisplayByScreenId, Function | SmallTest | Level1)
1077 {
1078 ScreenId screenId = -1;
1079 auto ret = DisplayManager::GetInstance().pImpl_->GetDisplayByScreenId(screenId);
1080 ASSERT_TRUE(ret == nullptr);
1081 }
1082
1083 /**
1084 * @tc.name: UnregisterDisplayUpdateListener
1085 * @tc.desc: UnregisterDisplayUpdateListener fun
1086 * @tc.type: FUNC
1087 */
HWTEST_F(DisplayManagerTest, UnregisterDisplayUpdateListener, Function | SmallTest | Level1)1088 HWTEST_F(DisplayManagerTest, UnregisterDisplayUpdateListener, Function | SmallTest | Level1)
1089 {
1090 sptr<DisplayManager::IDisplayUpdateListener> listener;
1091 auto ret = DisplayManager::GetInstance().UnregisterDisplayUpdateListener(listener);
1092 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1093 listener = new DisplayManager::IDisplayUpdateListener();
1094 ret = DisplayManager::GetInstance().UnregisterDisplayUpdateListener(listener);
1095 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterDisplayUpdateListener(listener));
1096 listener.clear();
1097 }
1098
1099 /**
1100 * @tc.name: RegisterAvailableAreaListener
1101 * @tc.desc: RegisterAvailableAreaListener fun
1102 * @tc.type: FUNC
1103 */
HWTEST_F(DisplayManagerTest, RegisterAvailableAreaListener, Function | SmallTest | Level1)1104 HWTEST_F(DisplayManagerTest, RegisterAvailableAreaListener, Function | SmallTest | Level1)
1105 {
1106 sptr<DisplayManager::IAvailableAreaListener> listener;
1107 auto ret = DisplayManager::GetInstance().RegisterAvailableAreaListener(listener);
1108 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1109 listener = new DisplayManager::IAvailableAreaListener();
1110 ret = DisplayManager::GetInstance().RegisterAvailableAreaListener(listener);
1111 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterAvailableAreaListener(listener));
1112 listener.clear();
1113 }
1114
1115 /**
1116 * @tc.name: UnregisterAvailableAreaListener
1117 * @tc.desc: UnregisterAvailableAreaListener fun
1118 * @tc.type: FUNC
1119 */
HWTEST_F(DisplayManagerTest, UnregisterAvailableAreaListener, Function | SmallTest | Level1)1120 HWTEST_F(DisplayManagerTest, UnregisterAvailableAreaListener, Function | SmallTest | Level1)
1121 {
1122 sptr<DisplayManager::IAvailableAreaListener> listener;
1123 auto ret = DisplayManager::GetInstance().UnregisterAvailableAreaListener(listener);
1124 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1125 listener = new DisplayManager::IAvailableAreaListener();
1126 ret = DisplayManager::GetInstance().UnregisterAvailableAreaListener(listener);
1127 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterAvailableAreaListener(listener));
1128 listener.clear();
1129 }
1130
1131 /**
1132 * @tc.name: GetDisplayInfoSrting
1133 * @tc.desc: GetDisplayInfoSrting fun
1134 * @tc.type: FUNC
1135 */
HWTEST_F(DisplayManagerTest, GetDisplayInfoSrting, Function | SmallTest | Level1)1136 HWTEST_F(DisplayManagerTest, GetDisplayInfoSrting, Function | SmallTest | Level1)
1137 {
1138 sptr<DisplayInfo> displayInfo = nullptr;
1139 auto ret =DisplayManager::GetInstance().pImpl_->GetDisplayInfoSrting(displayInfo);
1140 ASSERT_EQ(displayInfo, nullptr);
1141 }
1142
1143 /**
1144 * @tc.name: OnRemoteDied
1145 * @tc.desc: OnRemoteDied fun
1146 * @tc.type: FUNC
1147 */
HWTEST_F(DisplayManagerTest, OnRemoteDied, Function | SmallTest | Level1)1148 HWTEST_F(DisplayManagerTest, OnRemoteDied, Function | SmallTest | Level1)
1149 {
1150 g_dmIsDestroyed = true;
1151 DisplayManager::GetInstance().OnRemoteDied();
1152 ASSERT_EQ(g_dmIsDestroyed, true);
1153 }
1154
1155 /**
1156 * @tc.name: SetDisplayScale
1157 * @tc.desc: SetDisplayScale test
1158 * @tc.type: FUNC
1159 */
HWTEST_F(DisplayManagerTest, SetDisplayScale, Function | SmallTest | Level1)1160 HWTEST_F(DisplayManagerTest, SetDisplayScale, Function | SmallTest | Level1)
1161 {
1162 DisplayManager& displayManager = DisplayManager::GetInstance();
1163 ASSERT_NE(displayManager.pImpl_, nullptr);
1164 const float scaleX = 1.0f;
1165 const float scaleY = 1.0f;
1166 const float pivotX = 0.5f;
1167 const float pivotY = 0.5f;
1168 sptr<Display> display = displayManager.GetDefaultDisplay();
1169 ASSERT_NE(display, nullptr);
1170 ScreenId screenId = display->GetScreenId();
1171 displayManager.SetDisplayScale(screenId, scaleX, scaleY, pivotX, pivotY);
1172 }
1173
1174 /**
1175 * @tc.name: Clear
1176 * @tc.desc: Clear test
1177 * @tc.type: FUNC
1178 */
HWTEST_F(DisplayManagerTest, Clear01, Function | SmallTest | Level1)1179 HWTEST_F(DisplayManagerTest, Clear01, Function | SmallTest | Level1)
1180 {
1181 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
1182 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1183 EXPECT_CALL(m->Mock(), UnregisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1184 DisplayManager::GetInstance().pImpl_->displayManagerListener_ = nullptr;
1185 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
1186 DisplayManager::GetInstance().RegisterDisplayListener(listener);
1187 auto displayManagerListener = DisplayManager::GetInstance().pImpl_->displayManagerListener_;
1188 ASSERT_NE(displayManagerListener, nullptr);
1189 DisplayManager::GetInstance().pImpl_->Clear();
1190 ASSERT_EQ(DisplayManager::GetInstance().pImpl_->displayManagerListener_, nullptr);
1191 }
1192
1193 /**
1194 * @tc.name: Clear
1195 * @tc.desc: Clear test
1196 * @tc.type: FUNC
1197 */
HWTEST_F(DisplayManagerTest, Clear02, Function | SmallTest | Level1)1198 HWTEST_F(DisplayManagerTest, Clear02, Function | SmallTest | Level1)
1199 {
1200 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
1201 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1202 EXPECT_CALL(m->Mock(), UnregisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1203 DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_ = nullptr;
1204 sptr<IDisplayPowerEventListener> listener = new DmMockDisplayPowerEventListener();
1205 DisplayManager::GetInstance().RegisterDisplayPowerEventListener(listener);
1206 auto powerEventListenerAgent = DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_;
1207 ASSERT_NE(powerEventListenerAgent, nullptr);
1208 DisplayManager::GetInstance().pImpl_->Clear();
1209 ASSERT_EQ(DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_, nullptr);
1210 }
1211
1212 /**
1213 * @tc.name: NotifyCaptureStatusChanged
1214 * @tc.desc: NotifyCaptureStatusChanged fun
1215 * @tc.type: FUNC
1216 */
HWTEST_F(DisplayManagerTest, NotifyCaptureStatusChanged, Function | SmallTest | Level1)1217 HWTEST_F(DisplayManagerTest, NotifyCaptureStatusChanged, Function | SmallTest | Level1)
1218 {
1219 DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ = nullptr;
1220 sptr<DisplayManager::Impl> impl_;
1221 sptr<DisplayManager::Impl::DisplayManagerDisplayModeAgent> displayModeListenerAgent =
1222 new DisplayManager::Impl::DisplayManagerDisplayModeAgent(impl_);
1223 bool isCapture = true;
1224 DisplayManager::GetInstance().pImpl_->NotifyCaptureStatusChanged(isCapture);
1225 ASSERT_EQ(DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_, nullptr);
1226 }
1227
1228 /**
1229 * @tc.name: NotifyCaptureStatusChanged01
1230 * @tc.desc: NotifyCaptureStatusChanged01 fun
1231 * @tc.type: FUNC
1232 */
HWTEST_F(DisplayManagerTest, NotifyCaptureStatusChanged01, Function | SmallTest | Level1)1233 HWTEST_F(DisplayManagerTest, NotifyCaptureStatusChanged01, Function | SmallTest | Level1)
1234 {
1235 DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ = nullptr;
1236 sptr<DisplayManager::Impl> impl_;
1237 sptr<DisplayManager::Impl::DisplayManagerDisplayModeAgent> displayModeListenerAgent =
1238 new DisplayManager::Impl::DisplayManagerDisplayModeAgent(impl_);
1239 bool isCapture = true;
1240 DisplayManager::GetInstance().pImpl_->NotifyCaptureStatusChanged(isCapture);
1241 ASSERT_EQ(DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_, nullptr);
1242 }
1243 /**
1244 * @tc.name: RegisterFoldAngleListener03
1245 * @tc.desc: RegisterFoldAngleListener03 fun
1246 * @tc.type: FUNC
1247 */
HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener03, Function | SmallTest | Level1)1248 HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener03, Function | SmallTest | Level1)
1249 {
1250 sptr<DisplayManager::IFoldAngleListener> listener = nullptr;
1251 auto ret = DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
1252 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1253 listener = new DisplayManager::IFoldAngleListener();
1254 ret = DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
1255 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterFoldAngleListener(listener));
1256 listener.clear();
1257 }
1258
1259 /**
1260 * @tc.name: RegisterFoldAngleListener04
1261 * @tc.desc: RegisterFoldAngleListener04 fun
1262 * @tc.type: FUNC
1263 */
HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener04, Function | SmallTest | Level1)1264 HWTEST_F(DisplayManagerTest, RegisterFoldAngleListener04, Function | SmallTest | Level1)
1265 {
1266 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
1267 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
1268 DisplayManager::GetInstance().pImpl_->foldAngleListenerAgent_ = nullptr;
1269 sptr<DisplayManager::IFoldAngleListener> listener = new DmMockFoldAngleListener();
1270 auto ret = DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
1271 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
1272 listener.clear();
1273 }
1274
1275 /**
1276 * @tc.name: UnregisterFoldAngleListener04
1277 * @tc.desc: UnregisterFoldAngleListener04 fun
1278 * @tc.type: FUNC
1279 */
HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener04, Function | SmallTest | Level1)1280 HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener04, Function | SmallTest | Level1)
1281 {
1282 sptr<DisplayManager::IFoldAngleListener> listener;
1283 auto ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
1284 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1285 listener = new DisplayManager::IFoldAngleListener();
1286 ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
1287 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterFoldAngleListener(listener));
1288 listener.clear();
1289 }
1290
1291 /**
1292 * @tc.name: UnregisterFoldAngleListener05
1293 * @tc.desc: UnregisterFoldAngleListener05 fun
1294 * @tc.type: FUNC
1295 */
HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener05, Function | SmallTest | Level1)1296 HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener05, Function | SmallTest | Level1)
1297 {
1298 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->foldAngleListeners_.empty());
1299 sptr<DisplayManager::IFoldAngleListener> listener = new DisplayManager::IFoldAngleListener();
1300 DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
1301 auto ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
1302 ASSERT_EQ(ret, DMError::DM_OK);
1303 listener.clear();
1304 }
1305
1306 /**
1307 * @tc.name: UnregisterFoldAngleListener06
1308 * @tc.desc: UnregisterFoldAngleListener06 fun
1309 * @tc.type: FUNC
1310 */
HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener06, Function | SmallTest | Level1)1311 HWTEST_F(DisplayManagerTest, UnregisterFoldAngleListener06, Function | SmallTest | Level1)
1312 {
1313 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->foldAngleListeners_.empty());
1314 DisplayManager::GetInstance().pImpl_->foldAngleListeners_.clear();
1315 sptr<DisplayManager::IFoldAngleListener> listener = new DisplayManager::IFoldAngleListener();
1316 DisplayManager::GetInstance().RegisterFoldAngleListener(listener);
1317 auto ret = DisplayManager::GetInstance().UnregisterFoldAngleListener(listener);
1318 ASSERT_EQ(ret, DMError::DM_OK);
1319 listener.clear();
1320 }
1321
1322 /**
1323 * @tc.name: RegisterCaptureStatusListener03
1324 * @tc.desc: RegisterCaptureStatusListener03 fun
1325 * @tc.type: FUNC
1326 */
HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener03, Function | SmallTest | Level1)1327 HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener03, Function | SmallTest | Level1)
1328 {
1329 sptr<DisplayManager::ICaptureStatusListener> listener = nullptr;
1330 auto ret = DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
1331 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1332 listener = new DisplayManager::ICaptureStatusListener();
1333 ret = DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
1334 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterCaptureStatusListener(listener));
1335 listener.clear();
1336 }
1337
1338 /**
1339 * @tc.name: RegisterCaptureStatusListener04
1340 * @tc.desc: RegisterCaptureStatusListener04 fun
1341 * @tc.type: FUNC
1342 */
HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener04, Function | SmallTest | Level1)1343 HWTEST_F(DisplayManagerTest, RegisterCaptureStatusListener04, Function | SmallTest | Level1)
1344 {
1345 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
1346 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_ERROR_IPC_FAILED));
1347 DisplayManager::GetInstance().pImpl_->captureStatusListenerAgent_ = nullptr;
1348 sptr<DisplayManager::ICaptureStatusListener> listener = new DisplayManager::ICaptureStatusListener();
1349 auto ret = DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
1350 ASSERT_EQ(ret, DMError::DM_ERROR_IPC_FAILED);
1351 listener.clear();
1352 }
1353
1354 /**
1355 * @tc.name: UnregisterCaptureStatusListener04
1356 * @tc.desc: UnregisterCaptureStatusListener04 fun
1357 * @tc.type: FUNC
1358 */
HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener04, Function | SmallTest | Level1)1359 HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener04, Function | SmallTest | Level1)
1360 {
1361 sptr<DisplayManager::ICaptureStatusListener> listener;
1362 auto ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
1363 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1364 listener = new DisplayManager::ICaptureStatusListener();
1365 ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
1366 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterCaptureStatusListener(listener));
1367 listener.clear();
1368 }
1369
1370 /**
1371 * @tc.name: UnregisterCaptureStatusListener05
1372 * @tc.desc: UnregisterCaptureStatusListener05 fun
1373 * @tc.type: FUNC
1374 */
HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener05, Function | SmallTest | Level1)1375 HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener05, Function | SmallTest | Level1)
1376 {
1377 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->captureStatusListeners_.empty());
1378 sptr<DisplayManager::ICaptureStatusListener> listener = new DisplayManager::ICaptureStatusListener();
1379 DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
1380 auto ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
1381 ASSERT_EQ(ret, DMError::DM_OK);
1382 listener.clear();
1383 }
1384
1385 /**
1386 * @tc.name: UnregisterCaptureStatusListener06
1387 * @tc.desc: UnregisterCaptureStatusListener06 fun
1388 * @tc.type: FUNC
1389 */
HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener06, Function | SmallTest | Level1)1390 HWTEST_F(DisplayManagerTest, UnregisterCaptureStatusListener06, Function | SmallTest | Level1)
1391 {
1392 ASSERT_FALSE(DisplayManager::GetInstance().pImpl_->captureStatusListeners_.empty());
1393 DisplayManager::GetInstance().pImpl_->captureStatusListeners_.clear();
1394 sptr<DisplayManager::ICaptureStatusListener> listener = new DisplayManager::ICaptureStatusListener();
1395 DisplayManager::GetInstance().RegisterCaptureStatusListener(listener);
1396 auto ret = DisplayManager::GetInstance().UnregisterCaptureStatusListener(listener);
1397 ASSERT_EQ(ret, DMError::DM_OK);
1398 listener.clear();
1399 }
1400
1401
1402 /**
1403 * @tc.name: RegisterDisplayUpdateListener02
1404 * @tc.desc: RegisterDisplayUpdateListener02 fun
1405 * @tc.type: FUNC
1406 */
HWTEST_F(DisplayManagerTest, RegisterDisplayUpdateListener02, Function | SmallTest | Level1)1407 HWTEST_F(DisplayManagerTest, RegisterDisplayUpdateListener02, Function | SmallTest | Level1)
1408 {
1409 sptr<DisplayManager::IDisplayUpdateListener> listener = nullptr;
1410 auto ret = DisplayManager::GetInstance().RegisterDisplayUpdateListener(listener);
1411 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1412 listener = new DisplayManager::IDisplayUpdateListener();
1413 ret = DisplayManager::GetInstance().RegisterDisplayUpdateListener(listener);
1414 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterDisplayUpdateListener(listener));
1415 listener.clear();
1416 }
1417
1418 /**
1419 * @tc.name: IsCaptured02
1420 * @tc.desc: IsCaptured02 fun
1421 * @tc.type: FUNC
1422 */
HWTEST_F(DisplayManagerTest, IsCaptured02, Function | SmallTest | Level1)1423 HWTEST_F(DisplayManagerTest, IsCaptured02, Function | SmallTest | Level1)
1424 {
1425 auto ret = DisplayManager::GetInstance().IsCaptured();
1426 ASSERT_FALSE(ret);
1427 }
1428
1429 /**
1430 * @tc.name: isinsideof01
1431 * @tc.desc: isinsideof01 fun
1432 * @tc.type: FUNC
1433 */
HWTEST_F(DisplayManagerTest, isinsideof01, Function | SmallTest | Level1)1434 HWTEST_F(DisplayManagerTest, isinsideof01, Function | SmallTest | Level1)
1435 {
1436 DMRect rect = {2, 2, 2, 2};
1437 DMRect rect1 = {2, 2, 2, 2};
1438 ASSERT_EQ(rect.IsInsideOf(rect1), true);
1439 }
1440
1441 /**
1442 * @tc.name: GetAllDisplayPhysicalResolution01
1443 * @tc.desc: GetAllDisplayPhysicalResolution01 test
1444 * @tc.type: FUNC
1445 */
HWTEST_F(DisplayManagerTest, GetAllDisplayPhysicalResolution01, Function | SmallTest | Level1)1446 HWTEST_F(DisplayManagerTest, GetAllDisplayPhysicalResolution01, Function | SmallTest | Level1)
1447 {
1448 std::vector<DisplayPhysicalResolution> allSize = DisplayManager::GetInstance().GetAllDisplayPhysicalResolution();
1449 ASSERT_TRUE(!allSize.empty());
1450 }
1451
1452 /**
1453 * @tc.name: ClearDisplayStateCallback01
1454 * @tc.desc: ClearDisplayStateCallback01 test
1455 * @tc.type: FUNC
1456 */
HWTEST_F(DisplayManagerTest, ClearDisplayStateCallback01, Function | SmallTest | Level1)1457 HWTEST_F(DisplayManagerTest, ClearDisplayStateCallback01, Function | SmallTest | Level1)
1458 {
1459 DisplayManager::GetInstance().pImpl_->ClearDisplayStateCallback();
1460 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->displayStateAgent_ == nullptr);
1461 }
1462
1463 /**
1464 * @tc.name: ClearFoldStatusCallback01
1465 * @tc.desc: ClearFoldStatusCallback01 test
1466 * @tc.type: FUNC
1467 */
HWTEST_F(DisplayManagerTest, ClearFoldStatusCallback01, Function | SmallTest | Level1)1468 HWTEST_F(DisplayManagerTest, ClearFoldStatusCallback01, Function | SmallTest | Level1)
1469 {
1470 DisplayManager::GetInstance().pImpl_->ClearFoldStatusCallback();
1471 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->foldStatusListenerAgent_ == nullptr);
1472 }
1473
1474 /**
1475 * @tc.name: ClearFoldAngleCallback01
1476 * @tc.desc: ClearFoldAngleCallback01 test
1477 * @tc.type: FUNC
1478 */
HWTEST_F(DisplayManagerTest, ClearFoldAngleCallback01, Function | SmallTest | Level1)1479 HWTEST_F(DisplayManagerTest, ClearFoldAngleCallback01, Function | SmallTest | Level1)
1480 {
1481 DisplayManager::GetInstance().pImpl_->ClearFoldAngleCallback();
1482 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->foldAngleListenerAgent_ == nullptr);
1483 }
1484
1485 /**
1486 * @tc.name: ClearCaptureStatusCallback01
1487 * @tc.desc: ClearCaptureStatusCallback01 test
1488 * @tc.type: FUNC
1489 */
HWTEST_F(DisplayManagerTest, ClearCaptureStatusCallback01, Function | SmallTest | Level1)1490 HWTEST_F(DisplayManagerTest, ClearCaptureStatusCallback01, Function | SmallTest | Level1)
1491 {
1492 DisplayManager::GetInstance().pImpl_->ClearCaptureStatusCallback();
1493 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->captureStatusListenerAgent_ == nullptr);
1494 }
1495
1496 /**
1497 * @tc.name: ClearDisplayModeCallback03
1498 * @tc.desc: ClearDisplayModeCallback03 test
1499 * @tc.type: FUNC
1500 */
HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback03, Function | SmallTest | Level1)1501 HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback03, Function | SmallTest | Level1)
1502 {
1503 DisplayManager::GetInstance().pImpl_->ClearDisplayModeCallback();
1504 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr);
1505 }
1506
1507 /**
1508 * @tc.name: ClearDisplayModeCallback04
1509 * @tc.desc: ClearDisplayModeCallback04 test
1510 * @tc.type: FUNC
1511 */
HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback04, Function | SmallTest | Level1)1512 HWTEST_F(DisplayManagerTest, ClearDisplayModeCallback04, Function | SmallTest | Level1)
1513 {
1514 sptr<DisplayManager::IDisplayModeListener> listener = new DisplayManager::IDisplayModeListener();
1515 DisplayManager::GetInstance().RegisterDisplayModeListener(listener);
1516 DisplayManager::GetInstance().pImpl_->ClearDisplayModeCallback();
1517 ASSERT_TRUE(DisplayManager::GetInstance().pImpl_->displayModeListenerAgent_ == nullptr);
1518 }
1519
1520 /**
1521 * @tc.name: GetDisplayByScreenId01
1522 * @tc.desc: GetDisplayByScreenId01 test
1523 * @tc.type: FUNC
1524 */
HWTEST_F(DisplayManagerTest, GetDisplayByScreenId01, Function | SmallTest | Level1)1525 HWTEST_F(DisplayManagerTest, GetDisplayByScreenId01, Function | SmallTest | Level1)
1526 {
1527 ScreenId screenId = -1;
1528 auto ret = DisplayManager::GetInstance().pImpl_->GetDisplayByScreenId(screenId);
1529 ASSERT_TRUE(ret == nullptr);
1530 }
1531
1532 /**
1533 * @tc.name: UnregisterDisplayUpdateListener01
1534 * @tc.desc: UnregisterDisplayUpdateListener01 fun
1535 * @tc.type: FUNC
1536 */
HWTEST_F(DisplayManagerTest, UnregisterDisplayUpdateListener01, Function | SmallTest | Level1)1537 HWTEST_F(DisplayManagerTest, UnregisterDisplayUpdateListener01, Function | SmallTest | Level1)
1538 {
1539 sptr<DisplayManager::IDisplayUpdateListener> listener;
1540 auto ret = DisplayManager::GetInstance().UnregisterDisplayUpdateListener(listener);
1541 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1542 listener = new DisplayManager::IDisplayUpdateListener();
1543 ret = DisplayManager::GetInstance().UnregisterDisplayUpdateListener(listener);
1544 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterDisplayUpdateListener(listener));
1545 listener.clear();
1546 }
1547
1548 /**
1549 * @tc.name: RegisterAvailableAreaListener01
1550 * @tc.desc: RegisterAvailableAreaListener01 fun
1551 * @tc.type: FUNC
1552 */
HWTEST_F(DisplayManagerTest, RegisterAvailableAreaListener01, Function | SmallTest | Level1)1553 HWTEST_F(DisplayManagerTest, RegisterAvailableAreaListener01, Function | SmallTest | Level1)
1554 {
1555 sptr<DisplayManager::IAvailableAreaListener> listener;
1556 auto ret = DisplayManager::GetInstance().RegisterAvailableAreaListener(listener);
1557 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1558 listener = new DisplayManager::IAvailableAreaListener();
1559 ret = DisplayManager::GetInstance().RegisterAvailableAreaListener(listener);
1560 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->RegisterAvailableAreaListener(listener));
1561 listener.clear();
1562 }
1563
1564 /**
1565 * @tc.name: UnregisterAvailableAreaListener01
1566 * @tc.desc: UnregisterAvailableAreaListener01 fun
1567 * @tc.type: FUNC
1568 */
HWTEST_F(DisplayManagerTest, UnregisterAvailableAreaListener01, Function | SmallTest | Level1)1569 HWTEST_F(DisplayManagerTest, UnregisterAvailableAreaListener01, Function | SmallTest | Level1)
1570 {
1571 sptr<DisplayManager::IAvailableAreaListener> listener;
1572 auto ret = DisplayManager::GetInstance().UnregisterAvailableAreaListener(listener);
1573 ASSERT_EQ(ret, DMError::DM_ERROR_NULLPTR);
1574 listener = new DisplayManager::IAvailableAreaListener();
1575 ret = DisplayManager::GetInstance().UnregisterAvailableAreaListener(listener);
1576 ASSERT_EQ(ret, DisplayManager::GetInstance().pImpl_->UnregisterAvailableAreaListener(listener));
1577 listener.clear();
1578 }
1579
1580 /**
1581 * @tc.name: GetDisplayInfoSrting01
1582 * @tc.desc: GetDisplayInfoSrting01 fun
1583 * @tc.type: FUNC
1584 */
HWTEST_F(DisplayManagerTest, GetDisplayInfoSrting01, Function | SmallTest | Level1)1585 HWTEST_F(DisplayManagerTest, GetDisplayInfoSrting01, Function | SmallTest | Level1)
1586 {
1587 sptr<DisplayInfo> displayInfo = nullptr;
1588 auto ret =DisplayManager::GetInstance().pImpl_->GetDisplayInfoSrting(displayInfo);
1589 ASSERT_EQ(displayInfo, nullptr);
1590 }
1591
1592 /**
1593 * @tc.name: OnRemoteDied01
1594 * @tc.desc: OnRemoteDied01 fun
1595 * @tc.type: FUNC
1596 */
HWTEST_F(DisplayManagerTest, OnRemoteDied01, Function | SmallTest | Level1)1597 HWTEST_F(DisplayManagerTest, OnRemoteDied01, Function | SmallTest | Level1)
1598 {
1599 g_dmIsDestroyed = true;
1600 DisplayManager::GetInstance().OnRemoteDied();
1601 ASSERT_EQ(g_dmIsDestroyed, true);
1602 }
1603
1604 /**
1605 * @tc.name: SetDisplayScale01
1606 * @tc.desc: SetDisplayScale01 test
1607 * @tc.type: FUNC
1608 */
HWTEST_F(DisplayManagerTest, SetDisplayScale01, Function | SmallTest | Level1)1609 HWTEST_F(DisplayManagerTest, SetDisplayScale01, Function | SmallTest | Level1)
1610 {
1611 DisplayManager& displayManager = DisplayManager::GetInstance();
1612 ASSERT_NE(displayManager.pImpl_, nullptr);
1613 const float scaleX = 1.0f;
1614 const float scaleY = 1.0f;
1615 const float pivotX = 0.5f;
1616 const float pivotY = 0.5f;
1617 sptr<Display> display = displayManager.GetDefaultDisplay();
1618 ASSERT_NE(display, nullptr);
1619 ScreenId screenId = display->GetScreenId();
1620 displayManager.SetDisplayScale(screenId, scaleX, scaleY, pivotX, pivotY);
1621 }
1622
1623 /**
1624 * @tc.name: Clear03
1625 * @tc.desc: Clear03 test
1626 * @tc.type: FUNC
1627 */
HWTEST_F(DisplayManagerTest, Clear03, Function | SmallTest | Level1)1628 HWTEST_F(DisplayManagerTest, Clear03, Function | SmallTest | Level1)
1629 {
1630 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
1631 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1632 EXPECT_CALL(m->Mock(), UnregisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1633 DisplayManager::GetInstance().pImpl_->displayManagerListener_ = nullptr;
1634 sptr<DisplayManager::IDisplayListener> listener = new DmMockDisplayListener();
1635 DisplayManager::GetInstance().RegisterDisplayListener(listener);
1636 auto displayManagerListener = DisplayManager::GetInstance().pImpl_->displayManagerListener_;
1637 ASSERT_NE(displayManagerListener, nullptr);
1638 DisplayManager::GetInstance().pImpl_->Clear();
1639 ASSERT_EQ(DisplayManager::GetInstance().pImpl_->displayManagerListener_, nullptr);
1640 }
1641
1642 /**
1643 * @tc.name: Clear04
1644 * @tc.desc: Clear04 test
1645 * @tc.type: FUNC
1646 */
HWTEST_F(DisplayManagerTest, Clear04, Function | SmallTest | Level1)1647 HWTEST_F(DisplayManagerTest, Clear04, Function | SmallTest | Level1)
1648 {
1649 std::unique_ptr<Mocker> m = std::make_unique<Mocker>();
1650 EXPECT_CALL(m->Mock(), RegisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1651 EXPECT_CALL(m->Mock(), UnregisterDisplayManagerAgent(_, _)).Times(1).WillOnce(Return(DMError::DM_OK));
1652 DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_ = nullptr;
1653 sptr<IDisplayPowerEventListener> listener = new DmMockDisplayPowerEventListener();
1654 DisplayManager::GetInstance().RegisterDisplayPowerEventListener(listener);
1655 auto powerEventListenerAgent = DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_;
1656 ASSERT_NE(powerEventListenerAgent, nullptr);
1657 DisplayManager::GetInstance().pImpl_->Clear();
1658 ASSERT_EQ(DisplayManager::GetInstance().pImpl_->powerEventListenerAgent_, nullptr);
1659 }
1660 }
1661 } // namespace Rosen
1662 } // namespace OHOS