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