1 /*
2  * Copyright (c) 2023-2023 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 "mock_RSIWindowAnimationController.h"
18 
19 #include "remote_animation.h"
20 #include "session_manager.h"
21 #include "starting_window.h"
22 #include "window_transition_info.h"
23 #include "window_property.h"
24 #include "window_agent.h"
25 #include "window_adapter.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 constexpr uint32_t WINDOW_ID = 1000;
34 class WindowAdapterTest : public testing::Test {
35 public:
36     static void SetUpTestCase();
37     static void TearDownTestCase();
38     void SetUp() override;
39     void TearDown() override;
40 };
41 
SetUpTestCase()42 void WindowAdapterTest::SetUpTestCase()
43 {
44 }
45 
TearDownTestCase()46 void WindowAdapterTest::TearDownTestCase()
47 {
48 }
49 
SetUp()50 void WindowAdapterTest::SetUp()
51 {
52 }
53 
TearDown()54 void WindowAdapterTest::TearDown()
55 {
56 }
57 
58 namespace {
59 /**
60  * @tc.name: AddWindow
61  * @tc.desc: WindowAdapter/AddWindow
62  * @tc.type: FUNC
63  */
HWTEST_F(WindowAdapterTest, AddWindow, Function | SmallTest | Level2)64 HWTEST_F(WindowAdapterTest, AddWindow, Function | SmallTest | Level2)
65 {
66     sptr<WindowProperty> windowProperty = nullptr;
67     WindowAdapter windowAdapter;
68 
69     windowAdapter.AddWindow(windowProperty);
70     auto ret = windowAdapter.InitWMSProxy();
71     ASSERT_EQ(true, ret);
72 }
73 
74 /**
75  * @tc.name: RemoveWindow
76  * @tc.desc: WindowAdapter/RemoveWindow
77  * @tc.type: FUNC
78  */
HWTEST_F(WindowAdapterTest, RemoveWindow, Function | SmallTest | Level2)79 HWTEST_F(WindowAdapterTest, RemoveWindow, Function | SmallTest | Level2)
80 {
81     uint32_t windowId = 0;
82     bool isFromInnerkits = false;
83     WindowAdapter windowAdapter;
84 
85     windowAdapter.RemoveWindow(windowId, isFromInnerkits);
86     auto ret = windowAdapter.InitWMSProxy();
87     ASSERT_EQ(true, ret);
88 }
89 
90 /**
91  * @tc.name: RequestFocus
92  * @tc.desc: WindowAdapter/RequestFocus
93  * @tc.type: FUNC
94  */
HWTEST_F(WindowAdapterTest, RequestFocus, Function | SmallTest | Level2)95 HWTEST_F(WindowAdapterTest, RequestFocus, Function | SmallTest | Level2)
96 {
97     uint32_t windowId = 0;
98     WindowAdapter windowAdapter;
99 
100     windowAdapter.RequestFocus(windowId);
101     auto ret = windowAdapter.InitWMSProxy();
102     ASSERT_EQ(true, ret);
103 }
104 
105 /**
106  * @tc.name: GetUIContentRemoteObj
107  * @tc.desc: WindowAdapter/GetUIContentRemoteObj
108  * @tc.type: FUNC
109  */
HWTEST_F(WindowAdapterTest, GetUIContentRemoteObj, Function | SmallTest | Level2)110 HWTEST_F(WindowAdapterTest, GetUIContentRemoteObj, Function | SmallTest | Level2)
111 {
112     WindowAdapter windowAdapter;
113     windowAdapter.isProxyValid_ = true;
114     windowAdapter.windowManagerServiceProxy_ = nullptr;
115     sptr<IRemoteObject> remoteObj;
116     auto ret = windowAdapter.GetUIContentRemoteObj(WINDOW_ID, remoteObj);
117     ASSERT_EQ(ret, WMError::WM_ERROR_SAMGR);
118 }
119 
120 /**
121  * @tc.name: CheckWindowId
122  * @tc.desc: WindowAdapter/CheckWindowId
123  * @tc.type: FUNC
124  */
HWTEST_F(WindowAdapterTest, CheckWindowId, Function | SmallTest | Level2)125 HWTEST_F(WindowAdapterTest, CheckWindowId, Function | SmallTest | Level2)
126 {
127     int32_t windowId = 0;
128     int32_t pid = 0;
129     WindowAdapter windowAdapter;
130 
131     windowAdapter.CheckWindowId(windowId, pid);
132     auto ret = windowAdapter.InitWMSProxy();
133     ASSERT_EQ(true, ret);
134 }
135 
136 /**
137  * @tc.name: SkipSnapshotForAppProcess
138  * @tc.desc: WindowAdapter/SkipSnapshotForAppProcess
139  * @tc.type: FUNC
140  */
HWTEST_F(WindowAdapterTest, SkipSnapshotForAppProcess, Function | SmallTest | Level2)141 HWTEST_F(WindowAdapterTest, SkipSnapshotForAppProcess, Function | SmallTest | Level2)
142 {
143     int32_t pid = 1000;
144     bool skip = true;
145     WindowAdapter windowAdapter;
146     windowAdapter.SkipSnapshotForAppProcess(pid, skip);
147     auto ret = windowAdapter.InitWMSProxy();
148     ASSERT_EQ(true, ret);
149 }
150 
151 /**
152  * @tc.name: SetWindowAnimationController
153  * @tc.desc: WindowAdapter/SetWindowAnimationController
154  * @tc.type: FUNC
155  */
HWTEST_F(WindowAdapterTest, SetWindowAnimationController, Function | SmallTest | Level2)156 HWTEST_F(WindowAdapterTest, SetWindowAnimationController, Function | SmallTest | Level2)
157 {
158     sptr<RSIWindowAnimationController> controller = nullptr;
159     WindowAdapter windowAdapter;
160 
161     windowAdapter.SetWindowAnimationController(controller);
162     auto ret = windowAdapter.InitWMSProxy();
163     ASSERT_EQ(true, ret);
164 }
165 
166 /**
167  * @tc.name: GetAvoidAreaByType
168  * @tc.desc: WindowAdapter/GetAvoidAreaByType
169  * @tc.type: FUNC
170  */
HWTEST_F(WindowAdapterTest, GetAvoidAreaByType, Function | SmallTest | Level2)171 HWTEST_F(WindowAdapterTest, GetAvoidAreaByType, Function | SmallTest | Level2)
172 {
173     uint32_t windowId = 0;
174     AvoidAreaType type = AvoidAreaType::TYPE_CUTOUT;
175     AvoidArea avoidArea;
176     WindowAdapter windowAdapter;
177 
178     windowAdapter.GetAvoidAreaByType(windowId, type, avoidArea);
179     auto ret = windowAdapter.InitWMSProxy();
180     ASSERT_EQ(true, ret);
181 }
182 
183 /**
184  * @tc.name: NotifyServerReadyToMoveOrDrag
185  * @tc.desc: WindowAdapter/NotifyServerReadyToMoveOrDrag
186  * @tc.type: FUNC
187  */
HWTEST_F(WindowAdapterTest, NotifyServerReadyToMoveOrDrag, Function | SmallTest | Level2)188 HWTEST_F(WindowAdapterTest, NotifyServerReadyToMoveOrDrag, Function | SmallTest | Level2)
189 {
190     uint32_t windowId = 0;
191     sptr<WindowProperty> windowProperty = nullptr;
192     sptr<MoveDragProperty> moveDragProperty = nullptr;
193     WindowAdapter windowAdapter;
194 
195     windowAdapter.NotifyServerReadyToMoveOrDrag(windowId, windowProperty, moveDragProperty);
196     auto ret = windowAdapter.InitWMSProxy();
197     ASSERT_EQ(true, ret);
198 }
199 
200 /**
201  * @tc.name: ProcessPointDown
202  * @tc.desc: WindowAdapter/ProcessPointDown
203  * @tc.type: FUNC
204  */
HWTEST_F(WindowAdapterTest, ProcessPointDown, Function | SmallTest | Level2)205 HWTEST_F(WindowAdapterTest, ProcessPointDown, Function | SmallTest | Level2)
206 {
207     uint32_t windowId = 0;
208     bool isPointDown = false;
209     WindowAdapter windowAdapter;
210 
211     windowAdapter.ProcessPointDown(windowId, isPointDown);
212     windowAdapter.ProcessPointUp(windowId);
213     auto ret = windowAdapter.InitWMSProxy();
214     ASSERT_EQ(true, ret);
215 }
216 
217 /**
218  * @tc.name: ToggleShownStateForAllAppWindows
219  * @tc.desc: WindowAdapter/ToggleShownStateForAllAppWindows
220  * @tc.type: FUNC
221  */
HWTEST_F(WindowAdapterTest, ToggleShownStateForAllAppWindows, Function | SmallTest | Level2)222 HWTEST_F(WindowAdapterTest, ToggleShownStateForAllAppWindows, Function | SmallTest | Level2)
223 {
224     WindowAdapter windowAdapter;
225 
226     windowAdapter.ToggleShownStateForAllAppWindows();
227     auto ret = windowAdapter.InitWMSProxy();
228     ASSERT_EQ(true, ret);
229 }
230 
231 /**
232  * @tc.name: GetSnapshotByWindowId
233  * @tc.desc: WindowAdapter/GetSnapshotByWindowId
234  * @tc.type: FUNC
235  */
HWTEST_F(WindowAdapterTest, GetSnapshotByWindowId, Function | SmallTest | Level2)236 HWTEST_F(WindowAdapterTest, GetSnapshotByWindowId, Function | SmallTest | Level2)
237 {
238     WindowAdapter windowAdapter;
239     int32_t persistentId = -1;
240     std::shared_ptr<Media::PixelMap> pixelMap = nullptr;
241     windowAdapter.GetSnapshotByWindowId(persistentId, pixelMap);
242     auto ret = windowAdapter.InitWMSProxy();
243     ASSERT_EQ(true, ret);
244 }
245 
246 /**
247  * @tc.name: InitWMSProxy
248  * @tc.desc: WindowAdapter/InitWMSProxy
249  * @tc.type: FUNC
250  */
HWTEST_F(WindowAdapterTest, InitWMSProxy, Function | SmallTest | Level2)251 HWTEST_F(WindowAdapterTest, InitWMSProxy, Function | SmallTest | Level2)
252 {
253     WindowAdapter windowAdapter;
254     auto ret = windowAdapter.InitWMSProxy();
255     ASSERT_EQ(true, ret);
256 }
257 
258 /**
259  * @tc.name: RegisterSessionRecoverCallbackFunc
260  * @tc.desc: WindowAdapter/RegisterSessionRecoverCallbackFunc
261  * @tc.type: FUNC
262  */
HWTEST_F(WindowAdapterTest, RegisterSessionRecoverCallbackFunc, Function | SmallTest | Level2)263 HWTEST_F(WindowAdapterTest, RegisterSessionRecoverCallbackFunc, Function | SmallTest | Level2)
264 {
265     WindowAdapter windowAdapter;
266     int32_t persistentId = 1;
267     auto testFunc = [] {
268         return WMError::WM_OK;
269     };
270     windowAdapter.RegisterSessionRecoverCallbackFunc(persistentId, testFunc);
271     ASSERT_NE(windowAdapter.sessionRecoverCallbackFuncMap_[persistentId], nullptr);
272 }
273 
274 /**
275  * @tc.name: WindowManagerAndSessionRecover
276  * @tc.desc: WindowAdapter/WindowManagerAndSessionRecover
277  * @tc.type: FUNC
278  */
HWTEST_F(WindowAdapterTest, WindowManagerAndSessionRecover, Function | SmallTest | Level2)279 HWTEST_F(WindowAdapterTest, WindowManagerAndSessionRecover, Function | SmallTest | Level2)
280 {
281     WindowAdapter windowAdapter;
282     int32_t persistentId = 1;
283     int32_t ret = 0;
284     auto testFunc = [&ret] {
285         ret = 1;
286         return WMError::WM_DO_NOTHING;
287     };
288 
289     auto testFunc2 = [&ret] {
290         ret = 2;
291         return WMError::WM_OK;
292     };
293     windowAdapter.RegisterSessionRecoverCallbackFunc(persistentId, testFunc);
294     windowAdapter.WindowManagerAndSessionRecover();
295     if (SceneBoardJudgement::IsSceneBoardEnabled()) {
296         ASSERT_EQ(ret, 1);
297     }
298     windowAdapter.RegisterSessionRecoverCallbackFunc(persistentId, testFunc2);
299     windowAdapter.WindowManagerAndSessionRecover();
300     if (SceneBoardJudgement::IsSceneBoardEnabled()) {
301         ASSERT_EQ(ret, 2);
302     } else {
303         ASSERT_EQ(ret, 0);
304     }
305 }
306 
307 /**
308  * @tc.name: GetUnreliableWindowInfo
309  * @tc.desc: WindowAdapter/GetUnreliableWindowInfo
310  * @tc.type: FUNC
311  */
HWTEST_F(WindowAdapterTest, GetUnreliableWindowInfo, Function | SmallTest | Level2)312 HWTEST_F(WindowAdapterTest, GetUnreliableWindowInfo, Function | SmallTest | Level2)
313 {
314     int32_t windowId = 0;
315     std::vector<sptr<UnreliableWindowInfo>> infos;
316     WindowAdapter windowAdapter;
317     windowAdapter.GetUnreliableWindowInfo(windowId, infos);
318     auto ret = windowAdapter.InitWMSProxy();
319     ASSERT_EQ(true, ret);
320 }
321 
322 /**
323  * @tc.name: DestroyAndDisconnectSpecificSession
324  * @tc.desc: WindowAdapter/DestroyAndDisconnectSpecificSession
325  * @tc.type: FUNC
326  */
HWTEST_F(WindowAdapterTest, DestroyAndDisconnectSpecificSession, Function | SmallTest | Level2)327 HWTEST_F(WindowAdapterTest, DestroyAndDisconnectSpecificSession, Function | SmallTest | Level2)
328 {
329     uint32_t persistentId = 0;
330     WindowAdapter windowAdapter;
331     windowAdapter.DestroyAndDisconnectSpecificSession(persistentId);
332     auto ret = windowAdapter.InitWMSProxy();
333     ASSERT_EQ(true, ret);
334 }
335 
336 /**
337  * @tc.name: DestroyAndDisconnectSpecificSessionWithDetachCallback
338  * @tc.desc: WindowAdapter/DestroyAndDisconnectSpecificSessionWithDetachCallback
339  * @tc.type: FUNC
340  */
HWTEST_F(WindowAdapterTest, DestroyAndDisconnectSpecificSessionWithDetachCallback, Function | SmallTest | Level2)341 HWTEST_F(WindowAdapterTest, DestroyAndDisconnectSpecificSessionWithDetachCallback, Function | SmallTest | Level2)
342 {
343     uint32_t persistentId = 0;
344     WindowAdapter windowAdapter;
345     windowAdapter.DestroyAndDisconnectSpecificSessionWithDetachCallback(persistentId, nullptr);
346     auto ret = windowAdapter.InitWMSProxy();
347     ASSERT_EQ(true, ret);
348 }
349 
350 /**
351  * @tc.name: UpdateModalExtensionRect
352  * @tc.desc: WindowAdapter/UpdateModalExtensionRect
353  * @tc.type: FUNC
354  */
HWTEST_F(WindowAdapterTest, UpdateModalExtensionRect, Function | SmallTest | Level2)355 HWTEST_F(WindowAdapterTest, UpdateModalExtensionRect, Function | SmallTest | Level2)
356 {
357     WindowAdapter windowAdapter;
358     Rect rect { 1, 2, 3, 4 };
359     sptr<IRemoteObject> token = sptr<IRemoteObjectMocker>::MakeSptr();
360     ASSERT_NE(token, nullptr);
361     windowAdapter.UpdateModalExtensionRect(token, rect);
362     windowAdapter.UpdateModalExtensionRect(nullptr, rect);
363     auto ret = windowAdapter.InitWMSProxy();
364     EXPECT_TRUE(ret);
365 }
366 
367 /**
368  * @tc.name: ProcessModalExtensionPointDown
369  * @tc.desc: WindowAdapter/ProcessModalExtensionPointDown
370  * @tc.type: FUNC
371  */
HWTEST_F(WindowAdapterTest, ProcessModalExtensionPointDown, Function | SmallTest | Level2)372 HWTEST_F(WindowAdapterTest, ProcessModalExtensionPointDown, Function | SmallTest | Level2)
373 {
374     WindowAdapter windowAdapter;
375     sptr<IRemoteObject> token = sptr<IRemoteObjectMocker>::MakeSptr();
376     ASSERT_NE(token, nullptr);
377     windowAdapter.ProcessModalExtensionPointDown(token, 0, 0);
378     windowAdapter.ProcessModalExtensionPointDown(nullptr, 0, 0);
379     auto ret = windowAdapter.InitWMSProxy();
380     EXPECT_TRUE(ret);
381 }
382 
383 /**
384  * @tc.name: AddExtensionWindowStageToSCB
385  * @tc.desc: WindowAdapter/AddExtensionWindowStageToSCB
386  * @tc.type: FUNC
387  */
HWTEST_F(WindowAdapterTest, AddExtensionWindowStageToSCB, Function | SmallTest | Level2)388 HWTEST_F(WindowAdapterTest, AddExtensionWindowStageToSCB, Function | SmallTest | Level2)
389 {
390     WindowAdapter windowAdapter;
391     windowAdapter.AddExtensionWindowStageToSCB(nullptr, nullptr, 0);
392     auto ret = windowAdapter.InitWMSProxy();
393     EXPECT_TRUE(ret);
394 }
395 
396 /**
397  * @tc.name: RemoveExtensionWindowStageFromSCB
398  * @tc.desc: WindowAdapter/RemoveExtensionWindowStageFromSCB
399  * @tc.type: FUNC
400  */
HWTEST_F(WindowAdapterTest, RemoveExtensionWindowStageFromSCB, Function | SmallTest | Level2)401 HWTEST_F(WindowAdapterTest, RemoveExtensionWindowStageFromSCB, Function | SmallTest | Level2)
402 {
403     WindowAdapter windowAdapter;
404     windowAdapter.RemoveExtensionWindowStageFromSCB(nullptr, nullptr);
405     auto ret = windowAdapter.InitWMSProxy();
406     EXPECT_TRUE(ret);
407 }
408 
409 /**
410  * @tc.name: AddOrRemoveSecureSession
411  * @tc.desc: WindowAdapter/AddOrRemoveSecureSession
412  * @tc.type: FUNC
413  */
HWTEST_F(WindowAdapterTest, AddOrRemoveSecureSession, Function | SmallTest | Level2)414 HWTEST_F(WindowAdapterTest, AddOrRemoveSecureSession, Function | SmallTest | Level2)
415 {
416     int32_t persistentId = 0;
417     WindowAdapter windowAdapter;
418     windowAdapter.AddOrRemoveSecureSession(persistentId, true);
419     auto ret = windowAdapter.InitWMSProxy();
420     ASSERT_EQ(true, ret);
421 }
422 
423 /**
424  * @tc.name: UpdateExtWindowFlags
425  * @tc.desc: WindowAdapter/UpdateExtWindowFlags
426  * @tc.type: FUNC
427  */
HWTEST_F(WindowAdapterTest, UpdateExtWindowFlags, Function | SmallTest | Level2)428 HWTEST_F(WindowAdapterTest, UpdateExtWindowFlags, Function | SmallTest | Level2)
429 {
430     WindowAdapter windowAdapter;
431     sptr<IRemoteObject> token = sptr<IRemoteObjectMocker>::MakeSptr();
432     ASSERT_NE(token, nullptr);
433     windowAdapter.UpdateExtWindowFlags(token, 7, 7);
434     windowAdapter.UpdateExtWindowFlags(nullptr, 7, 7);
435     auto ret = windowAdapter.InitWMSProxy();
436     ASSERT_EQ(true, ret);
437 }
438 
439 /**
440  * @tc.name: GetVisibilityWindowInfo
441  * @tc.desc: WindowAdapter/GetVisibilityWindowInfo
442  * @tc.type: FUNC
443  */
HWTEST_F(WindowAdapterTest, GetVisibilityWindowInfo, Function | SmallTest | Level2)444 HWTEST_F(WindowAdapterTest, GetVisibilityWindowInfo, Function | SmallTest | Level2)
445 {
446     WindowAdapter windowAdapter;
447     std::vector<sptr<WindowVisibilityInfo>> infos;
448     auto ret = windowAdapter.GetVisibilityWindowInfo(infos);
449     windowAdapter.WindowManagerAndSessionRecover();
450     ASSERT_EQ(WMError::WM_OK, ret);
451 }
452 
453 /**
454  * @tc.name: ReregisterWindowManagerAgent
455  * @tc.desc: WindowAdapter/ReregisterWindowManagerAgent
456  * @tc.type: FUNC
457  */
HWTEST_F(WindowAdapterTest, ReregisterWindowManagerAgent, Function | SmallTest | Level2)458 HWTEST_F(WindowAdapterTest, ReregisterWindowManagerAgent, Function | SmallTest | Level2)
459 {
460     WindowAdapter windowAdapter;
461     auto displayId = 0;
462     ModeChangeHotZones hotZones;
463     auto ret = windowAdapter.GetModeChangeHotZones(displayId, hotZones);
464     windowAdapter.ReregisterWindowManagerAgent();
465     ASSERT_EQ(WMError::WM_OK, ret);
466 }
467 
468 /**
469  * @tc.name: UpdateProperty
470  * @tc.desc: WindowAdapter/UpdateProperty
471  * @tc.type: FUNC
472  */
HWTEST_F(WindowAdapterTest, UpdateProperty, Function | SmallTest | Level2)473 HWTEST_F(WindowAdapterTest, UpdateProperty, Function | SmallTest | Level2)
474 {
475     WindowAdapter windowAdapter;
476     sptr<WindowProperty> windowProperty = sptr<WindowProperty>::MakeSptr();
477     PropertyChangeAction action = PropertyChangeAction::ACTION_UPDATE_RECT;
478     auto ret = windowAdapter.UpdateProperty(windowProperty, action);
479     windowAdapter.OnUserSwitch();
480     windowAdapter.ClearWindowAdapter();
481     ASSERT_EQ(WMError::WM_OK, ret);
482 }
483 
484 /**
485  * @tc.name: SetWindowGravity
486  * @tc.desc: WindowAdapter/SetWindowGravity
487  * @tc.type: FUNC
488  */
HWTEST_F(WindowAdapterTest, SetWindowGravity, Function | SmallTest | Level2)489 HWTEST_F(WindowAdapterTest, SetWindowGravity, Function | SmallTest | Level2)
490 {
491     WindowAdapter windowAdapter;
492     windowAdapter.isProxyValid_ = true;
493     windowAdapter.windowManagerServiceProxy_ = nullptr;
494     uint32_t windowId = 0;
495     WindowGravity gravity = WindowGravity::WINDOW_GRAVITY_FLOAT;
496     uint32_t percent = 0;
497     auto ret = windowAdapter.SetWindowGravity(windowId, gravity, percent);
498     ASSERT_EQ(WMError::WM_ERROR_SAMGR, ret);
499 }
500 
501 /**
502  * @tc.name: NotifyWindowTransition
503  * @tc.desc: WindowAdapter/NotifyWindowTransition
504  * @tc.type: FUNC
505  */
HWTEST_F(WindowAdapterTest, NotifyWindowTransition, Function | SmallTest | Level2)506 HWTEST_F(WindowAdapterTest, NotifyWindowTransition, Function | SmallTest | Level2)
507 {
508     WindowAdapter windowAdapter;
509     windowAdapter.isProxyValid_ = true;
510     windowAdapter.windowManagerServiceProxy_ = nullptr;
511     sptr<WindowTransitionInfo> from = nullptr;
512     sptr<WindowTransitionInfo> to = nullptr;
513     auto ret = windowAdapter.NotifyWindowTransition(from, to);
514     ASSERT_EQ(WMError::WM_ERROR_SAMGR, ret);
515 }
516 
517 /**
518  * @tc.name: RaiseToAppTop
519  * @tc.desc: WindowAdapter/RaiseToAppTop
520  * @tc.type: FUNC
521  */
HWTEST_F(WindowAdapterTest, RaiseToAppTop, Function | SmallTest | Level2)522 HWTEST_F(WindowAdapterTest, RaiseToAppTop, Function | SmallTest | Level2)
523 {
524     WindowAdapter windowAdapter;
525     uint32_t windowId = 0;
526 
527     windowAdapter.isProxyValid_ = true;
528     auto ret = windowAdapter.RaiseToAppTop(windowId);
529     ASSERT_EQ(WMError::WM_ERROR_SAMGR, ret);
530     windowAdapter.isProxyValid_ = false;
531 
532     ret = windowAdapter.RaiseToAppTop(windowId);
533     std::shared_ptr<MMI::KeyEvent> event = nullptr;
534     windowAdapter.DispatchKeyEvent(windowId, event);
535     ASSERT_EQ(WMError::WM_OK, ret);
536 }
537 
538 /**
539  * @tc.name: GetSnapshot
540  * @tc.desc: WindowAdapter/GetSnapshot
541  * @tc.type: FUNC
542  */
HWTEST_F(WindowAdapterTest, GetSnapshot, Function | SmallTest | Level2)543 HWTEST_F(WindowAdapterTest, GetSnapshot, Function | SmallTest | Level2)
544 {
545     WindowAdapter windowAdapter;
546     int32_t windowId = 0;
547     auto ret = windowAdapter.GetSnapshot(windowId);
548     ASSERT_EQ(nullptr, ret);
549 }
550 
551 /**
552  * @tc.name: GetWindowAnimationTargets
553  * @tc.desc: WindowAdapter/GetWindowAnimationTargets
554  * @tc.type: FUNC
555  */
HWTEST_F(WindowAdapterTest, GetWindowAnimationTargets, Function | SmallTest | Level2)556 HWTEST_F(WindowAdapterTest, GetWindowAnimationTargets, Function | SmallTest | Level2)
557 {
558     WindowAdapter windowAdapter;
559     std::vector<uint32_t> missionIds;
560     std::vector<sptr<RSWindowAnimationTarget>> targets;
561     auto ret = windowAdapter.GetWindowAnimationTargets(missionIds, targets);
562     if (SceneBoardJudgement::IsSceneBoardEnabled()) {
563         ASSERT_EQ(WMError::WM_OK, ret);
564     } else {
565         ASSERT_EQ(WMError::WM_ERROR_NO_MEM, ret);
566     }
567 }
568 
569 /**
570  * @tc.name: GetMaximizeMode
571  * @tc.desc: WindowAdapter/GetMaximizeMode
572  * @tc.type: FUNC
573  */
HWTEST_F(WindowAdapterTest, GetMaximizeMode, Function | SmallTest | Level2)574 HWTEST_F(WindowAdapterTest, GetMaximizeMode, Function | SmallTest | Level2)
575 {
576     WindowAdapter windowAdapter;
577     windowAdapter.isProxyValid_ = true;
578     windowAdapter.windowManagerServiceProxy_ = nullptr;
579     auto ret = windowAdapter.GetMaximizeMode();
580     ASSERT_EQ(MaximizeMode::MODE_FULL_FILL, ret);
581 }
582 
583 /**
584  * @tc.name: UpdateSessionAvoidAreaListener
585  * @tc.desc: WindowAdapter/UpdateSessionAvoidAreaListener
586  * @tc.type: FUNC
587  */
HWTEST_F(WindowAdapterTest, UpdateSessionAvoidAreaListener, Function | SmallTest | Level2)588 HWTEST_F(WindowAdapterTest, UpdateSessionAvoidAreaListener, Function | SmallTest | Level2)
589 {
590     WindowAdapter windowAdapter;
591     windowAdapter.isProxyValid_ = true;
592     windowAdapter.windowManagerServiceProxy_ = nullptr;
593     int32_t persistentId = 0;
594     bool haveListener = true;
595     auto ret = windowAdapter.UpdateSessionAvoidAreaListener(persistentId, haveListener);
596     ASSERT_EQ(WMError::WM_DO_NOTHING, ret);
597 }
598 
599 /**
600  * @tc.name: UpdateSessionTouchOutsideListener
601  * @tc.desc: WindowAdapter/UpdateSessionTouchOutsideListener
602  * @tc.type: FUNC
603  */
HWTEST_F(WindowAdapterTest, UpdateSessionTouchOutsideListener, Function | SmallTest | Level2)604 HWTEST_F(WindowAdapterTest, UpdateSessionTouchOutsideListener, Function | SmallTest | Level2)
605 {
606     WindowAdapter windowAdapter;
607     windowAdapter.isProxyValid_ = true;
608     windowAdapter.windowManagerServiceProxy_ = nullptr;
609     int32_t persistentId = 0;
610     bool haveListener = true;
611     auto ret = windowAdapter.UpdateSessionTouchOutsideListener(persistentId, haveListener);
612     ASSERT_EQ(WMError::WM_DO_NOTHING, ret);
613 }
614 
615 /**
616  * @tc.name: SetSessionGravity
617  * @tc.desc: WindowAdapter/SetSessionGravity
618  * @tc.type: FUNC
619  */
HWTEST_F(WindowAdapterTest, SetSessionGravity, Function | SmallTest | Level2)620 HWTEST_F(WindowAdapterTest, SetSessionGravity, Function | SmallTest | Level2)
621 {
622     WindowAdapter windowAdapter;
623     int32_t persistentId = 0;
624     SessionGravity gravity = SessionGravity::SESSION_GRAVITY_FLOAT;
625     uint32_t percent = 0;
626     auto ret = windowAdapter.SetSessionGravity(persistentId, gravity, percent);
627     ASSERT_EQ(WMError::WM_OK, ret);
628 }
629 
630 /**
631  * @tc.name: BindDialogSessionTarget
632  * @tc.desc: WindowAdapter/BindDialogSessionTarget
633  * @tc.type: FUNC
634  */
HWTEST_F(WindowAdapterTest, BindDialogSessionTarget, Function | SmallTest | Level2)635 HWTEST_F(WindowAdapterTest, BindDialogSessionTarget, Function | SmallTest | Level2)
636 {
637     WindowAdapter windowAdapter;
638     windowAdapter.isProxyValid_ = true;
639     windowAdapter.windowManagerServiceProxy_ = nullptr;
640     uint64_t persistentId = 0;
641     sptr<IRemoteObject> targetToken = nullptr;
642     auto ret = windowAdapter.BindDialogSessionTarget(persistentId, targetToken);
643     ASSERT_EQ(WMError::WM_DO_NOTHING, ret);
644 }
645 
646 /**
647  * @tc.name: GetHostWindowRect
648  * @tc.desc: WindowAdapter/GetHostWindowRect
649  * @tc.type: FUNC
650  */
HWTEST_F(WindowAdapterTest, GetHostWindowRect, Function | SmallTest | Level2)651 HWTEST_F(WindowAdapterTest, GetHostWindowRect, Function | SmallTest | Level2)
652 {
653     WindowAdapter windowAdapter;
654     int32_t hostWindowId = 0;
655     Rect rect = {0, 0, 0, 0};
656     auto ret = windowAdapter.GetHostWindowRect(hostWindowId, rect);
657     ASSERT_EQ(WMError::WM_OK, ret);
658 }
659 
660 /**
661  * @tc.name: GetWindowStyleType
662  * @tc.desc: WindowAdapter/GetWindowStyleType
663  * @tc.type: FUNC
664  */
HWTEST_F(WindowAdapterTest, GetWindowStyleType, Function | SmallTest | Level2)665 HWTEST_F(WindowAdapterTest, GetWindowStyleType, Function | SmallTest | Level2)
666 {
667     WindowAdapter windowAdapter;
668     WindowStyleType windowStyleType = Rosen::WindowStyleType::WINDOW_STYLE_DEFAULT;
669     windowAdapter.GetWindowStyleType(windowStyleType);
670     ASSERT_EQ(Rosen::WindowStyleType::WINDOW_STYLE_DEFAULT, windowStyleType);
671 }
672 
673 /**
674  * @tc.name: SetProcessWatermark
675  * @tc.desc: WindowAdapter/SetProcessWatermark
676  * @tc.type: FUNC
677  */
HWTEST_F(WindowAdapterTest, SetProcessWatermark, Function | SmallTest | Level2)678 HWTEST_F(WindowAdapterTest, SetProcessWatermark, Function | SmallTest | Level2)
679 {
680     int32_t pid = 1000;
681     const std::string watermarkName = "SetProcessWatermarkName";
682     bool isEnabled = true;
683     WindowAdapter windowAdapter;
684     windowAdapter.SetProcessWatermark(pid, watermarkName, isEnabled);
685     auto ret = windowAdapter.InitWMSProxy();
686     ASSERT_EQ(true, ret);
687 }
688 
689 /**
690  * @tc.name: ReleaseForegroundSessionScreenLock
691  * @tc.desc: WindowAdapter/ReleaseForegroundSessionScreenLock
692  * @tc.type: FUNC
693  */
HWTEST_F(WindowAdapterTest, ReleaseForegroundSessionScreenLock, Function | SmallTest | Level2)694 HWTEST_F(WindowAdapterTest, ReleaseForegroundSessionScreenLock, Function | SmallTest | Level2)
695 {
696     WindowAdapter windowAdapter;
697     auto err = windowAdapter.ReleaseForegroundSessionScreenLock();
698     ASSERT_EQ(err, WMError::WM_OK);
699     auto ret = windowAdapter.InitWMSProxy();
700     ASSERT_EQ(ret, true);
701 }
702 
703 /**
704  * @tc.name: CreateAndConnectSpecificSession
705  * @tc.desc: WindowAdapter/CreateAndConnectSpecificSession
706  * @tc.type: FUNC
707  */
HWTEST_F(WindowAdapterTest, CreateAndConnectSpecificSession, Function | SmallTest | Level2)708 HWTEST_F(WindowAdapterTest, CreateAndConnectSpecificSession, Function | SmallTest | Level2)
709 {
710     WindowAdapter windowAdapter;
711     auto ret = windowAdapter.InitWMSProxy();
712     ASSERT_EQ(ret, true);
713 
714     sptr<ISessionStage> sessionStage;
715     sptr<IWindowEventChannel> eventChannel;
716     std::shared_ptr<RSSurfaceNode> node;
717     sptr<WindowSessionProperty> property;
718     sptr<ISession> session;
719     SystemSessionConfig systemConfig;
720     sptr<IRemoteObject> token;
721     int32_t id = 101; // 101 is persistentId
722     windowAdapter.CreateAndConnectSpecificSession(sessionStage, eventChannel, node, property, id, session,
723         systemConfig, token);
724     ASSERT_EQ(session, nullptr);
725 }
726 
727 /**
728  * @tc.name: IsPcOrPadFreeMultiWindowMode
729  * @tc.desc: WindowAdapter/IsPcOrPadFreeMultiWindowMode
730  * @tc.type: FUNC
731  */
HWTEST_F(WindowAdapterTest, IsPcOrPadFreeMultiWindowMode, Function | SmallTest | Level2)732 HWTEST_F(WindowAdapterTest, IsPcOrPadFreeMultiWindowMode, Function | SmallTest | Level2)
733 {
734     WindowAdapter windowAdapter;
735     bool isPcOrPadFreeMultiWindowMode = false;
736     auto err = windowAdapter.IsPcOrPadFreeMultiWindowMode(isPcOrPadFreeMultiWindowMode);
737     ASSERT_EQ(err, WMError::WM_OK);
738     auto ret = windowAdapter.InitWMSProxy();
739     ASSERT_EQ(ret, true);
740 }
741 }
742 }
743 }