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