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