1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include <regex>
18 #include <pointer_event.h>
19 #include <ui/rs_surface_node.h>
20 
21 #include "mock/mock_session_stage.h"
22 #include "mock/mock_window_event_channel.h"
23 #include "mock/mock_pattern_detach_callback.h"
24 #include "session/host/include/extension_session.h"
25 #include "session/host/include/move_drag_controller.h"
26 #include "session/host/include/scene_session.h"
27 #include "session_manager/include/scene_session_manager.h"
28 #include "session/host/include/session.h"
29 #include "session_info.h"
30 #include "process_options.h"
31 #include "key_event.h"
32 #include "wm_common.h"
33 #include "window_manager_hilog.h"
34 #include "accessibility_event_info.h"
35 
36 using namespace testing;
37 using namespace testing::ext;
38 
39 namespace OHOS {
40 namespace Rosen {
41 namespace {
42 const std::string UNDEFINED = "undefined";
43 }
44 
45 class WindowSessionTest2 : public testing::Test {
46 public:
47     static void SetUpTestCase();
48     static void TearDownTestCase();
49     void SetUp() override;
50     void TearDown() override;
51 
52     int32_t GetTaskCount();
53     sptr<SceneSessionManager> ssm_;
54 
55 private:
56     RSSurfaceNode::SharedPtr CreateRSSurfaceNode();
57     sptr<Session> session_ = nullptr;
58     static constexpr uint32_t WAIT_SYNC_IN_NS = 500000;
59 
60     class TLifecycleListener : public ILifecycleListener {
61     public:
~TLifecycleListener()62         virtual ~TLifecycleListener() {}
63         void OnActivation() override {}
64         void OnConnect() override {}
65         void OnForeground() override {}
66         void OnBackground() override {}
67         void OnDisconnect() override {}
68         void OnExtensionDied() override {}
69         void OnExtensionTimeout(int32_t errorCode) override {}
70         void OnAccessibilityEvent(const Accessibility::AccessibilityEventInfo& info,
71             int64_t uiExtensionIdLevel) override {}
72         void OnDrawingCompleted() override {}
73     };
74     std::shared_ptr<TLifecycleListener> lifecycleListener_ = std::make_shared<TLifecycleListener>();
75 
76     sptr<SessionStageMocker> mockSessionStage_ = nullptr;
77     sptr<WindowEventChannelMocker> mockEventChannel_ = nullptr;
78 };
79 
SetUpTestCase()80 void WindowSessionTest2::SetUpTestCase()
81 {
82 }
83 
TearDownTestCase()84 void WindowSessionTest2::TearDownTestCase()
85 {
86 }
87 
SetUp()88 void WindowSessionTest2::SetUp()
89 {
90     SessionInfo info;
91     info.abilityName_ = "testSession1";
92     info.moduleName_ = "testSession2";
93     info.bundleName_ = "testSession3";
94     session_ = new (std::nothrow) Session(info);
95     session_->surfaceNode_ = CreateRSSurfaceNode();
96     EXPECT_NE(nullptr, session_);
97     ssm_ = new SceneSessionManager();
98     session_->SetEventHandler(ssm_->taskScheduler_->GetEventHandler(), ssm_->eventHandler_);
99     auto isScreenLockedCallback = [this]() {
100         return ssm_->IsScreenLocked();
101     };
102     session_->RegisterIsScreenLockedCallback(isScreenLockedCallback);
103 
104     mockSessionStage_ = new (std::nothrow) SessionStageMocker();
105     ASSERT_NE(mockSessionStage_, nullptr);
106 
107     mockEventChannel_ = new (std::nothrow) WindowEventChannelMocker(mockSessionStage_);
108     ASSERT_NE(mockEventChannel_, nullptr);
109 }
110 
TearDown()111 void WindowSessionTest2::TearDown()
112 {
113     session_ = nullptr;
114     usleep(WAIT_SYNC_IN_NS);
115 }
116 
CreateRSSurfaceNode()117 RSSurfaceNode::SharedPtr WindowSessionTest2::CreateRSSurfaceNode()
118 {
119     struct RSSurfaceNodeConfig rsSurfaceNodeConfig;
120     rsSurfaceNodeConfig.SurfaceNodeName = "WindowSessionTest2SurfaceNode";
121     auto surfaceNode = RSSurfaceNode::Create(rsSurfaceNodeConfig);
122     if (surfaceNode == nullptr) {
123         GTEST_LOG_(INFO) << "WindowSessionTest2::CreateRSSurfaceNode surfaceNode is nullptr";
124     }
125     return surfaceNode;
126 }
127 
GetTaskCount()128 int32_t WindowSessionTest2::GetTaskCount()
129 {
130     std::string dumpInfo = session_->handler_->GetEventRunner()->GetEventQueue()->DumpCurrentQueueSize();
131     std::regex pattern("\\d+");
132     std::smatch matches;
133     int32_t taskNum = 0;
134     while (std::regex_search(dumpInfo, matches, pattern)) {
135         taskNum += std::stoi(matches.str());
136         dumpInfo = matches.suffix();
137     }
138     return taskNum;
139 }
140 
141 namespace {
142 /**
143  * @tc.name: SetParentSession
144  * @tc.desc: SetParentSession Test
145  * @tc.type: FUNC
146  */
HWTEST_F(WindowSessionTest2, SetParentSession, Function | SmallTest | Level2)147 HWTEST_F(WindowSessionTest2, SetParentSession, Function | SmallTest | Level2)
148 {
149     ASSERT_NE(session_, nullptr);
150     SessionInfo info;
151     info.abilityName_ = "testSession1";
152     info.moduleName_ = "testSession2";
153     info.bundleName_ = "testSession3";
154     sptr<Session> session = new (std::nothrow) Session(info);
155     session_->SetParentSession(session);
156 
157     session_->property_ = new WindowSessionProperty();
158     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
159 }
160 
161 /**
162  * @tc.name: BindDialogToParentSession
163  * @tc.desc: BindDialogToParentSession Test
164  * @tc.type: FUNC
165  */
HWTEST_F(WindowSessionTest2, BindDialogToParentSession, Function | SmallTest | Level2)166 HWTEST_F(WindowSessionTest2, BindDialogToParentSession, Function | SmallTest | Level2)
167 {
168     ASSERT_NE(session_, nullptr);
169     SessionInfo info;
170     info.abilityName_ = "testSession1";
171     info.moduleName_ = "testSession2";
172     info.bundleName_ = "testSession3";
173     sptr<Session> session = new (std::nothrow) Session(info);
174     session_->BindDialogToParentSession(session);
175 
176     sptr<Session> session1 = new (std::nothrow) Session(info);
177     ASSERT_NE(session1, nullptr);
178     session1->persistentId_ = 33;
179     session1->SetParentSession(session_);
180     session1->state_ = SessionState::STATE_ACTIVE;
181     session_->dialogVec_.push_back(session1);
182 
183     sptr<Session> session2 = new (std::nothrow) Session(info);
184     ASSERT_NE(session2, nullptr);
185     session2->persistentId_ = 34;
186     session2->SetParentSession(session_);
187     session2->state_ = SessionState::STATE_ACTIVE;
188     session_->dialogVec_.push_back(session2);
189     session_->BindDialogToParentSession(session1);
190 
191     session_->property_ = new WindowSessionProperty();
192     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
193 }
194 
195 /**
196  * @tc.name: RemoveDialogToParentSession
197  * @tc.desc: RemoveDialogToParentSession Test
198  * @tc.type: FUNC
199  */
HWTEST_F(WindowSessionTest2, RemoveDialogToParentSession, Function | SmallTest | Level2)200 HWTEST_F(WindowSessionTest2, RemoveDialogToParentSession, Function | SmallTest | Level2)
201 {
202     ASSERT_NE(session_, nullptr);
203     SessionInfo info;
204     info.abilityName_ = "testSession1";
205     info.moduleName_ = "testSession2";
206     info.bundleName_ = "testSession3";
207     sptr<Session> session = new (std::nothrow) Session(info);
208     session_->RemoveDialogToParentSession(session);
209 
210     sptr<Session> session1 = new (std::nothrow) Session(info);
211     ASSERT_NE(session1, nullptr);
212     session1->persistentId_ = 33;
213     session1->SetParentSession(session_);
214     session1->state_ = SessionState::STATE_ACTIVE;
215     session_->dialogVec_.push_back(session1);
216 
217     sptr<Session> session2 = new (std::nothrow) Session(info);
218     ASSERT_NE(session2, nullptr);
219     session2->persistentId_ = 34;
220     session2->SetParentSession(session_);
221     session2->state_ = SessionState::STATE_ACTIVE;
222     session_->dialogVec_.push_back(session2);
223     session_->RemoveDialogToParentSession(session1);
224 
225     session_->property_ = new WindowSessionProperty();
226     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
227 }
228 
229 /**
230  * @tc.name: TransferPointerEvent01
231  * @tc.desc: !IsSystemSession() && !IsSessionValid() is true
232  * @tc.type: FUNC
233  */
HWTEST_F(WindowSessionTest2, TransferPointerEvent01, Function | SmallTest | Level2)234 HWTEST_F(WindowSessionTest2, TransferPointerEvent01, Function | SmallTest | Level2)
235 {
236     ASSERT_NE(session_, nullptr);
237 
238     session_->sessionInfo_.isSystem_ = false;
239     session_->state_ = SessionState::STATE_DISCONNECT;
240 
241     std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
242     ASSERT_EQ(WSError::WS_ERROR_INVALID_SESSION, session_->TransferPointerEvent(pointerEvent));
243 }
244 
245 /**
246  * @tc.name: TransferPointerEvent02
247  * @tc.desc: pointerEvent is nullptr
248  * @tc.type: FUNC
249  */
HWTEST_F(WindowSessionTest2, TransferPointerEvent02, Function | SmallTest | Level2)250 HWTEST_F(WindowSessionTest2, TransferPointerEvent02, Function | SmallTest | Level2)
251 {
252     ASSERT_NE(session_, nullptr);
253     session_->sessionInfo_.isSystem_ = true;
254 
255     std::shared_ptr<MMI::PointerEvent> pointerEvent = nullptr;
256     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferPointerEvent(pointerEvent));
257 }
258 
259 /**
260  * @tc.name: TransferPointerEvent03
261  * @tc.desc: WindowType is WINDOW_TYPE_APP_MAIN_WINDOW, CheckDialogOnForeground() is true
262  * @tc.type: FUNC
263  */
HWTEST_F(WindowSessionTest2, TransferPointerEvent03, Function | SmallTest | Level2)264 HWTEST_F(WindowSessionTest2, TransferPointerEvent03, Function | SmallTest | Level2)
265 {
266     ASSERT_NE(session_, nullptr);
267 
268     session_->sessionInfo_.isSystem_ = true;
269 
270     std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
271     ASSERT_NE(pointerEvent, nullptr);
272 
273     session_->property_ = new WindowSessionProperty();
274     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_MAIN_WINDOW);
275 
276     SessionInfo info;
277     info.abilityName_ = "dialogAbilityName";
278     info.moduleName_ = "dialogModuleName";
279     info.bundleName_ = "dialogBundleName";
280     sptr<Session> dialogSession = new (std::nothrow) Session(info);
281     ASSERT_NE(dialogSession, nullptr);
282     dialogSession->state_ = SessionState::STATE_ACTIVE;
283     session_->dialogVec_.push_back(dialogSession);
284 
285     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferPointerEvent(pointerEvent));
286 }
287 
288 /**
289  * @tc.name: TransferPointerEvent04
290  * @tc.desc: parentSession_ && parentSession_->CheckDialogOnForeground() is true
291  * @tc.type: FUNC
292  */
HWTEST_F(WindowSessionTest2, TransferPointerEvent04, Function | SmallTest | Level2)293 HWTEST_F(WindowSessionTest2, TransferPointerEvent04, Function | SmallTest | Level2)
294 {
295     ASSERT_NE(session_, nullptr);
296 
297     session_->sessionInfo_.isSystem_ = true;
298 
299     std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
300     ASSERT_NE(pointerEvent, nullptr);
301 
302     session_->property_ = new WindowSessionProperty();
303     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_SUB_WINDOW);
304 
305     SessionInfo info;
306     info.abilityName_ = "dialogAbilityName";
307     info.moduleName_ = "dialogModuleName";
308     info.bundleName_ = "dialogBundleName";
309     sptr<Session> dialogSession = new (std::nothrow) Session(info);
310     ASSERT_NE(dialogSession, nullptr);
311     dialogSession->state_ = SessionState::STATE_ACTIVE;
312     session_->dialogVec_.push_back(dialogSession);
313     session_->parentSession_ = session_;
314 
315     ASSERT_EQ(WSError::WS_ERROR_INVALID_PERMISSION, session_->TransferPointerEvent(pointerEvent));
316 }
317 
318 /**
319  * @tc.name: TransferPointerEvent05
320  * @tc.desc: windowEventChannel_ is nullptr
321  * @tc.type: FUNC
322  */
HWTEST_F(WindowSessionTest2, TransferPointerEvent05, Function | SmallTest | Level2)323 HWTEST_F(WindowSessionTest2, TransferPointerEvent05, Function | SmallTest | Level2)
324 {
325     ASSERT_NE(session_, nullptr);
326 
327     session_->sessionInfo_.isSystem_ = true;
328 
329     std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
330 
331     session_->property_ = new WindowSessionProperty();
332     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_SCENE_BOARD);
333 
334     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferPointerEvent(pointerEvent));
335 }
336 
337 /**
338  * @tc.name: TransferPointerEvent06
339  * @tc.desc: windowEventChannel_ is not nullptr
340  * @tc.type: FUNC
341  */
HWTEST_F(WindowSessionTest2, TransferPointerEvent06, Function | SmallTest | Level2)342 HWTEST_F(WindowSessionTest2, TransferPointerEvent06, Function | SmallTest | Level2)
343 {
344     ASSERT_NE(session_, nullptr);
345 
346     session_->sessionInfo_.isSystem_ = true;
347 
348     std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
349     ASSERT_NE(pointerEvent, nullptr);
350 
351     session_->property_ = new WindowSessionProperty();
352     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_SCENE_BOARD);
353     session_->windowEventChannel_ = mockEventChannel_;
354 
355     auto needNotifyClient = true;
356     session_->TransferPointerEvent(pointerEvent, needNotifyClient);
357 
358     needNotifyClient = false;
359     pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE);
360     ASSERT_EQ(WSError::WS_OK, session_->TransferPointerEvent(pointerEvent, needNotifyClient));
361 
362     pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_PULL_MOVE);
363     ASSERT_EQ(WSError::WS_OK, session_->TransferPointerEvent(pointerEvent, needNotifyClient));
364 
365     pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_ENTER_WINDOW);
366     ASSERT_EQ(WSError::WS_OK, session_->TransferPointerEvent(pointerEvent, needNotifyClient));
367 
368     pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_LEAVE_WINDOW);
369     ASSERT_EQ(WSError::WS_OK, session_->TransferPointerEvent(pointerEvent, needNotifyClient));
370 
371     pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_PULL_IN_WINDOW);
372     ASSERT_EQ(WSError::WS_OK, session_->TransferPointerEvent(pointerEvent, needNotifyClient));
373 
374     pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_PULL_OUT_WINDOW);
375     ASSERT_EQ(WSError::WS_OK, session_->TransferPointerEvent(pointerEvent, needNotifyClient));
376 }
377 
378 /**
379  * @tc.name: TransferKeyEvent01
380  * @tc.desc: !IsSystemSession() && !IsSessionVaild() is true
381  * @tc.type: FUNC
382  */
HWTEST_F(WindowSessionTest2, TransferKeyEvent01, Function | SmallTest | Level2)383 HWTEST_F(WindowSessionTest2, TransferKeyEvent01, Function | SmallTest | Level2)
384 {
385     ASSERT_NE(session_, nullptr);
386 
387     session_->sessionInfo_.isSystem_ = false;
388     session_->state_ = SessionState::STATE_DISCONNECT;
389 
390     std::shared_ptr<MMI::KeyEvent> keyEvent = MMI::KeyEvent::Create();
391     ASSERT_NE(keyEvent, nullptr);
392     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferKeyEvent(keyEvent));
393 
394     session_->windowEventChannel_ = mockEventChannel_;
395     ASSERT_EQ(WSError::WS_OK, session_->TransferKeyEvent(keyEvent));
396 }
397 
398 /**
399  * @tc.name: TransferKeyEvent02
400  * @tc.desc: keyEvent is nullptr
401  * @tc.type: FUNC
402  */
HWTEST_F(WindowSessionTest2, TransferKeyEvent02, Function | SmallTest | Level2)403 HWTEST_F(WindowSessionTest2, TransferKeyEvent02, Function | SmallTest | Level2)
404 {
405     ASSERT_NE(session_, nullptr);
406 
407     session_->sessionInfo_.isSystem_ = true;
408 
409     std::shared_ptr<MMI::KeyEvent> keyEvent = MMI::KeyEvent::Create();
410     ASSERT_NE(keyEvent, nullptr);
411     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferKeyEvent(keyEvent));
412 }
413 
414 /**
415  * @tc.name: TransferKeyEvent03
416  * @tc.desc: WindowType is WINDOW_TYPE_APP_MAIN_WINDOW, CheckDialogOnForeground() is true
417  * @tc.type: FUNC
418  */
HWTEST_F(WindowSessionTest2, TransferKeyEvent03, Function | SmallTest | Level2)419 HWTEST_F(WindowSessionTest2, TransferKeyEvent03, Function | SmallTest | Level2)
420 {
421     ASSERT_NE(session_, nullptr);
422 
423     session_->sessionInfo_.isSystem_ = true;
424 
425     auto keyEvent = MMI::KeyEvent::Create();
426     ASSERT_NE(keyEvent, nullptr);
427 
428     session_->property_ = new WindowSessionProperty();
429     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_MAIN_WINDOW);
430 
431     SessionInfo info;
432     info.abilityName_ = "dialogAbilityName";
433     info.moduleName_ = "dialogModuleName";
434     info.bundleName_ = "dialogBundleName";
435     sptr<Session> dialogSession = new (std::nothrow) Session(info);
436     ASSERT_NE(dialogSession, nullptr);
437     dialogSession->state_ = SessionState::STATE_ACTIVE;
438     session_->dialogVec_.push_back(dialogSession);
439 
440     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferKeyEvent(keyEvent));
441 }
442 
443 /**
444  * @tc.name: TransferKeyEvent04
445  * @tc.desc: parentSession_ && parentSession_->CheckDialogOnForeground() is true
446  * @tc.type: FUNC
447  */
HWTEST_F(WindowSessionTest2, TransferKeyEvent04, Function | SmallTest | Level2)448 HWTEST_F(WindowSessionTest2, TransferKeyEvent04, Function | SmallTest | Level2)
449 {
450     ASSERT_NE(session_, nullptr);
451 
452     session_->sessionInfo_.isSystem_ = true;
453 
454     auto keyEvent = MMI::KeyEvent::Create();
455     ASSERT_NE(keyEvent, nullptr);
456 
457     session_->property_ = new WindowSessionProperty();
458     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_SUB_WINDOW);
459 
460     SessionInfo info;
461     info.abilityName_ = "dialogAbilityName";
462     info.moduleName_ = "dialogModuleName";
463     info.bundleName_ = "dialogBundleName";
464     sptr<Session> dialogSession = new (std::nothrow) Session(info);
465     ASSERT_NE(dialogSession, nullptr);
466     dialogSession->state_ = SessionState::STATE_ACTIVE;
467     session_->dialogVec_.push_back(dialogSession);
468     session_->parentSession_ = session_;
469 
470     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferKeyEvent(keyEvent));
471 }
472 
473 /**
474  * @tc.name: TransferKeyEvent05
475  * @tc.desc: windowEventChannel_ is nullptr
476  * @tc.type: FUNC
477  */
HWTEST_F(WindowSessionTest2, TransferKeyEvent05, Function | SmallTest | Level2)478 HWTEST_F(WindowSessionTest2, TransferKeyEvent05, Function | SmallTest | Level2)
479 {
480     ASSERT_NE(session_, nullptr);
481 
482     session_->sessionInfo_.isSystem_ = true;
483 
484     auto keyEvent = MMI::KeyEvent::Create();
485     ASSERT_NE(keyEvent, nullptr);
486 
487     session_->property_ = new WindowSessionProperty();
488     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_SCENE_BOARD);
489 
490     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferKeyEvent(keyEvent));
491 }
492 
493 /**
494  * @tc.name: TransferBackPressedEventForConsumed01
495  * @tc.desc: windowEventChannel_ is nullptr
496  * @tc.type: FUNC
497  */
HWTEST_F(WindowSessionTest2, TransferBackPressedEventForConsumed01, Function | SmallTest | Level2)498 HWTEST_F(WindowSessionTest2, TransferBackPressedEventForConsumed01, Function | SmallTest | Level2)
499 {
500     ASSERT_NE(session_, nullptr);
501 
502     session_->windowEventChannel_ = nullptr;
503 
504     bool isConsumed = false;
505     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferBackPressedEventForConsumed(isConsumed));
506 }
507 
508 /**
509  * @tc.name: TransferFocusActiveEvent01
510  * @tc.desc: windowEventChannel_ is nullptr
511  * @tc.type: FUNC
512  */
HWTEST_F(WindowSessionTest2, TransferFocusActiveEvent01, Function | SmallTest | Level2)513 HWTEST_F(WindowSessionTest2, TransferFocusActiveEvent01, Function | SmallTest | Level2)
514 {
515     ASSERT_NE(session_, nullptr);
516 
517     session_->windowEventChannel_ = nullptr;
518 
519     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferFocusActiveEvent(false));
520 }
521 
522 /**
523  * @tc.name: TransferFocusStateEvent01
524  * @tc.desc: windowEventChannel_ is nullptr
525  * @tc.type: FUNC
526  */
HWTEST_F(WindowSessionTest2, TransferFocusStateEvent01, Function | SmallTest | Level2)527 HWTEST_F(WindowSessionTest2, TransferFocusStateEvent01, Function | SmallTest | Level2)
528 {
529     ASSERT_NE(session_, nullptr);
530 
531     session_->windowEventChannel_ = nullptr;
532 
533     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferFocusStateEvent(false));
534 }
535 
536 /**
537  * @tc.name: Snapshot01
538  * @tc.desc: ret is false
539  * @tc.type: FUNC
540  */
HWTEST_F(WindowSessionTest2, Snapshot01, Function | SmallTest | Level2)541 HWTEST_F(WindowSessionTest2, Snapshot01, Function | SmallTest | Level2)
542 {
543     ASSERT_NE(session_, nullptr);
544 
545     session_->surfaceNode_ = nullptr;
546 
547     ASSERT_EQ(nullptr, session_->Snapshot());
548 }
549 
550 /**
551  * @tc.name: SaveSnapshot
552  * @tc.desc: SaveSnapshot Test
553  * @tc.type: FUNC
554  */
HWTEST_F(WindowSessionTest2, SaveSnapshot, Function | SmallTest | Level2)555 HWTEST_F(WindowSessionTest2, SaveSnapshot, Function | SmallTest | Level2)
556 {
557     ASSERT_NE(session_, nullptr);
558 
559     session_->scenePersistence_ = nullptr;
560     session_->snapshot_ = nullptr;
561     session_->SaveSnapshot(true);
562     EXPECT_EQ(session_->snapshot_, nullptr);
563 
564     session_->scenePersistence_ = new ScenePersistence(session_->sessionInfo_.bundleName_, session_->persistentId_);
565 
566     session_->SaveSnapshot(false);
567     ASSERT_EQ(session_->snapshot_, nullptr);
568 
569     session_->SaveSnapshot(true);
570     ASSERT_EQ(session_->snapshot_, nullptr);
571 }
572 
573 /**
574  * @tc.name: SetSessionStateChangeListenser
575  * @tc.desc: SetSessionStateChangeListenser Test
576  * @tc.type: FUNC
577  */
HWTEST_F(WindowSessionTest2, SetSessionStateChangeListenser, Function | SmallTest | Level2)578 HWTEST_F(WindowSessionTest2, SetSessionStateChangeListenser, Function | SmallTest | Level2)
579 {
580     ASSERT_NE(session_, nullptr);
581 
582     NotifySessionStateChangeFunc func = nullptr;
583     session_->SetSessionStateChangeListenser(func);
584 
585     session_->state_ = SessionState::STATE_DISCONNECT;
586     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
587 }
588 
589 /**
590  * @tc.name: SetSessionFocusableChangeListener
591  * @tc.desc: SetSessionFocusableChangeListener Test
592  * @tc.type: FUNC
593  */
HWTEST_F(WindowSessionTest2, SetSessionFocusableChangeListener, Function | SmallTest | Level2)594 HWTEST_F(WindowSessionTest2, SetSessionFocusableChangeListener, Function | SmallTest | Level2)
595 {
596     ASSERT_NE(session_, nullptr);
597 
598     NotifySessionFocusableChangeFunc func = [](const bool isFocusable)
599     {
600     };
601     session_->SetSessionFocusableChangeListener(func);
602 
603     session_->state_ = SessionState::STATE_DISCONNECT;
604     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
605 }
606 
607 /**
608  * @tc.name: SetSessionTouchableChangeListener
609  * @tc.desc: SetSessionTouchableChangeListener Test
610  * @tc.type: FUNC
611  */
HWTEST_F(WindowSessionTest2, SetSessionTouchableChangeListener, Function | SmallTest | Level2)612 HWTEST_F(WindowSessionTest2, SetSessionTouchableChangeListener, Function | SmallTest | Level2)
613 {
614     ASSERT_NE(session_, nullptr);
615 
616     NotifySessionTouchableChangeFunc func = [](const bool touchable)
617     {
618     };
619     session_->SetSessionTouchableChangeListener(func);
620 
621     session_->state_ = SessionState::STATE_DISCONNECT;
622     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
623 }
624 
625 /**
626  * @tc.name: SetSessionInfoLockedStateChangeListener
627  * @tc.desc: SetSessionInfoLockedStateChangeListener Test
628  * @tc.type: FUNC
629  */
HWTEST_F(WindowSessionTest2, SetSessionInfoLockedStateChangeListener, Function | SmallTest | Level2)630 HWTEST_F(WindowSessionTest2, SetSessionInfoLockedStateChangeListener, Function | SmallTest | Level2)
631 {
632     ASSERT_NE(session_, nullptr);
633 
634     NotifySessionTouchableChangeFunc func = [](const bool lockedState)
635     {
636     };
637     session_->SetSessionInfoLockedStateChangeListener(func);
638 
639     session_->SetSessionInfoLockedState(true);
640     ASSERT_EQ(true, session_->sessionInfo_.lockedState);
641 }
642 
643 /**
644  * @tc.name: SetClickListener
645  * @tc.desc: SetClickListener Test
646  * @tc.type: FUNC
647  */
HWTEST_F(WindowSessionTest2, SetClickListener, Function | SmallTest | Level2)648 HWTEST_F(WindowSessionTest2, SetClickListener, Function | SmallTest | Level2)
649 {
650     ASSERT_NE(session_, nullptr);
651 
652     NotifyClickFunc func = nullptr;
653     session_->SetClickListener(func);
654 
655     session_->state_ = SessionState::STATE_DISCONNECT;
656     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
657 }
658 
659 /**
660  * @tc.name: UpdateFocus01
661  * @tc.desc: isFocused_ equal isFocused
662  * @tc.type: FUNC
663  */
HWTEST_F(WindowSessionTest2, UpdateFocus01, Function | SmallTest | Level2)664 HWTEST_F(WindowSessionTest2, UpdateFocus01, Function | SmallTest | Level2)
665 {
666     ASSERT_NE(session_, nullptr);
667 
668     bool isFocused = session_->isFocused_;
669     ASSERT_EQ(WSError::WS_DO_NOTHING, session_->UpdateFocus(isFocused));
670 }
671 
672 /**
673  * @tc.name: UpdateFocus02
674  * @tc.desc: isFocused_ not equal isFocused, IsSessionValid() return false
675  * @tc.type: FUNC
676  */
HWTEST_F(WindowSessionTest2, UpdateFocus02, Function | SmallTest | Level2)677 HWTEST_F(WindowSessionTest2, UpdateFocus02, Function | SmallTest | Level2)
678 {
679     ASSERT_NE(session_, nullptr);
680 
681     session_->sessionInfo_.isSystem_ = true;
682 
683     bool isFocused = session_->isFocused_;
684     ASSERT_EQ(WSError::WS_OK, session_->UpdateFocus(!isFocused));
685 }
686 
687 /**
688  * @tc.name: UpdateWindowMode01
689  * @tc.desc: IsSessionValid() return false
690  * @tc.type: FUNC
691  */
HWTEST_F(WindowSessionTest2, UpdateWindowMode01, Function | SmallTest | Level2)692 HWTEST_F(WindowSessionTest2, UpdateWindowMode01, Function | SmallTest | Level2)
693 {
694     ASSERT_NE(session_, nullptr);
695 
696     session_->property_ = nullptr;
697 
698     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->UpdateWindowMode(WindowMode::WINDOW_MODE_UNDEFINED));
699 }
700 
701 /**
702  * @tc.name: NotifyForegroundInteractiveStatus
703  * @tc.desc: NotifyForegroundInteractiveStatus Test
704  * @tc.type: FUNC
705  */
HWTEST_F(WindowSessionTest2, NotifyForegroundInteractiveStatus, Function | SmallTest | Level2)706 HWTEST_F(WindowSessionTest2, NotifyForegroundInteractiveStatus, Function | SmallTest | Level2)
707 {
708     ASSERT_NE(session_, nullptr);
709 
710     session_->sessionStage_ = nullptr;
711     bool interactive = true;
712     session_->NotifyForegroundInteractiveStatus(interactive);
713 
714     sptr<SessionStageMocker> mockSessionStage = new(std::nothrow) SessionStageMocker();
715     ASSERT_NE(mockSessionStage, nullptr);
716     session_->sessionStage_ = mockSessionStage;
717     session_->state_ = SessionState::STATE_FOREGROUND;
718     interactive = false;
719     session_->NotifyForegroundInteractiveStatus(interactive);
720 
721     session_->state_ = SessionState::STATE_DISCONNECT;
722     ASSERT_EQ(WSError::WS_OK, session_->SetFocusable(false));
723 }
724 
725 /**
726  * @tc.name: SetEventHandler001
727  * @tc.desc: SetEventHandler Test
728  * @tc.type: FUNC
729  */
HWTEST_F(WindowSessionTest2, SetEventHandler001, Function | SmallTest | Level2)730 HWTEST_F(WindowSessionTest2, SetEventHandler001, Function | SmallTest | Level2)
731 {
732     ASSERT_NE(session_, nullptr);
733     int res = 0;
734     std::shared_ptr<AppExecFwk::EventHandler> handler = nullptr;
735     session_->SetEventHandler(handler);
736     ASSERT_EQ(res, 0);
737 }
738 
739 /**
740  * @tc.name: PostTask002
741  * @tc.desc: PostTask Test
742  * @tc.type: FUNC
743  */
HWTEST_F(WindowSessionTest2, PostTask002, Function | SmallTest | Level2)744 HWTEST_F(WindowSessionTest2, PostTask002, Function | SmallTest | Level2)
745 {
746     ASSERT_NE(session_, nullptr);
747     int32_t persistentId = 0;
748     sptr<WindowSessionProperty> property = new (std::nothrow) WindowSessionProperty();
749     if (property == nullptr) {
750         return;
751     }
752     property->SetPersistentId(persistentId);
753     int32_t res = session_->GetPersistentId();
754     ASSERT_EQ(res, 0);
755 }
756 
757 /**
758  * @tc.name: GetSurfaceNode003
759  * @tc.desc: GetSurfaceNode Test
760  * @tc.type: FUNC
761  */
HWTEST_F(WindowSessionTest2, GetSurfaceNode003, Function | SmallTest | Level2)762 HWTEST_F(WindowSessionTest2, GetSurfaceNode003, Function | SmallTest | Level2)
763 {
764     ASSERT_NE(session_, nullptr);
765     session_->surfaceNode_ = nullptr;
766     std::shared_ptr<RSSurfaceNode> res = session_->GetSurfaceNode();
767     ASSERT_EQ(res, nullptr);
768 }
769 
770 /**
771  * @tc.name: GetLeashWinSurfaceNode004
772  * @tc.desc: GetLeashWinSurfaceNode Test
773  * @tc.type: FUNC
774  */
HWTEST_F(WindowSessionTest2, GetLeashWinSurfaceNode004, Function | SmallTest | Level2)775 HWTEST_F(WindowSessionTest2, GetLeashWinSurfaceNode004, Function | SmallTest | Level2)
776 {
777     ASSERT_NE(session_, nullptr);
778     session_->leashWinSurfaceNode_ = nullptr;
779     std::shared_ptr<RSSurfaceNode> res = session_->GetLeashWinSurfaceNode();
780     ASSERT_EQ(res, nullptr);
781 }
782 
783 /**
784  * @tc.name: SetSessionInfoAncoSceneState005
785  * @tc.desc: SetSessionInfoAncoSceneState Test
786  * @tc.type: FUNC
787  */
HWTEST_F(WindowSessionTest2, SetSessionInfoAncoSceneState005, Function | SmallTest | Level2)788 HWTEST_F(WindowSessionTest2, SetSessionInfoAncoSceneState005, Function | SmallTest | Level2)
789 {
790     ASSERT_NE(session_, nullptr);
791     int res = 0;
792     int32_t ancoSceneState = 0;
793     session_->SetSessionInfoAncoSceneState(ancoSceneState);
794     ASSERT_EQ(res, 0);
795 }
796 
797 /**
798  * @tc.name: SetSessionInfoTime006
799  * @tc.desc: SetSessionInfoTime Test
800  * @tc.type: FUNC
801  */
HWTEST_F(WindowSessionTest2, SetSessionInfoTime006, Function | SmallTest | Level2)802 HWTEST_F(WindowSessionTest2, SetSessionInfoTime006, Function | SmallTest | Level2)
803 {
804     ASSERT_NE(session_, nullptr);
805     int res = 0;
806     std::string time = "";
807     session_->SetSessionInfoTime(time);
808     ASSERT_EQ(res, 0);
809 }
810 
811 /**
812  * @tc.name: SetSessionInfoAbilityInfo007
813  * @tc.desc: SetSessionInfoAbilityInfo Test
814  * @tc.type: FUNC
815  */
HWTEST_F(WindowSessionTest2, SetSessionInfoAbilityInfo007, Function | SmallTest | Level2)816 HWTEST_F(WindowSessionTest2, SetSessionInfoAbilityInfo007, Function | SmallTest | Level2)
817 {
818     ASSERT_NE(session_, nullptr);
819     int res = 0;
820     std::shared_ptr<AppExecFwk::AbilityInfo> abilityInfo = nullptr;
821     session_->SetSessionInfoAbilityInfo(abilityInfo);
822     ASSERT_EQ(res, 0);
823 }
824 
825 /**
826  * @tc.name: SetSessionInfoWant008
827  * @tc.desc: SetSessionInfoWant Test
828  * @tc.type: FUNC
829  */
HWTEST_F(WindowSessionTest2, SetSessionInfoWant008, Function | SmallTest | Level2)830 HWTEST_F(WindowSessionTest2, SetSessionInfoWant008, Function | SmallTest | Level2)
831 {
832     ASSERT_NE(session_, nullptr);
833     int res = 0;
834     std::shared_ptr<AAFwk::Want> want = nullptr;
835     session_->SetSessionInfoWant(want);
836     ASSERT_EQ(res, 0);
837 }
838 
839 /**
840  * @tc.name: SetSessionInfoProcessOptions
841  * @tc.desc: SetSessionInfoProcessOptions Test
842  * @tc.type: FUNC
843  */
HWTEST_F(WindowSessionTest2, SetSessionInfoProcessOptions, Function | SmallTest | Level2)844 HWTEST_F(WindowSessionTest2, SetSessionInfoProcessOptions, Function | SmallTest | Level2)
845 {
846     ASSERT_NE(session_, nullptr);
847     std::shared_ptr<AAFwk::ProcessOptions> processOptions = std::make_shared<AAFwk::ProcessOptions>();
848     session_->SetSessionInfoProcessOptions(processOptions);
849     ASSERT_EQ(processOptions, session_->sessionInfo_.processOptions);
850 }
851 
852 /**
853  * @tc.name: SetSessionInfoPersistentId009
854  * @tc.desc: SetSessionInfoPersistentId Test
855  * @tc.type: FUNC
856  */
HWTEST_F(WindowSessionTest2, SetSessionInfoPersistentId009, Function | SmallTest | Level2)857 HWTEST_F(WindowSessionTest2, SetSessionInfoPersistentId009, Function | SmallTest | Level2)
858 {
859     ASSERT_NE(session_, nullptr);
860     int res = 0;
861     int32_t persistentId = 0;
862     session_->SetSessionInfoPersistentId(persistentId);
863     ASSERT_EQ(res, 0);
864 }
865 
866 /**
867  * @tc.name: SetSessionInfoCallerPersistentId010
868  * @tc.desc: SetSessionInfoCallerPersistentId Test
869  * @tc.type: FUNC
870  */
HWTEST_F(WindowSessionTest2, SetSessionInfoCallerPersistentId010, Function | SmallTest | Level2)871 HWTEST_F(WindowSessionTest2, SetSessionInfoCallerPersistentId010, Function | SmallTest | Level2)
872 {
873     ASSERT_NE(session_, nullptr);
874     int res = 0;
875     int32_t callerPersistentId = 0;
876     session_->SetSessionInfoCallerPersistentId(callerPersistentId);
877     ASSERT_EQ(res, 0);
878 }
879 
880 /**
881  * @tc.name: PostExportTask011
882  * @tc.desc: PostExportTask Test
883  * @tc.type: FUNC
884  */
HWTEST_F(WindowSessionTest2, PostExportTask011, Function | SmallTest | Level2)885 HWTEST_F(WindowSessionTest2, PostExportTask011, Function | SmallTest | Level2)
886 {
887     ASSERT_NE(session_, nullptr);
888     int32_t persistentId = 0;
889     sptr<WindowSessionProperty> property = new (std::nothrow) WindowSessionProperty();
890     if (property == nullptr) {
891         return;
892     }
893     property->SetPersistentId(persistentId);
894     int32_t ret = session_->GetPersistentId();
895     ASSERT_EQ(ret, 0);
896 }
897 
898 /**
899  * @tc.name: GetPersistentId012
900  * @tc.desc: GetPersistentId Test
901  * @tc.type: FUNC
902  */
HWTEST_F(WindowSessionTest2, GetPersistentId012, Function | SmallTest | Level2)903 HWTEST_F(WindowSessionTest2, GetPersistentId012, Function | SmallTest | Level2)
904 {
905     ASSERT_NE(session_, nullptr);
906     int32_t persistentId = 0;
907     sptr<WindowSessionProperty> property = new (std::nothrow) WindowSessionProperty();
908     if (property == nullptr) {
909         return;
910     }
911     property->SetPersistentId(persistentId);
912     int32_t ret = session_->GetPersistentId();
913     ASSERT_EQ(ret, 0);
914 }
915 
916 /**
917  * @tc.name: SetLeashWinSurfaceNode013
918  * @tc.desc: SetLeashWinSurfaceNode Test
919  * @tc.type: FUNC
920  */
HWTEST_F(WindowSessionTest2, SetLeashWinSurfaceNode013, Function | SmallTest | Level2)921 HWTEST_F(WindowSessionTest2, SetLeashWinSurfaceNode013, Function | SmallTest | Level2)
922 {
923     ASSERT_NE(session_, nullptr);
924     auto leashWinSurfaceNode = WindowSessionTest2::CreateRSSurfaceNode();
925     session_->SetLeashWinSurfaceNode(leashWinSurfaceNode);
926     ASSERT_EQ(session_->leashWinSurfaceNode_, leashWinSurfaceNode);
927 }
928 
929 /**
930  * @tc.name: SetSessionInfoContinueState014
931  * @tc.desc: SetSessionInfoContinueState Test
932  * @tc.type: FUNC
933  */
HWTEST_F(WindowSessionTest2, SetSessionInfoContinueState014, Function | SmallTest | Level2)934 HWTEST_F(WindowSessionTest2, SetSessionInfoContinueState014, Function | SmallTest | Level2)
935 {
936     ASSERT_NE(session_, nullptr);
937     enum ContinueState state;
938     state = CONTINUESTATE_UNKNOWN;
939     session_->SetSessionInfoContinueState(state);
940     ASSERT_EQ(session_->sessionInfo_.continueState, state);
941 }
942 
943 /**
944  * @tc.name: SetSessionInfoIsClearSession015
945  * @tc.desc: SetSessionInfoIsClearSession return false
946  * @tc.type: FUNC
947  */
HWTEST_F(WindowSessionTest2, SetSessionInfoIsClearSession015, Function | SmallTest | Level2)948 HWTEST_F(WindowSessionTest2, SetSessionInfoIsClearSession015, Function | SmallTest | Level2)
949 {
950     ASSERT_NE(session_, nullptr);
951     session_->SetSessionInfoIsClearSession(false);
952     ASSERT_EQ(false, session_->sessionInfo_.isClearSession);
953 }
954 
955 /**
956  * @tc.name: SetSessionInfoIsClearSession016
957  * @tc.desc: SetSessionInfoIsClearSession return true
958  * @tc.type: FUNC
959  */
HWTEST_F(WindowSessionTest2, SetSessionInfoIsClearSession016, Function | SmallTest | Level2)960 HWTEST_F(WindowSessionTest2, SetSessionInfoIsClearSession016, Function | SmallTest | Level2)
961 {
962     ASSERT_NE(session_, nullptr);
963     session_->SetSessionInfoIsClearSession(true);
964     ASSERT_EQ(true, session_->sessionInfo_.isClearSession);
965 }
966 
967 /**
968  * @tc.name: SetSessionInfoAffinity017
969  * @tc.desc: SetSessionInfoAffinity
970  * @tc.type: FUNC
971  */
HWTEST_F(WindowSessionTest2, SetSessionInfoAffinity017, Function | SmallTest | Level2)972 HWTEST_F(WindowSessionTest2, SetSessionInfoAffinity017, Function | SmallTest | Level2)
973 {
974     ASSERT_NE(session_, nullptr);
975     std::string affinity = "setSessionIofoAffinity";
976     session_->SetSessionInfoAffinity(affinity);
977     ASSERT_EQ(affinity, session_->sessionInfo_.sessionAffinity);
978 }
979 
980 /**
981  * @tc.name: SetSessionInfo018
982  * @tc.desc: SetSessionInfo
983  * @tc.type: FUNC
984  */
HWTEST_F(WindowSessionTest2, SetSessionInfo018, Function | SmallTest | Level2)985 HWTEST_F(WindowSessionTest2, SetSessionInfo018, Function | SmallTest | Level2)
986 {
987     ASSERT_NE(session_, nullptr);
988     SessionInfo info;
989     info.want = nullptr;
990     info.callerToken_ = nullptr;
991     info.requestCode = 1;
992     info.callerPersistentId_ = 1;
993     info.callingTokenId_ = 1;
994     info.uiAbilityId_ = 1;
995     info.startSetting = nullptr;
996     info.continueSessionId_ = "";
997     session_->SetSessionInfo(info);
998     ASSERT_EQ(nullptr, session_->sessionInfo_.want);
999     ASSERT_EQ(nullptr, session_->sessionInfo_.callerToken_);
1000     ASSERT_EQ(1, session_->sessionInfo_.requestCode);
1001     ASSERT_EQ(1, session_->sessionInfo_.callerPersistentId_);
1002     ASSERT_EQ(1, session_->sessionInfo_.callingTokenId_);
1003     ASSERT_EQ(1, session_->sessionInfo_.uiAbilityId_);
1004     ASSERT_EQ("", session_->sessionInfo_.continueSessionId_);
1005     ASSERT_EQ(nullptr, session_->sessionInfo_.startSetting);
1006 }
1007 
1008 /**
1009  * @tc.name: SetScreenId019
1010  * @tc.desc: SetScreenId
1011  * @tc.type: FUNC
1012  */
HWTEST_F(WindowSessionTest2, SetScreenId019, Function | SmallTest | Level2)1013 HWTEST_F(WindowSessionTest2, SetScreenId019, Function | SmallTest | Level2)
1014 {
1015     ASSERT_NE(session_, nullptr);
1016     uint64_t screenId = 0;
1017     session_->SetScreenId(screenId);
1018     ASSERT_EQ(0, session_->sessionInfo_.screenId_);
1019 }
1020 
1021 /**
1022  * @tc.name: RegisterLifecycleListener020
1023  * @tc.desc: RegisterLifecycleListener
1024  * @tc.type: FUNC
1025  */
HWTEST_F(WindowSessionTest2, RegisterLifecycleListener020, Function | SmallTest | Level2)1026 HWTEST_F(WindowSessionTest2, RegisterLifecycleListener020, Function | SmallTest | Level2)
1027 {
1028     ASSERT_NE(session_, nullptr);
1029     const std::shared_ptr<ILifecycleListener>& listener = nullptr;
1030     bool ret = session_->RegisterLifecycleListener(listener);
1031     ASSERT_EQ(false, ret);
1032 }
1033 
1034 /**
1035  * @tc.name: UnregisterLifecycleListener021
1036  * @tc.desc: UnregisterLifecycleListener
1037  * @tc.type: FUNC
1038  */
HWTEST_F(WindowSessionTest2, UnregisterLifecycleListener021, Function | SmallTest | Level2)1039 HWTEST_F(WindowSessionTest2, UnregisterLifecycleListener021, Function | SmallTest | Level2)
1040 {
1041     ASSERT_NE(session_, nullptr);
1042     const std::shared_ptr<ILifecycleListener>& listener = nullptr;
1043     bool ret = session_->UnregisterLifecycleListener(listener);
1044     ASSERT_EQ(false, ret);
1045 }
1046 
1047 /**
1048  * @tc.name: NotifyExtensionDied027
1049  * @tc.desc: NotifyExtensionDied
1050  * @tc.type: FUNC
1051  */
HWTEST_F(WindowSessionTest2, NotifyExtensionDied027, Function | SmallTest | Level2)1052 HWTEST_F(WindowSessionTest2, NotifyExtensionDied027, Function | SmallTest | Level2)
1053 {
1054     ASSERT_NE(session_, nullptr);
1055     session_->NotifyExtensionDied();
1056 
1057     session_->RegisterLifecycleListener(lifecycleListener_);
1058     session_->NotifyExtensionDied();
1059     uint64_t screenId = 0;
1060     session_->SetScreenId(screenId);
1061     session_->UnregisterLifecycleListener(lifecycleListener_);
1062     ASSERT_EQ(0, session_->sessionInfo_.screenId_);
1063 }
1064 
1065 /**
1066  * @tc.name: NotifyTransferAccessibilityEvent
1067  * @tc.desc: NotifyTransferAccessibilityEvent
1068  * @tc.type: FUNC
1069  */
HWTEST_F(WindowSessionTest2, NotifyTransferAccessibilityEvent, Function | SmallTest | Level2)1070 HWTEST_F(WindowSessionTest2, NotifyTransferAccessibilityEvent, Function | SmallTest | Level2)
1071 {
1072     ASSERT_NE(session_, nullptr);
1073     OHOS::Accessibility::AccessibilityEventInfo info1;
1074     int64_t uiExtensionIdLevel = 6;
1075     session_->NotifyTransferAccessibilityEvent(info1, uiExtensionIdLevel);
1076 
1077     session_->RegisterLifecycleListener(lifecycleListener_);
1078     session_->NotifyTransferAccessibilityEvent(info1, uiExtensionIdLevel);
1079     uint64_t screenId = 0;
1080     session_->SetScreenId(screenId);
1081     session_->UnregisterLifecycleListener(lifecycleListener_);
1082     ASSERT_EQ(0, session_->sessionInfo_.screenId_);
1083 }
1084 
1085 /**
1086  * @tc.name: GetAspectRatio028
1087  * @tc.desc: GetAspectRatio
1088  * @tc.type: FUNC
1089  */
HWTEST_F(WindowSessionTest2, GetAspectRatio028, Function | SmallTest | Level2)1090 HWTEST_F(WindowSessionTest2, GetAspectRatio028, Function | SmallTest | Level2)
1091 {
1092     ASSERT_NE(session_, nullptr);
1093     float ret = session_->aspectRatio_;
1094     float res = 0.0f;
1095     ASSERT_EQ(ret, res);
1096 }
1097 
1098 /**
1099  * @tc.name: SetAspectRatio029
1100  * @tc.desc: SetAspectRatio
1101  * @tc.type: FUNC
1102  */
HWTEST_F(WindowSessionTest2, SetAspectRatio029, Function | SmallTest | Level2)1103 HWTEST_F(WindowSessionTest2, SetAspectRatio029, Function | SmallTest | Level2)
1104 {
1105     ASSERT_NE(session_, nullptr);
1106     float radio = 2.0f;
1107     WSError ERR = session_->SetAspectRatio(radio);
1108     float ret = session_->aspectRatio_;
1109     ASSERT_EQ(ret, radio);
1110     ASSERT_EQ(ERR, WSError::WS_OK);
1111 }
1112 
1113 /**
1114  * @tc.name: GetSessionState030
1115  * @tc.desc: GetSessionState
1116  * @tc.type: FUNC
1117  */
HWTEST_F(WindowSessionTest2, GetSessionState030, Function | SmallTest | Level2)1118 HWTEST_F(WindowSessionTest2, GetSessionState030, Function | SmallTest | Level2)
1119 {
1120     ASSERT_NE(session_, nullptr);
1121     SessionState state = session_->GetSessionState();
1122     ASSERT_EQ(state, session_->state_);
1123 }
1124 
1125 /**
1126  * @tc.name: SetSessionState031
1127  * @tc.desc: SetSessionState
1128  * @tc.type: FUNC
1129  */
HWTEST_F(WindowSessionTest2, SetSessionState031, Function | SmallTest | Level2)1130 HWTEST_F(WindowSessionTest2, SetSessionState031, Function | SmallTest | Level2)
1131 {
1132     ASSERT_NE(session_, nullptr);
1133     SessionState state = SessionState::STATE_CONNECT;
1134     session_->SetSessionState(state);
1135     ASSERT_EQ(state, session_->state_);
1136 }
1137 
1138 /**
1139  * @tc.name: GetTouchable33
1140  * @tc.desc: GetTouchable
1141  * @tc.type: FUNC
1142  */
HWTEST_F(WindowSessionTest2, GetTouchable33, Function | SmallTest | Level2)1143 HWTEST_F(WindowSessionTest2, GetTouchable33, Function | SmallTest | Level2)
1144 {
1145     ASSERT_NE(session_, nullptr);
1146     bool res = session_->GetTouchable();
1147     ASSERT_EQ(true, res);
1148 }
1149 
1150 /**
1151  * @tc.name: SetSystemTouchable34
1152  * @tc.desc: SetSystemTouchable
1153  * @tc.type: FUNC
1154  */
HWTEST_F(WindowSessionTest2, SetSystemTouchable34, Function | SmallTest | Level2)1155 HWTEST_F(WindowSessionTest2, SetSystemTouchable34, Function | SmallTest | Level2)
1156 {
1157     ASSERT_NE(session_, nullptr);
1158     bool touchable = false;
1159     session_->SetSystemTouchable(touchable);
1160     ASSERT_EQ(session_->systemTouchable_, touchable);
1161 }
1162 
1163 /**
1164  * @tc.name: GetSystemTouchable35
1165  * @tc.desc: GetSystemTouchable
1166  * @tc.type: FUNC
1167  */
HWTEST_F(WindowSessionTest2, GetSystemTouchable35, Function | SmallTest | Level2)1168 HWTEST_F(WindowSessionTest2, GetSystemTouchable35, Function | SmallTest | Level2)
1169 {
1170     ASSERT_NE(session_, nullptr);
1171     bool res = session_->GetSystemTouchable();
1172     ASSERT_EQ(res, true);
1173 }
1174 
1175 /**
1176  * @tc.name: SetRSVisible36
1177  * @tc.desc: SetRSVisible
1178  * @tc.type: FUNC
1179  */
HWTEST_F(WindowSessionTest2, SetVisible36, Function | SmallTest | Level2)1180 HWTEST_F(WindowSessionTest2, SetVisible36, Function | SmallTest | Level2)
1181 {
1182     ASSERT_NE(session_, nullptr);
1183     bool isVisible = false;
1184     ASSERT_EQ(WSError::WS_OK, session_->SetRSVisible(isVisible));
1185 }
1186 
1187 /**
1188  * @tc.name: GetRSVisible37
1189  * @tc.desc: GetRSVisible
1190  * @tc.type: FUNC
1191  */
HWTEST_F(WindowSessionTest2, GetVisible37, Function | SmallTest | Level2)1192 HWTEST_F(WindowSessionTest2, GetVisible37, Function | SmallTest | Level2)
1193 {
1194     ASSERT_NE(session_, nullptr);
1195     if (!session_->GetRSVisible()) {
1196         ASSERT_EQ(false, session_->GetRSVisible());
1197     }
1198 }
1199 
1200 /**
1201  * @tc.name: SetVisibilityState38
1202  * @tc.desc: SetVisibilityState
1203  * @tc.type: FUNC
1204  */
HWTEST_F(WindowSessionTest2, SetVisibilityState38, Function | SmallTest | Level2)1205 HWTEST_F(WindowSessionTest2, SetVisibilityState38, Function | SmallTest | Level2)
1206 {
1207     ASSERT_NE(session_, nullptr);
1208     WindowVisibilityState state { WINDOW_VISIBILITY_STATE_NO_OCCLUSION};
1209     ASSERT_EQ(WSError::WS_OK, session_->SetVisibilityState(state));
1210     ASSERT_EQ(state, session_->visibilityState_);
1211 }
1212 
1213 /**
1214  * @tc.name: GetVisibilityState39
1215  * @tc.desc: GetVisibilityState
1216  * @tc.type: FUNC
1217  */
HWTEST_F(WindowSessionTest2, GetVisibilityState39, Function | SmallTest | Level2)1218 HWTEST_F(WindowSessionTest2, GetVisibilityState39, Function | SmallTest | Level2)
1219 {
1220     ASSERT_NE(session_, nullptr);
1221     WindowVisibilityState state { WINDOW_LAYER_STATE_MAX};
1222     ASSERT_EQ(state, session_->GetVisibilityState());
1223 }
1224 
1225 /**
1226  * @tc.name: SetDrawingContentState40
1227  * @tc.desc: SetDrawingContentState
1228  * @tc.type: FUNC
1229  */
HWTEST_F(WindowSessionTest2, SetDrawingContentState40, Function | SmallTest | Level2)1230 HWTEST_F(WindowSessionTest2, SetDrawingContentState40, Function | SmallTest | Level2)
1231 {
1232     ASSERT_NE(session_, nullptr);
1233     bool isRSDrawing = false;
1234     ASSERT_EQ(WSError::WS_OK, session_->SetDrawingContentState(isRSDrawing));
1235     ASSERT_EQ(false, session_->isRSDrawing_);
1236 }
1237 
1238 /**
1239  * @tc.name: GetDrawingContentState41
1240  * @tc.desc: GetDrawingContentState
1241  * @tc.type: FUNC
1242  */
HWTEST_F(WindowSessionTest2, GetDrawingContentState41, Function | SmallTest | Level2)1243 HWTEST_F(WindowSessionTest2, GetDrawingContentState41, Function | SmallTest | Level2)
1244 {
1245     ASSERT_NE(session_, nullptr);
1246     bool res = session_->GetDrawingContentState();
1247     ASSERT_EQ(res, false);
1248 }
1249 
1250 /**
1251  * @tc.name: GetBrightness42
1252  * @tc.desc: GetBrightness
1253  * @tc.type: FUNC
1254  */
HWTEST_F(WindowSessionTest2, GetBrightness42, Function | SmallTest | Level2)1255 HWTEST_F(WindowSessionTest2, GetBrightness42, Function | SmallTest | Level2)
1256 {
1257     ASSERT_NE(session_, nullptr);
1258     session_->state_ = SessionState::STATE_DISCONNECT;
1259     session_->property_ = nullptr;
1260     ASSERT_EQ(UNDEFINED_BRIGHTNESS, session_->GetBrightness());
1261 }
1262 
1263 /**
1264  * @tc.name: DrawingCompleted
1265  * @tc.desc: DrawingCompleled
1266  * @tc.type: FUNC
1267  */
HWTEST_F(WindowSessionTest2, DrawingCompleted, Function | SmallTest | Level2)1268 HWTEST_F(WindowSessionTest2, DrawingCompleted, Function | SmallTest | Level2)
1269 {
1270     ASSERT_NE(session_, nullptr);
1271     auto result = session_->DrawingCompleted();
1272     ASSERT_EQ(result, WSError::WS_ERROR_INVALID_PERMISSION);
1273 }
1274 
1275 /**
1276  * @tc.name: SetSystemActive48
1277  * @tc.desc: SetSystemActive
1278  * @tc.type: FUNC
1279  */
HWTEST_F(WindowSessionTest2, SetSystemActive48, Function | SmallTest | Level2)1280 HWTEST_F(WindowSessionTest2, SetSystemActive48, Function | SmallTest | Level2)
1281 {
1282     ASSERT_NE(session_, nullptr);
1283     bool systemActive = false;
1284     session_->SetSystemActive(systemActive);
1285     ASSERT_EQ(systemActive, session_->isSystemActive_);
1286 }
1287 
1288 /**
1289  * @tc.name: SetSystemActive48
1290  * @tc.desc: SetSystemActive
1291  * @tc.type: FUNC
1292  */
HWTEST_F(WindowSessionTest2, SetChangeSessionVisibilityWithStatusBarEventListener, Function | SmallTest | Level2)1293 HWTEST_F(WindowSessionTest2, SetChangeSessionVisibilityWithStatusBarEventListener, Function | SmallTest | Level2)
1294 {
1295     int resultValue = 0;
1296     NotifyChangeSessionVisibilityWithStatusBarFunc func1 = [&resultValue](SessionInfo& info, const bool visible) {
1297         resultValue = 1;
1298     };
1299     NotifyChangeSessionVisibilityWithStatusBarFunc func2 = [&resultValue](SessionInfo& info, const bool visible) {
1300         resultValue = 2;
1301     };
1302 
1303     session_->SetChangeSessionVisibilityWithStatusBarEventListener(func1);
1304     ASSERT_NE(session_->changeSessionVisibilityWithStatusBarFunc_, nullptr);
1305 
1306     SessionInfo info;
1307     session_->changeSessionVisibilityWithStatusBarFunc_(info, true);
1308     ASSERT_EQ(resultValue, 1);
1309 
1310     session_->SetChangeSessionVisibilityWithStatusBarEventListener(func2);
1311     ASSERT_NE(session_->changeSessionVisibilityWithStatusBarFunc_, nullptr);
1312     session_->changeSessionVisibilityWithStatusBarFunc_(info, true);
1313     ASSERT_EQ(resultValue, 2);
1314 }
1315 
1316 /**
1317  * @tc.name: SetAttachState01
1318  * @tc.desc: SetAttachState Test
1319  * @tc.type: FUNC
1320  */
HWTEST_F(WindowSessionTest2, SetAttachState01, Function | SmallTest | Level2)1321 HWTEST_F(WindowSessionTest2, SetAttachState01, Function | SmallTest | Level2)
1322 {
1323     ASSERT_NE(session_, nullptr);
1324     session_->SetAttachState(false);
1325     ASSERT_EQ(session_->isAttach_, false);
1326 }
1327 
1328 /**
1329  * @tc.name: SetAttachState02
1330  * @tc.desc: SetAttachState Test
1331  * @tc.type: FUNC
1332  */
HWTEST_F(WindowSessionTest2, SetAttachState02, Function | SmallTest | Level2)1333 HWTEST_F(WindowSessionTest2, SetAttachState02, Function | SmallTest | Level2)
1334 {
1335     ASSERT_NE(session_, nullptr);
1336     int32_t persistentId = 123;
1337     sptr<PatternDetachCallbackMocker> detachCallback = new PatternDetachCallbackMocker();
1338     session_->persistentId_ = persistentId;
1339     session_->SetAttachState(true);
1340     session_->RegisterDetachCallback(detachCallback);
1341     session_->SetAttachState(false);
1342     usleep(WAIT_SYNC_IN_NS);
1343     Mock::VerifyAndClearExpectations(&detachCallback);
1344     ASSERT_EQ(session_->isAttach_, false);
1345 }
1346 
1347 /**
1348  * @tc.name: RegisterDetachCallback01
1349  * @tc.desc: RegisterDetachCallback Test
1350  * @tc.type: FUNC
1351  */
HWTEST_F(WindowSessionTest2, RegisterDetachCallback01, Function | SmallTest | Level2)1352 HWTEST_F(WindowSessionTest2, RegisterDetachCallback01, Function | SmallTest | Level2)
1353 {
1354     ASSERT_NE(session_, nullptr);
1355     sptr<IPatternDetachCallback> detachCallback;
1356     session_->RegisterDetachCallback(detachCallback);
1357     ASSERT_EQ(session_->detachCallback_, detachCallback);
1358 }
1359 
1360 /**
1361  * @tc.name: RegisterDetachCallback02
1362  * @tc.desc: RegisterDetachCallback Test
1363  * @tc.type: FUNC
1364  */
HWTEST_F(WindowSessionTest2, RegisterDetachCallback02, Function | SmallTest | Level2)1365 HWTEST_F(WindowSessionTest2, RegisterDetachCallback02, Function | SmallTest | Level2)
1366 {
1367     ASSERT_NE(session_, nullptr);
1368     sptr<IPatternDetachCallback> detachCallback;
1369     session_->RegisterDetachCallback(detachCallback);
1370     ASSERT_EQ(session_->detachCallback_, detachCallback);
1371     sptr<IPatternDetachCallback> detachCallback2;
1372     session_->RegisterDetachCallback(detachCallback2);
1373     ASSERT_EQ(session_->detachCallback_, detachCallback2);
1374 }
1375 
1376 /**
1377  * @tc.name: RegisterDetachCallback03
1378  * @tc.desc: RegisterDetachCallback Test
1379  * @tc.type: FUNC
1380  */
HWTEST_F(WindowSessionTest2, RegisterDetachCallback03, Function | SmallTest | Level2)1381 HWTEST_F(WindowSessionTest2, RegisterDetachCallback03, Function | SmallTest | Level2)
1382 {
1383     ASSERT_NE(session_, nullptr);
1384     int32_t persistentId = 123;
1385     sptr<PatternDetachCallbackMocker> detachCallback = new PatternDetachCallbackMocker();
1386     EXPECT_CALL(*detachCallback, OnPatternDetach(persistentId)).Times(::testing::AtLeast(1));
1387     session_->persistentId_ = persistentId;
1388     session_->SetAttachState(true);
1389     session_->SetAttachState(false);
1390     session_->RegisterDetachCallback(detachCallback);
1391     Mock::VerifyAndClearExpectations(&detachCallback);
1392 }
1393 
1394 /**
1395  * @tc.name: SetContextTransparentFunc
1396  * @tc.desc: SetContextTransparentFunc Test
1397  * @tc.type: FUNC
1398  */
HWTEST_F(WindowSessionTest2, SetContextTransparentFunc, Function | SmallTest | Level2)1399 HWTEST_F(WindowSessionTest2, SetContextTransparentFunc, Function | SmallTest | Level2)
1400 {
1401     ASSERT_NE(session_, nullptr);
1402     session_->SetContextTransparentFunc(nullptr);
1403     ASSERT_EQ(session_->contextTransparentFunc_, nullptr);
1404     NotifyContextTransparentFunc func = [](){};
1405     session_->SetContextTransparentFunc(func);
1406     ASSERT_NE(session_->contextTransparentFunc_, nullptr);
1407 }
1408 
1409 /**
1410  * @tc.name: NeedCheckContextTransparent
1411  * @tc.desc: NeedCheckContextTransparent Test
1412  * @tc.type: FUNC
1413  */
HWTEST_F(WindowSessionTest2, NeedCheckContextTransparent, Function | SmallTest | Level2)1414 HWTEST_F(WindowSessionTest2, NeedCheckContextTransparent, Function | SmallTest | Level2)
1415 {
1416     ASSERT_NE(session_, nullptr);
1417     session_->SetContextTransparentFunc(nullptr);
1418     ASSERT_EQ(session_->NeedCheckContextTransparent(), false);
1419     NotifyContextTransparentFunc func = [](){};
1420     session_->SetContextTransparentFunc(func);
1421     ASSERT_EQ(session_->NeedCheckContextTransparent(), true);
1422 }
1423 
1424 /**
1425  * @tc.name: SetShowRecent001
1426  * @tc.desc: Exist detect task when in recent.
1427  * @tc.type: FUNC
1428  */
HWTEST_F(WindowSessionTest2, SetShowRecent001, Function | SmallTest | Level2)1429 HWTEST_F(WindowSessionTest2, SetShowRecent001, Function | SmallTest | Level2)
1430 {
1431     std::string taskName = "wms:WindowStateDetect" + std::to_string(session_->persistentId_);
1432     auto task = [](){};
1433     int64_t delayTime = 3000;
1434     session_->handler_->PostTask(task, taskName, delayTime);
1435     int32_t beforeTaskNum = GetTaskCount();
1436 
1437     session_->SetShowRecent(true);
1438     ASSERT_EQ(beforeTaskNum, GetTaskCount());
1439     session_->handler_->RemoveTask(taskName);
1440 }
1441 
1442 /**
1443  * @tc.name: SetShowRecent002
1444  * @tc.desc: SetShowRecent:showRecent is false, showRecent_ is false.
1445  * @tc.type: FUNC
1446  */
HWTEST_F(WindowSessionTest2, SetShowRecent002, Function | SmallTest | Level2)1447 HWTEST_F(WindowSessionTest2, SetShowRecent002, Function | SmallTest | Level2)
1448 {
1449     std::string taskName = "wms:WindowStateDetect" + std::to_string(session_->persistentId_);
1450     auto task = [](){};
1451     int64_t delayTime = 3000;
1452     session_->handler_->PostTask(task, taskName, delayTime);
1453     session_->showRecent_ = false;
1454     int32_t beforeTaskNum = GetTaskCount();
1455 
1456     session_->SetShowRecent(false);
1457     ASSERT_EQ(beforeTaskNum, GetTaskCount());
1458     session_->handler_->RemoveTask(taskName);
1459 }
1460 
1461 /**
1462  * @tc.name: SetShowRecent003
1463  * @tc.desc: SetShowRecent:showRecent is false, showRecent_ is true, detach task.
1464  * @tc.type: FUNC
1465  */
HWTEST_F(WindowSessionTest2, SetShowRecent003, Function | SmallTest | Level2)1466 HWTEST_F(WindowSessionTest2, SetShowRecent003, Function | SmallTest | Level2)
1467 {
1468     std::string taskName = "wms:WindowStateDetect" + std::to_string(session_->persistentId_);
1469     auto task = [](){};
1470     int64_t delayTime = 3000;
1471     session_->handler_->PostTask(task, taskName, delayTime);
1472     session_->showRecent_ = true;
1473     session_->isAttach_ = false;
1474     int32_t beforeTaskNum = GetTaskCount();
1475 
1476     session_->SetShowRecent(false);
1477     ASSERT_EQ(beforeTaskNum, GetTaskCount());
1478     session_->handler_->RemoveTask(taskName);
1479 }
1480 
1481 /**
1482  * @tc.name: SetShowRecent004
1483  * @tc.desc: SetShowRecent
1484  * @tc.type: FUNC
1485  */
HWTEST_F(WindowSessionTest2, SetShowRecent004, Function | SmallTest | Level2)1486 HWTEST_F(WindowSessionTest2, SetShowRecent004, Function | SmallTest | Level2)
1487 {
1488     session_->systemConfig_.windowUIType_ = WindowUIType::PHONE_WINDOW;
1489     ssm_->SetScreenLocked(false);
1490 
1491     session_->property_ = new WindowSessionProperty();
1492     session_->property_->SetWindowType(WindowType::APP_MAIN_WINDOW_BASE);
1493 
1494     bool showRecent = false;
1495     session_->showRecent_ = true;
1496     session_->SetAttachState(true);
1497     session_->SetShowRecent(showRecent);
1498     ASSERT_EQ(session_->GetShowRecent(), showRecent);
1499 }
1500 
1501 /**
1502  * @tc.name: GetAttachState001
1503  * @tc.desc: GetAttachState001
1504  * @tc.type: FUNC
1505  */
HWTEST_F(WindowSessionTest2, GetAttachState001, Function | SmallTest | Level2)1506 HWTEST_F(WindowSessionTest2, GetAttachState001, Function | SmallTest | Level2)
1507 {
1508     std::string taskName = "wms:WindowStateDetect" + std::to_string(session_->persistentId_);
1509     session_->SetAttachState(false);
1510     bool isAttach = session_->GetAttachState();
1511     ASSERT_EQ(false, isAttach);
1512     session_->handler_->RemoveTask(taskName);
1513 }
1514 
1515 /**
1516  * @tc.name: UpdateSizeChangeReason
1517  * @tc.desc: UpdateSizeChangeReason UpdateDensity
1518  * @tc.type: FUNC
1519  */
HWTEST_F(WindowSessionTest2, UpdateSizeChangeReason, Function | SmallTest | Level2)1520 HWTEST_F(WindowSessionTest2, UpdateSizeChangeReason, Function | SmallTest | Level2)
1521 {
1522     SizeChangeReason reason = SizeChangeReason{1};
1523     ASSERT_EQ(session_->UpdateSizeChangeReason(reason), WSError::WS_OK);
1524 }
1525 
1526 /**
1527  * @tc.name: SetPendingSessionActivationEventListener
1528  * @tc.desc: SetPendingSessionActivationEventListener
1529  * @tc.type: FUNC
1530  */
HWTEST_F(WindowSessionTest2, SetPendingSessionActivationEventListener, Function | SmallTest | Level2)1531 HWTEST_F(WindowSessionTest2, SetPendingSessionActivationEventListener, Function | SmallTest | Level2)
1532 {
1533     int resultValue = 0;
1534     NotifyPendingSessionActivationFunc callback = [&resultValue](const SessionInfo& info) {
1535         resultValue = 1;
1536     };
1537 
1538     sptr<AAFwk::SessionInfo> info = new (std::nothrow)AAFwk::SessionInfo();
1539     session_->SetPendingSessionActivationEventListener(callback);
1540     NotifyTerminateSessionFunc callback1 = [&resultValue](const SessionInfo& info) {
1541         resultValue = 2;
1542     };
1543     session_->SetTerminateSessionListener(callback1);
1544     LifeCycleTaskType taskType = LifeCycleTaskType{0};
1545     session_->RemoveLifeCycleTask(taskType);
1546     ASSERT_EQ(resultValue, 0);
1547 }
1548 
1549 /**
1550  * @tc.name: SetSessionIcon
1551  * @tc.desc: SetSessionIcon UpdateDensity
1552  * @tc.type: FUNC
1553  */
HWTEST_F(WindowSessionTest2, SetSessionIcon, Function | SmallTest | Level2)1554 HWTEST_F(WindowSessionTest2, SetSessionIcon, Function | SmallTest | Level2)
1555 {
1556     std::shared_ptr<Media::PixelMap> icon;
1557     session_->SetSessionIcon(icon);
1558     ASSERT_EQ(session_->Clear(), WSError::WS_OK);
1559     session_->SetSessionSnapshotListener(nullptr);
1560     NotifyPendingSessionActivationFunc func = [](const SessionInfo& info) {};
1561     session_->pendingSessionActivationFunc_ = func;
1562     ASSERT_EQ(session_->PendingSessionToForeground(), WSError::WS_OK);
1563 
1564     session_->scenePersistence_ = sptr<ScenePersistence>::MakeSptr("SetSessionIcon", 1);
1565     session_->updateSessionIconFunc_ = nullptr;
1566     ASSERT_EQ(WSError::WS_OK, session_->SetSessionIcon(icon));
1567 
1568     NofitySessionIconUpdatedFunc func2 = [](const std::string& iconPath) {};
1569     session_->updateSessionIconFunc_ = func2;
1570     ASSERT_EQ(WSError::WS_OK, session_->SetSessionIcon(icon));
1571 
1572     NotifyTerminateSessionFuncNew func3 = [](const SessionInfo& info, bool needStartCaller, bool isFromBroker) {};
1573     session_->terminateSessionFuncNew_ = func3;
1574     ASSERT_EQ(WSError::WS_OK, session_->Clear());
1575 }
1576 
1577 /**
1578  * @tc.name: SetSessionExceptionListener
1579  * @tc.desc: SetSessionExceptionListener
1580  * @tc.type: FUNC
1581  */
HWTEST_F(WindowSessionTest2, SetSessionExceptionListener, Function | SmallTest | Level2)1582 HWTEST_F(WindowSessionTest2, SetSessionExceptionListener, Function | SmallTest | Level2)
1583 {
1584     session_->SetSessionExceptionListener(nullptr, true);
1585 
1586     NotifySessionExceptionFunc func = [](const SessionInfo& info, bool needRemoveSession) {};
1587     session_->SetSessionExceptionListener(func, true);
1588 
1589     ASSERT_NE(nullptr, session_->jsSceneSessionExceptionFunc_);
1590 }
1591 
1592 /**
1593  * @tc.name: SetRaiseToAppTopForPointDownFunc
1594  * @tc.desc: SetRaiseToAppTopForPointDownFunc Test
1595  * @tc.type: FUNC
1596  */
HWTEST_F(WindowSessionTest2, SetRaiseToAppTopForPointDownFunc, Function | SmallTest | Level2)1597 HWTEST_F(WindowSessionTest2, SetRaiseToAppTopForPointDownFunc, Function | SmallTest | Level2)
1598 {
1599     ASSERT_NE(session_, nullptr);
1600     session_->SetRaiseToAppTopForPointDownFunc(nullptr);
1601 
1602     NotifyRaiseToTopForPointDownFunc func = []() {};
1603     session_->raiseToTopForPointDownFunc_ = func;
1604     session_->RaiseToAppTopForPointDown();
1605     session_->HandlePointDownDialog();
1606     session_->ClearDialogVector();
1607 
1608     session_->SetBufferAvailableChangeListener(nullptr);
1609     session_->UnregisterSessionChangeListeners();
1610     session_->SetSessionStateChangeNotifyManagerListener(nullptr);
1611     session_->SetSessionInfoChangeNotifyManagerListener(nullptr);
1612     session_->NotifyFocusStatus(true);
1613 
1614     session_->SetRequestFocusStatusNotifyManagerListener(nullptr);
1615     session_->SetNotifyUIRequestFocusFunc(nullptr);
1616     session_->SetNotifyUILostFocusFunc(nullptr);
1617     session_->UnregisterSessionChangeListeners();
1618 
1619     NotifyPendingSessionToBackgroundForDelegatorFunc func2 = [](const SessionInfo& info, bool shouldBackToCaller) {};
1620     session_->pendingSessionToBackgroundForDelegatorFunc_ = func2;
1621     ASSERT_EQ(WSError::WS_OK, session_->PendingSessionToBackgroundForDelegator(true));
1622 }
1623 
1624 /**
1625  * @tc.name: NotifyCloseExistPipWindow
1626  * @tc.desc: check func NotifyCloseExistPipWindow
1627  * @tc.type: FUNC
1628  */
HWTEST_F(WindowSessionTest2, NotifyCloseExistPipWindow, Function | SmallTest | Level2)1629 HWTEST_F(WindowSessionTest2, NotifyCloseExistPipWindow, Function | SmallTest | Level2)
1630 {
1631     sptr<SessionStageMocker> mockSessionStage = new(std::nothrow) SessionStageMocker();
1632     ASSERT_NE(mockSessionStage, nullptr);
1633     ManagerState key = ManagerState{0};
1634     session_->GetStateFromManager(key);
1635     session_->NotifyUILostFocus();
1636 
1637     session_->lostFocusFunc_ = []() {};
1638     session_->NotifyUILostFocus();
1639 
1640     session_->SetSystemSceneBlockingFocus(true);
1641     session_->GetBlockingFocus();
1642     session_->sessionStage_ = mockSessionStage;
1643     EXPECT_CALL(*(mockSessionStage), NotifyCloseExistPipWindow()).Times(1).WillOnce(Return(WSError::WS_OK));
1644     ASSERT_EQ(WSError::WS_OK, session_->NotifyCloseExistPipWindow());
1645     session_->sessionStage_ = nullptr;
1646     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->NotifyCloseExistPipWindow());
1647 }
1648 
1649 /**
1650  * @tc.name: SetSystemConfig
1651  * @tc.desc: SetSystemConfig Test
1652  * @tc.type: FUNC
1653  */
HWTEST_F(WindowSessionTest2, SetSystemConfig, Function | SmallTest | Level2)1654 HWTEST_F(WindowSessionTest2, SetSystemConfig, Function | SmallTest | Level2)
1655 {
1656     ASSERT_NE(session_, nullptr);
1657     SystemSessionConfig systemConfig;
1658     session_->SetSystemConfig(systemConfig);
1659     float snapshotScale = 0.5;
1660     session_->SetSnapshotScale(snapshotScale);
1661     session_->ProcessBackEvent();
1662     session_->NotifyOccupiedAreaChangeInfo(nullptr);
1663     session_->UpdateMaximizeMode(true);
1664     ASSERT_EQ(session_->GetZOrder(), 0);
1665 
1666     session_->SetUINodeId(0);
1667     session_->GetUINodeId();
1668     session_->SetShowRecent(true);
1669     session_->GetShowRecent();
1670     session_->SetBufferAvailable(true);
1671 
1672     session_->SetNeedSnapshot(true);
1673     session_->SetFloatingScale(0.5);
1674     ASSERT_EQ(session_->GetFloatingScale(), 0.5f);
1675     session_->SetScale(50, 100, 50, 100);
1676     session_->GetScaleX();
1677     session_->GetScaleY();
1678     session_->GetPivotX();
1679     session_->GetPivotY();
1680     session_->SetSCBKeepKeyboard(true);
1681     session_->GetSCBKeepKeyboardFlag();
1682     ASSERT_EQ(WSError::WS_OK, session_->MarkProcessed(11));
1683 }
1684 
1685 /**
1686  * @tc.name: SetOffset
1687  * @tc.desc: SetOffset Test
1688  * @tc.type: FUNC
1689  */
HWTEST_F(WindowSessionTest2, SetOffset, Function | SmallTest | Level2)1690 HWTEST_F(WindowSessionTest2, SetOffset, Function | SmallTest | Level2)
1691 {
1692     ASSERT_NE(session_, nullptr);
1693     session_->SetOffset(50, 100);
1694     session_->GetOffsetX();
1695     session_->GetOffsetY();
1696     WSRectF bounds;
1697     session_->SetBounds(bounds);
1698     session_->GetBounds();
1699     session_->UpdateTitleInTargetPos(true, 100);
1700     session_->SetNotifySystemSessionPointerEventFunc(nullptr);
1701     session_->SetNotifySystemSessionKeyEventFunc(nullptr);
1702     ASSERT_EQ(session_->GetBufferAvailable(), false);
1703 }
1704 
1705 /**
1706  * @tc.name: ResetSessionConnectState
1707  * @tc.desc: ResetSessionConnectState
1708  * @tc.type: FUNC
1709  */
HWTEST_F(WindowSessionTest2, ResetSessionConnectState, Function | SmallTest | Level2)1710 HWTEST_F(WindowSessionTest2, ResetSessionConnectState, Function | SmallTest | Level2)
1711 {
1712     ASSERT_NE(session_, nullptr);
1713     session_->ResetSessionConnectState();
1714     ASSERT_EQ(session_->state_, SessionState::STATE_DISCONNECT);
1715     ASSERT_EQ(session_->GetCallingPid(), -1);
1716 }
1717 
1718 /**
1719  * @tc.name: ResetIsActive
1720  * @tc.desc: ResetIsActive
1721  * @tc.type: FUNC
1722  */
HWTEST_F(WindowSessionTest2, ResetIsActive, Function | SmallTest | Level2)1723 HWTEST_F(WindowSessionTest2, ResetIsActive, Function | SmallTest | Level2)
1724 {
1725     ASSERT_NE(session_, nullptr);
1726     session_->ResetIsActive();
1727     ASSERT_EQ(session_->isActive_, false);
1728 }
1729 
1730 /**
1731  * @tc.name: PostExportTask02
1732  * @tc.desc: PostExportTask
1733  * @tc.type: FUNC
1734  */
HWTEST_F(WindowSessionTest2, PostExportTask02, Function | SmallTest | Level2)1735 HWTEST_F(WindowSessionTest2, PostExportTask02, Function | SmallTest | Level2)
1736 {
1737     ASSERT_NE(session_, nullptr);
1738     std::string name = "sessionExportTask";
1739     auto task = [](){};
1740     int64_t delayTime = 0;
1741 
1742     session_->PostExportTask(task, name, delayTime);
1743     auto result = session_->GetBufferAvailable();
1744     ASSERT_EQ(result, false);
1745 
1746     sptr<SceneSessionManager> sceneSessionManager = new SceneSessionManager();
1747     session_->SetEventHandler(sceneSessionManager->taskScheduler_->GetEventHandler(),
1748         sceneSessionManager->eventHandler_);
1749     session_->PostExportTask(task, name, delayTime);
1750     auto result2 = session_->GetBufferAvailable();
1751     ASSERT_EQ(result2, false);
1752 }
1753 
1754 /**
1755  * @tc.name: SetLeashWinSurfaceNode02
1756  * @tc.desc: SetLeashWinSurfaceNode
1757  * @tc.type: FUNC
1758  */
HWTEST_F(WindowSessionTest2, SetLeashWinSurfaceNode02, Function | SmallTest | Level2)1759 HWTEST_F(WindowSessionTest2, SetLeashWinSurfaceNode02, Function | SmallTest | Level2)
1760 {
1761     ASSERT_NE(session_, nullptr);
1762     session_->leashWinSurfaceNode_ = WindowSessionTest2::CreateRSSurfaceNode();
1763     session_->SetLeashWinSurfaceNode(nullptr);
1764 
1765     session_->leashWinSurfaceNode_ = nullptr;
1766     session_->SetLeashWinSurfaceNode(nullptr);
1767     auto result = session_->GetBufferAvailable();
1768     ASSERT_EQ(result, false);
1769 }
1770 
1771 /**
1772  * @tc.name: GetCloseAbilityWantAndClean
1773  * @tc.desc: GetCloseAbilityWantAndClean
1774  * @tc.type: FUNC
1775  */
HWTEST_F(WindowSessionTest2, GetCloseAbilityWantAndClean, Function | SmallTest | Level2)1776 HWTEST_F(WindowSessionTest2, GetCloseAbilityWantAndClean, Function | SmallTest | Level2)
1777 {
1778     ASSERT_NE(session_, nullptr);
1779     AAFwk::Want outWant;
1780     session_->sessionInfo_.closeAbilityWant = std::make_shared<AAFwk::Want>();
1781     session_->GetCloseAbilityWantAndClean(outWant);
1782 
1783     session_->sessionInfo_.closeAbilityWant = nullptr;
1784     session_->GetCloseAbilityWantAndClean(outWant);
1785     auto result = session_->GetBufferAvailable();
1786     ASSERT_EQ(result, false);
1787 }
1788 
1789 /**
1790  * @tc.name: SetScreenId02
1791  * @tc.desc: SetScreenId Test
1792  * @tc.type: FUNC
1793  */
HWTEST_F(WindowSessionTest2, SetScreenId02, Function | SmallTest | Level2)1794 HWTEST_F(WindowSessionTest2, SetScreenId02, Function | SmallTest | Level2)
1795 {
1796     ASSERT_NE(session_, nullptr);
1797     uint64_t screenId = 0;
1798     session_->sessionStage_ = new (std::nothrow) SessionStageMocker();
1799     session_->SetScreenId(screenId);
1800     ASSERT_EQ(0, session_->sessionInfo_.screenId_);
1801 }
1802 
1803 /**
1804  * @tc.name: SetFocusable03
1805  * @tc.desc: SetFocusable
1806  * @tc.type: FUNC
1807  */
HWTEST_F(WindowSessionTest2, SetFocusable03, Function | SmallTest | Level2)1808 HWTEST_F(WindowSessionTest2, SetFocusable03, Function | SmallTest | Level2)
1809 {
1810     ASSERT_NE(session_, nullptr);
1811     session_->isFocused_ = true;
1812     session_->property_ = new (std::nothrow) WindowSessionProperty();
1813     session_->property_->focusable_ = false;
1814     bool isFocusable = true;
1815 
1816     auto result = session_->SetFocusable(isFocusable);
1817     ASSERT_EQ(result, WSError::WS_OK);
1818     ASSERT_EQ(session_->GetFocusable(), true);
1819 }
1820 
1821 /**
1822  * @tc.name: GetFocused
1823  * @tc.desc: GetFocused Test
1824  * @tc.type: FUNC
1825  */
HWTEST_F(WindowSessionTest2, GetFocused, Function | SmallTest | Level2)1826 HWTEST_F(WindowSessionTest2, GetFocused, Function | SmallTest | Level2)
1827 {
1828     ASSERT_NE(session_, nullptr);
1829     bool result = session_->GetFocused();
1830     ASSERT_EQ(result, false);
1831 
1832     session_->isFocused_ = true;
1833     bool result2 = session_->GetFocused();
1834     ASSERT_EQ(result2, true);
1835 }
1836 
1837 /**
1838  * @tc.name: UpdatePointerArea
1839  * @tc.desc: UpdatePointerArea Test
1840  * @tc.type: FUNC
1841  */
HWTEST_F(WindowSessionTest2, UpdatePointerArea, Function | SmallTest | Level2)1842 HWTEST_F(WindowSessionTest2, UpdatePointerArea, Function | SmallTest | Level2)
1843 {
1844     ASSERT_NE(session_, nullptr);
1845     WSRect rect = { 0, 0, 0, 0 };
1846     session_->preRect_ = rect;
1847     session_->UpdatePointerArea(rect);
1848     ASSERT_EQ(session_->GetFocused(), false);
1849 }
1850 
1851 /**
1852  * @tc.name: UpdateSizeChangeReason02
1853  * @tc.desc: UpdateSizeChangeReason Test
1854  * @tc.type: FUNC
1855  */
HWTEST_F(WindowSessionTest2, UpdateSizeChangeReason02, Function | SmallTest | Level2)1856 HWTEST_F(WindowSessionTest2, UpdateSizeChangeReason02, Function | SmallTest | Level2)
1857 {
1858     ASSERT_NE(session_, nullptr);
1859     SizeChangeReason reason = SizeChangeReason::UNDEFINED;
1860     WSError result = session_->UpdateSizeChangeReason(reason);
1861     ASSERT_EQ(result, WSError::WS_DO_NOTHING);
1862 }
1863 
1864 /**
1865  * @tc.name: UpdateDensity
1866  * @tc.desc: UpdateDensity Test
1867  * @tc.type: FUNC
1868  */
HWTEST_F(WindowSessionTest2, UpdateDensity, Function | SmallTest | Level2)1869 HWTEST_F(WindowSessionTest2, UpdateDensity, Function | SmallTest | Level2)
1870 {
1871     ASSERT_NE(session_, nullptr);
1872 
1873     session_->state_ = SessionState::STATE_DISCONNECT;
1874     ASSERT_FALSE(session_->IsSessionValid());
1875     WSError result = session_->UpdateDensity();
1876     ASSERT_EQ(result, WSError::WS_ERROR_INVALID_SESSION);
1877 
1878     session_->state_ = SessionState::STATE_CONNECT;
1879     ASSERT_TRUE(session_->IsSessionValid());
1880     session_->sessionStage_ = nullptr;
1881     WSError result02 = session_->UpdateDensity();
1882     ASSERT_EQ(result02, WSError::WS_ERROR_NULLPTR);
1883 }
1884 
1885 /**
1886  * @tc.name: TransferKeyEventForConsumed01
1887  * @tc.desc: windowEventChannel_ is nullptr
1888  * @tc.type: FUNC
1889  */
HWTEST_F(WindowSessionTest2, TransferKeyEventForConsumed01, Function | SmallTest | Level2)1890 HWTEST_F(WindowSessionTest2, TransferKeyEventForConsumed01, Function | SmallTest | Level2)
1891 {
1892     ASSERT_NE(session_, nullptr);
1893 
1894     session_->windowEventChannel_ = nullptr;
1895 
1896     auto keyEvent = MMI::KeyEvent::Create();
1897     bool isConsumed = false;
1898     ASSERT_EQ(WSError::WS_ERROR_NULLPTR, session_->TransferKeyEventForConsumed(keyEvent, isConsumed));
1899 }
1900 
1901 /**
1902  * @tc.name: GetMainSession
1903  * @tc.desc: GetMainSession Test
1904  * @tc.type: FUNC
1905  */
HWTEST_F(WindowSessionTest2, GetMainSession, Function | SmallTest | Level2)1906 HWTEST_F(WindowSessionTest2, GetMainSession, Function | SmallTest | Level2)
1907 {
1908     ASSERT_NE(session_, nullptr);
1909     SessionInfo info;
1910     info.abilityName_ = "getMainSession";
1911     info.moduleName_ = "getMainSession";
1912     info.bundleName_ = "getMainSession";
1913     sptr<Session> session = sptr<Session>::MakeSptr(info);
1914     ASSERT_NE(session, nullptr);
1915     session->property_ = sptr<WindowSessionProperty>::MakeSptr();
1916     ASSERT_NE(session->property_, nullptr);
1917     session_->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_MAIN_WINDOW);
1918     EXPECT_EQ(session, session->GetMainSession());
1919 
1920     sptr<Session> subSession = sptr<Session>::MakeSptr(info);
1921     ASSERT_NE(subSession, nullptr);
1922     subSession->SetParentSession(session);
1923     subSession->property_ = sptr<WindowSessionProperty>::MakeSptr();
1924     ASSERT_NE(subSession->property_, nullptr);
1925     subSession->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_SUB_WINDOW);
1926     EXPECT_EQ(session, subSession->GetMainSession());
1927 
1928     sptr<Session> subSubSession = sptr<Session>::MakeSptr(info);
1929     ASSERT_NE(subSubSession, nullptr);
1930     subSubSession->SetParentSession(subSession);
1931     subSubSession->property_ = sptr<WindowSessionProperty>::MakeSptr();
1932     ASSERT_NE(subSubSession->property_, nullptr);
1933     subSubSession->property_->SetWindowType(WindowType::WINDOW_TYPE_APP_SUB_WINDOW);
1934     EXPECT_EQ(session, subSubSession->GetMainSession());
1935 }
1936 
1937 /**
1938  * @tc.name: IsSupportDetectWindow
1939  * @tc.desc: IsSupportDetectWindow Test
1940  * @tc.type: FUNC
1941  */
HWTEST_F(WindowSessionTest2, IsSupportDetectWindow, Function | SmallTest | Level2)1942 HWTEST_F(WindowSessionTest2, IsSupportDetectWindow, Function | SmallTest | Level2)
1943 {
1944     session_->systemConfig_.windowUIType_ = WindowUIType::PHONE_WINDOW;
1945     ssm_->SetScreenLocked(true);
1946     bool ret = session_->IsSupportDetectWindow(true);
1947     ASSERT_EQ(ret, false);
1948 
1949     ssm_->SetScreenLocked(false);
1950     session_->property_ = new WindowSessionProperty();
1951     session_->property_->SetWindowType(WindowType::APP_MAIN_WINDOW_END);
1952     ret = session_->IsSupportDetectWindow(true);
1953     ASSERT_EQ(ret, false);
1954 
1955     ssm_->SetScreenLocked(false);
1956     session_->property_->SetWindowType(WindowType::APP_MAIN_WINDOW_BASE);
1957     session_->systemConfig_.windowUIType_ = WindowUIType::PC_WINDOW;
1958     ret = session_->IsSupportDetectWindow(false);
1959     ASSERT_EQ(ret, false);
1960 }
1961 
1962 /**
1963  * @tc.name: ShouldCreateDetectTask
1964  * @tc.desc: ShouldCreateDetectTask Test
1965  * @tc.type: FUNC
1966  */
HWTEST_F(WindowSessionTest2, ShouldCreateDetectTask, Function | SmallTest | Level2)1967 HWTEST_F(WindowSessionTest2, ShouldCreateDetectTask, Function | SmallTest | Level2)
1968 {
1969     DetectTaskInfo detectTaskInfo;
1970     detectTaskInfo.taskState = DetectTaskState::ATTACH_TASK;
1971     detectTaskInfo.taskWindowMode = WindowMode::WINDOW_MODE_FULLSCREEN;
1972     session_->SetDetectTaskInfo(detectTaskInfo);
1973     bool ret = session_->ShouldCreateDetectTask(true, WindowMode::WINDOW_MODE_UNDEFINED);
1974     ASSERT_EQ(ret, true);
1975     detectTaskInfo.taskState = DetectTaskState::DETACH_TASK;
1976     session_->SetDetectTaskInfo(detectTaskInfo);
1977     ret = session_->ShouldCreateDetectTask(false, WindowMode::WINDOW_MODE_UNDEFINED);
1978     ASSERT_EQ(ret, true);
1979     ret = session_->ShouldCreateDetectTask(true, WindowMode::WINDOW_MODE_UNDEFINED);
1980     ASSERT_EQ(ret, false);
1981 }
1982 
1983 /**
1984  * @tc.name: ShouldCreateDetectTaskInRecent
1985  * @tc.desc: ShouldCreateDetectTaskInRecent Test
1986  * @tc.type: FUNC
1987  */
HWTEST_F(WindowSessionTest2, ShouldCreateDetectTaskInRecent, Function | SmallTest | Level2)1988 HWTEST_F(WindowSessionTest2, ShouldCreateDetectTaskInRecent, Function | SmallTest | Level2)
1989 {
1990     bool ret = session_->ShouldCreateDetectTaskInRecent(true, true, true);
1991     ASSERT_EQ(ret, false);
1992     ret = session_->ShouldCreateDetectTaskInRecent(false, true, true);
1993     ASSERT_EQ(ret, true);
1994     ret = session_->ShouldCreateDetectTaskInRecent(false, true, false);
1995     ASSERT_EQ(ret, false);
1996     ret = session_->ShouldCreateDetectTaskInRecent(false, false, false);
1997     ASSERT_EQ(ret, false);
1998 }
1999 
2000 /**
2001  * @tc.name: CreateWindowStateDetectTask
2002  * @tc.desc: CreateWindowStateDetectTask Test
2003  * @tc.type: FUNC
2004  */
HWTEST_F(WindowSessionTest2, CreateWindowStateDetectTask, Function | SmallTest | Level2)2005 HWTEST_F(WindowSessionTest2, CreateWindowStateDetectTask, Function | SmallTest | Level2)
2006 {
2007     auto isScreenLockedCallback = [this]() { return ssm_->IsScreenLocked(); };
2008     session_->RegisterIsScreenLockedCallback(isScreenLockedCallback);
2009     session_->SetSessionState(SessionState::STATE_CONNECT);
2010     bool isAttach = true;
2011     session_->CreateWindowStateDetectTask(isAttach, WindowMode::WINDOW_MODE_UNDEFINED);
2012     ASSERT_EQ(isAttach, true);
2013 
2014     session_->handler_ = nullptr;
2015     session_->CreateWindowStateDetectTask(false, WindowMode::WINDOW_MODE_UNDEFINED);
2016     ASSERT_EQ(session_->handler_, nullptr);
2017 }
2018 
2019 /**
2020  * @tc.name: SetOffset01
2021  * @tc.desc: SetOffset Test
2022  * @tc.type: FUNC
2023  */
HWTEST_F(WindowSessionTest2, SetOffset01, Function | SmallTest | Level2)2024 HWTEST_F(WindowSessionTest2, SetOffset01, Function | SmallTest | Level2)
2025 {
2026     ASSERT_NE(session_, nullptr);
2027     session_->SetOffset(0, 0);
2028     ASSERT_EQ(session_->GetOffsetX(), 0);
2029 }
2030 }
2031 } // namespace Rosen
2032 } // namespace OHOS
2033