1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2022-2023 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 18e0dac50fSopenharmony_ci#include "display_manager.h" 19e0dac50fSopenharmony_ci#include "drag_controller.h" 20e0dac50fSopenharmony_ci#include "window_helper.h" 21e0dac50fSopenharmony_ci#include "window_inner_manager.h" 22e0dac50fSopenharmony_ci#include "window_manager_service.h" 23e0dac50fSopenharmony_ci 24e0dac50fSopenharmony_ciusing namespace testing; 25e0dac50fSopenharmony_ciusing namespace testing::ext; 26e0dac50fSopenharmony_ci 27e0dac50fSopenharmony_cinamespace OHOS { 28e0dac50fSopenharmony_cinamespace Rosen { 29e0dac50fSopenharmony_ciconstexpr uint32_t WINDOW_ID = 1000; 30e0dac50fSopenharmony_ciclass DragControllerTest : public testing::Test { 31e0dac50fSopenharmony_cipublic: 32e0dac50fSopenharmony_ci static void SetUpTestCase(); 33e0dac50fSopenharmony_ci static void TearDownTestCase(); 34e0dac50fSopenharmony_ci void SetUp() override; 35e0dac50fSopenharmony_ci void TearDown() override; 36e0dac50fSopenharmony_ci static sptr<WindowRoot> windowRoot_; 37e0dac50fSopenharmony_ciprivate: 38e0dac50fSopenharmony_ci static sptr<MoveDragController> moveDragController_; 39e0dac50fSopenharmony_ci static std::shared_ptr<MMI::IInputEventConsumer> inputListener_; 40e0dac50fSopenharmony_ci}; 41e0dac50fSopenharmony_ci 42e0dac50fSopenharmony_cisptr<MoveDragController> DragControllerTest::moveDragController_ = nullptr; 43e0dac50fSopenharmony_cistd::shared_ptr<MMI::IInputEventConsumer> DragControllerTest::inputListener_ = nullptr; 44e0dac50fSopenharmony_cisptr<WindowRoot> DragControllerTest::windowRoot_ = nullptr; 45e0dac50fSopenharmony_ci 46e0dac50fSopenharmony_civoid DragControllerTest::SetUpTestCase() 47e0dac50fSopenharmony_ci{ 48e0dac50fSopenharmony_ci WindowInnerManager::GetInstance().Init(); 49e0dac50fSopenharmony_ci moveDragController_ = WindowInnerManager::GetInstance().moveDragController_; 50e0dac50fSopenharmony_ci 51e0dac50fSopenharmony_ci auto display = DisplayManager::GetInstance().GetDefaultDisplay(); 52e0dac50fSopenharmony_ci ASSERT_TRUE((display != nullptr)); 53e0dac50fSopenharmony_ci sptr<DisplayInfo> displayInfo = display->GetDisplayInfo(); 54e0dac50fSopenharmony_ci ASSERT_TRUE((displayInfo != nullptr)); 55e0dac50fSopenharmony_ci ASSERT_TRUE((display != nullptr)); 56e0dac50fSopenharmony_ci ASSERT_TRUE((display->GetDisplayInfo() != nullptr)); 57e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 58e0dac50fSopenharmony_ci inputListener_ = moveDragController_->inputListener_; 59e0dac50fSopenharmony_ci ASSERT_TRUE(inputListener_); 60e0dac50fSopenharmony_ci} 61e0dac50fSopenharmony_ci 62e0dac50fSopenharmony_civoid DragControllerTest::TearDownTestCase() 63e0dac50fSopenharmony_ci{ 64e0dac50fSopenharmony_ci moveDragController_ = nullptr; 65e0dac50fSopenharmony_ci inputListener_ = nullptr; 66e0dac50fSopenharmony_ci WindowInnerManager::GetInstance().Stop(); 67e0dac50fSopenharmony_ci} 68e0dac50fSopenharmony_ci 69e0dac50fSopenharmony_civoid DragControllerTest::SetUp() 70e0dac50fSopenharmony_ci{ 71e0dac50fSopenharmony_ci windowRoot_ = new WindowRoot(nullptr); 72e0dac50fSopenharmony_ci} 73e0dac50fSopenharmony_ci 74e0dac50fSopenharmony_civoid DragControllerTest::TearDown() 75e0dac50fSopenharmony_ci{ 76e0dac50fSopenharmony_ci windowRoot_ = nullptr; 77e0dac50fSopenharmony_ci} 78e0dac50fSopenharmony_ci 79e0dac50fSopenharmony_cinamespace { 80e0dac50fSopenharmony_ci/** 81e0dac50fSopenharmony_ci * @tc.name: OnInputEvent01 82e0dac50fSopenharmony_ci * @tc.desc: OnInputEven01, keyEvent 83e0dac50fSopenharmony_ci * @tc.type: FUNC 84e0dac50fSopenharmony_ci */ 85e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, OnInputEvent01, Function | SmallTest | Level2) 86e0dac50fSopenharmony_ci{ 87e0dac50fSopenharmony_ci ASSERT_TRUE(inputListener_); 88e0dac50fSopenharmony_ci std::shared_ptr<MMI::KeyEvent> keyEvent; 89e0dac50fSopenharmony_ci inputListener_->OnInputEvent(keyEvent); 90e0dac50fSopenharmony_ci keyEvent = MMI::KeyEvent::Create(); 91e0dac50fSopenharmony_ci inputListener_->OnInputEvent(keyEvent); 92e0dac50fSopenharmony_ci} 93e0dac50fSopenharmony_ci 94e0dac50fSopenharmony_ci/** 95e0dac50fSopenharmony_ci * @tc.name: OnInputEvent02 96e0dac50fSopenharmony_ci * @tc.desc: OnInputEvent02, axisEvent 97e0dac50fSopenharmony_ci * @tc.type: FUNC 98e0dac50fSopenharmony_ci */ 99e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, OnInputEvent02, Function | SmallTest | Level2) 100e0dac50fSopenharmony_ci{ 101e0dac50fSopenharmony_ci ASSERT_TRUE(inputListener_); 102e0dac50fSopenharmony_ci std::shared_ptr<MMI::AxisEvent> axisEvent; 103e0dac50fSopenharmony_ci inputListener_->OnInputEvent(axisEvent); 104e0dac50fSopenharmony_ci axisEvent = MMI::AxisEvent::Create(); 105e0dac50fSopenharmony_ci inputListener_->OnInputEvent(axisEvent); 106e0dac50fSopenharmony_ci} 107e0dac50fSopenharmony_ci 108e0dac50fSopenharmony_ci/** 109e0dac50fSopenharmony_ci * @tc.name: OnInputEvent03 110e0dac50fSopenharmony_ci * @tc.desc: OnInputEvent03, pointerEvent 111e0dac50fSopenharmony_ci * @tc.type: FUNC 112e0dac50fSopenharmony_ci */ 113e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, OnInputEvent03, Function | SmallTest | Level2) 114e0dac50fSopenharmony_ci{ 115e0dac50fSopenharmony_ci ASSERT_TRUE(inputListener_); 116e0dac50fSopenharmony_ci std::shared_ptr<MMI::PointerEvent> pointerEvent; 117e0dac50fSopenharmony_ci inputListener_->OnInputEvent(pointerEvent); 118e0dac50fSopenharmony_ci pointerEvent = MMI::PointerEvent::Create(); 119e0dac50fSopenharmony_ci ASSERT_TRUE(pointerEvent); 120e0dac50fSopenharmony_ci pointerEvent->SetAgentWindowId(INVALID_WINDOW_ID); 121e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 122e0dac50fSopenharmony_ci moveDragController_->SetActiveWindowId(1); 123e0dac50fSopenharmony_ci inputListener_->OnInputEvent(pointerEvent); 124e0dac50fSopenharmony_ci} 125e0dac50fSopenharmony_ci 126e0dac50fSopenharmony_ci/** 127e0dac50fSopenharmony_ci * @tc.name: Stop02 128e0dac50fSopenharmony_ci * @tc.desc: Stop02 129e0dac50fSopenharmony_ci * @tc.type: FUNC 130e0dac50fSopenharmony_ci */ 131e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, Stop02, Function | SmallTest | Level2) 132e0dac50fSopenharmony_ci{ 133e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 134e0dac50fSopenharmony_ci moveDragController_->Init(); 135e0dac50fSopenharmony_ci moveDragController_->Stop(); 136e0dac50fSopenharmony_ci moveDragController_->Init(); 137e0dac50fSopenharmony_ci} 138e0dac50fSopenharmony_ci 139e0dac50fSopenharmony_ci/** 140e0dac50fSopenharmony_ci * @tc.name: HandleEndUpMovingOrDragging 141e0dac50fSopenharmony_ci * @tc.desc: HandleEndUpMovingOrDragging 142e0dac50fSopenharmony_ci * @tc.type: FUNC 143e0dac50fSopenharmony_ci */ 144e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleEndUpMovingOrDragging, Function | SmallTest | Level2) 145e0dac50fSopenharmony_ci{ 146e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 147e0dac50fSopenharmony_ci uint32_t windowId = 1; // windowId: 1 148e0dac50fSopenharmony_ci moveDragController_->HandleEndUpMovingOrDragging(windowId); 149e0dac50fSopenharmony_ci moveDragController_->activeWindowId_ = windowId; 150e0dac50fSopenharmony_ci moveDragController_->HandleEndUpMovingOrDragging(windowId); 151e0dac50fSopenharmony_ci} 152e0dac50fSopenharmony_ci 153e0dac50fSopenharmony_ci/** 154e0dac50fSopenharmony_ci * @tc.name: HandleWindowRemovedOrDestroyed 155e0dac50fSopenharmony_ci * @tc.desc: HandleWindowRemovedOrDestroyed 156e0dac50fSopenharmony_ci * @tc.type: FUNC 157e0dac50fSopenharmony_ci */ 158e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleWindowRemovedOrDestroyed, Function | SmallTest | Level2) 159e0dac50fSopenharmony_ci{ 160e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 161e0dac50fSopenharmony_ci uint32_t windowId = 5; // windowId: 5 162e0dac50fSopenharmony_ci moveDragController_->HandleWindowRemovedOrDestroyed(windowId); 163e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = new MoveDragProperty(); 164e0dac50fSopenharmony_ci moveDragController_->HandleWindowRemovedOrDestroyed(windowId); 165e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startMoveFlag_ = true; 166e0dac50fSopenharmony_ci moveDragController_->HandleWindowRemovedOrDestroyed(windowId); 167e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startMoveFlag_ = false; 168e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startDragFlag_ = true; 169e0dac50fSopenharmony_ci moveDragController_->HandleWindowRemovedOrDestroyed(windowId); 170e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startMoveFlag_ = true; 171e0dac50fSopenharmony_ci moveDragController_->HandleWindowRemovedOrDestroyed(windowId); 172e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = nullptr; 173e0dac50fSopenharmony_ci} 174e0dac50fSopenharmony_ci 175e0dac50fSopenharmony_ci/** 176e0dac50fSopenharmony_ci * @tc.name: ConvertPointerPosToDisplayGroupPos 177e0dac50fSopenharmony_ci * @tc.desc: ConvertPointerPosToDisplayGroupPos 178e0dac50fSopenharmony_ci * @tc.type: FUNC 179e0dac50fSopenharmony_ci */ 180e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, ConvertPointerPosToDisplayGroupPos, Function | SmallTest | Level2) 181e0dac50fSopenharmony_ci{ 182e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 183e0dac50fSopenharmony_ci 184e0dac50fSopenharmony_ci auto displayInfo = new DisplayInfo(); 185e0dac50fSopenharmony_ci displayInfo->SetDisplayId(0); 186e0dac50fSopenharmony_ci displayInfo->SetWidth(720); // displayWidth: 720 187e0dac50fSopenharmony_ci displayInfo->SetHeight(1280); // displayHeight: 1280 188e0dac50fSopenharmony_ci displayInfo->SetOffsetX(0); 189e0dac50fSopenharmony_ci displayInfo->SetOffsetY(0); 190e0dac50fSopenharmony_ci DisplayGroupInfo::GetInstance().AddDisplayInfo(displayInfo); 191e0dac50fSopenharmony_ci 192e0dac50fSopenharmony_ci int32_t posX = 0; 193e0dac50fSopenharmony_ci int32_t posY = 0; 194e0dac50fSopenharmony_ci moveDragController_->ConvertPointerPosToDisplayGroupPos(0, posX, posY); 195e0dac50fSopenharmony_ci 196e0dac50fSopenharmony_ci moveDragController_->ConvertPointerPosToDisplayGroupPos(1, posX, posY); 197e0dac50fSopenharmony_ci moveDragController_->ConvertPointerPosToDisplayGroupPos(0, posX, posY); 198e0dac50fSopenharmony_ci DisplayGroupInfo::GetInstance().RemoveDisplayInfo(0); 199e0dac50fSopenharmony_ci} 200e0dac50fSopenharmony_ci 201e0dac50fSopenharmony_ci/** 202e0dac50fSopenharmony_ci * @tc.name: ConsumePointerEvent 203e0dac50fSopenharmony_ci * @tc.desc: ConsumePointerEvent 204e0dac50fSopenharmony_ci * @tc.type: FUNC 205e0dac50fSopenharmony_ci */ 206e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, ConsumePointerEvent, Function | SmallTest | Level2) 207e0dac50fSopenharmony_ci{ 208e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 209e0dac50fSopenharmony_ci std::shared_ptr<MMI::PointerEvent> pointerEvent; 210e0dac50fSopenharmony_ci moveDragController_->ConsumePointerEvent(pointerEvent); 211e0dac50fSopenharmony_ci pointerEvent = MMI::PointerEvent::Create(); 212e0dac50fSopenharmony_ci ASSERT_TRUE(pointerEvent); 213e0dac50fSopenharmony_ci pointerEvent->SetAgentWindowId(1); 214e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_CANCEL); 215e0dac50fSopenharmony_ci moveDragController_->ConsumePointerEvent(pointerEvent); 216e0dac50fSopenharmony_ci} 217e0dac50fSopenharmony_ci 218e0dac50fSopenharmony_ci/** 219e0dac50fSopenharmony_ci * @tc.name: RequestVsync 220e0dac50fSopenharmony_ci * @tc.desc: RequestVsync Test 221e0dac50fSopenharmony_ci * @tc.type: FUNC 222e0dac50fSopenharmony_ci */ 223e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, RequestVsync, Function | SmallTest | Level2) 224e0dac50fSopenharmony_ci{ 225e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 226e0dac50fSopenharmony_ci NodeId nodeId = 0; 227e0dac50fSopenharmony_ci uint32_t windowId = 1; 228e0dac50fSopenharmony_ci std::shared_ptr<VsyncStation> vsyncStation = std::make_shared<VsyncStation>(nodeId); 229e0dac50fSopenharmony_ci moveDragController_->vsyncStationMap_.emplace(windowId, vsyncStation); 230e0dac50fSopenharmony_ci std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create(); 231e0dac50fSopenharmony_ci pointerEvent->SetAgentWindowId(windowId); 232e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE); 233e0dac50fSopenharmony_ci moveDragController_->ConsumePointerEvent(pointerEvent); 234e0dac50fSopenharmony_ci ASSERT_NE(vsyncStation, nullptr); 235e0dac50fSopenharmony_ci} 236e0dac50fSopenharmony_ci 237e0dac50fSopenharmony_ci/** 238e0dac50fSopenharmony_ci * @tc.name: OnReceiveVsync 239e0dac50fSopenharmony_ci * @tc.desc: OnReceiveVsync 240e0dac50fSopenharmony_ci * @tc.type: FUNC 241e0dac50fSopenharmony_ci */ 242e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, OnReceiveVsync, Function | SmallTest | Level2) 243e0dac50fSopenharmony_ci{ 244e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 245e0dac50fSopenharmony_ci std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create(); 246e0dac50fSopenharmony_ci ASSERT_TRUE(pointerEvent); 247e0dac50fSopenharmony_ci moveDragController_->OnReceiveVsync(0); 248e0dac50fSopenharmony_ci moveDragController_->moveEvent_ = pointerEvent; 249e0dac50fSopenharmony_ci moveDragController_->OnReceiveVsync(0); 250e0dac50fSopenharmony_ci} 251e0dac50fSopenharmony_ci 252e0dac50fSopenharmony_ci/** 253e0dac50fSopenharmony_ci * @tc.name: GetVsyncStationByWindowId1 254e0dac50fSopenharmony_ci * @tc.desc: GetVsyncStationByWindowId Test Succ 255e0dac50fSopenharmony_ci * @tc.type: FUNC 256e0dac50fSopenharmony_ci */ 257e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetVsyncStationByWindowId1, Function | SmallTest | Level2) 258e0dac50fSopenharmony_ci{ 259e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 260e0dac50fSopenharmony_ci NodeId nodeId = 0; 261e0dac50fSopenharmony_ci uint32_t windowId = WINDOW_ID; 262e0dac50fSopenharmony_ci std::shared_ptr<VsyncStation> vsyncStation = std::make_shared<VsyncStation>(nodeId); 263e0dac50fSopenharmony_ci moveDragController_->vsyncStationMap_.emplace(windowId, vsyncStation); 264e0dac50fSopenharmony_ci std::shared_ptr<VsyncStation> vsyncStationRes = moveDragController_->GetVsyncStationByWindowId(windowId); 265e0dac50fSopenharmony_ci ASSERT_EQ(vsyncStation, vsyncStationRes); 266e0dac50fSopenharmony_ci} 267e0dac50fSopenharmony_ci 268e0dac50fSopenharmony_ci/** 269e0dac50fSopenharmony_ci * @tc.name: GetVsyncStationByWindowId2 270e0dac50fSopenharmony_ci * @tc.desc: GetVsyncStationByWindowId Test Fail 271e0dac50fSopenharmony_ci * @tc.type: FUNC 272e0dac50fSopenharmony_ci */ 273e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetVsyncStationByWindowId2, Function | SmallTest | Level2) 274e0dac50fSopenharmony_ci{ 275e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 276e0dac50fSopenharmony_ci uint32_t windowId = 100; 277e0dac50fSopenharmony_ci moveDragController_->vsyncStationMap_.clear(); 278e0dac50fSopenharmony_ci moveDragController_->SetWindowRoot(windowRoot_); 279e0dac50fSopenharmony_ci std::shared_ptr<VsyncStation> vsyncStation = moveDragController_->GetVsyncStationByWindowId(windowId); 280e0dac50fSopenharmony_ci ASSERT_EQ(vsyncStation, nullptr); 281e0dac50fSopenharmony_ci} 282e0dac50fSopenharmony_ci 283e0dac50fSopenharmony_ci/** 284e0dac50fSopenharmony_ci * @tc.name: GetHotZoneRect 285e0dac50fSopenharmony_ci * @tc.desc: GetHotZoneRect 286e0dac50fSopenharmony_ci * @tc.type: FUNC 287e0dac50fSopenharmony_ci */ 288e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetHotZoneRect, Function | SmallTest | Level2) 289e0dac50fSopenharmony_ci{ 290e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 291e0dac50fSopenharmony_ci 292e0dac50fSopenharmony_ci auto displayInfo = new DisplayInfo(); 293e0dac50fSopenharmony_ci displayInfo->SetDisplayId(0); 294e0dac50fSopenharmony_ci displayInfo->SetWidth(720); // displayWidth: 720 295e0dac50fSopenharmony_ci displayInfo->SetHeight(1280); // displayHeight: 1280 296e0dac50fSopenharmony_ci displayInfo->SetOffsetX(0); 297e0dac50fSopenharmony_ci displayInfo->SetOffsetY(0); 298e0dac50fSopenharmony_ci DisplayGroupInfo::GetInstance().AddDisplayInfo(displayInfo); 299e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = new MoveDragProperty(); 300e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->targetDisplayId_ = 0; 301e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startRectExceptCorner_ = { 0, 0, 40, 40 }; 302e0dac50fSopenharmony_ci 303e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 20; // startPointPosX: 20 304e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 20; // startPointPosY: 20 305e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 306e0dac50fSopenharmony_ci 307e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = -1; // startPointPosX: -1 308e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = -1; // startPointPosY: -1 309e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 310e0dac50fSopenharmony_ci 311e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = -1; // startPointPosX: -1 312e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 20; // startPointPosY: 20 313e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 314e0dac50fSopenharmony_ci 315e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 41; // startPointPosX: 41 316e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 20; // startPointPosY: 20 317e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 318e0dac50fSopenharmony_ci 319e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 20; // startPointPosX: 20 320e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = -1; // startPointPosY: -1 321e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 322e0dac50fSopenharmony_ci 323e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 20; // startPointPosX: 20 324e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 41; // startPointPosY: 41 325e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 326e0dac50fSopenharmony_ci 327e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 41; // startPointPosX: 41 328e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 41; // startPointPosY: 41 329e0dac50fSopenharmony_ci moveDragController_->GetHotZoneRect(); 330e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = nullptr; 331e0dac50fSopenharmony_ci} 332e0dac50fSopenharmony_ci 333e0dac50fSopenharmony_ci/** 334e0dac50fSopenharmony_ci * @tc.name: HandleDragEvent01 335e0dac50fSopenharmony_ci * @tc.desc: HandleDragEvent01 336e0dac50fSopenharmony_ci * @tc.type: FUNC 337e0dac50fSopenharmony_ci */ 338e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleDragEvent01, Function | SmallTest | Level2) 339e0dac50fSopenharmony_ci{ 340e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 341e0dac50fSopenharmony_ci int32_t posX = 0; 342e0dac50fSopenharmony_ci int32_t posY = 0; 343e0dac50fSopenharmony_ci int32_t pointId = 0; 344e0dac50fSopenharmony_ci int32_t sourceType = 0; 345e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 346e0dac50fSopenharmony_ci 347e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = new MoveDragProperty(); 348e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 349e0dac50fSopenharmony_ci 350e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startDragFlag_ = true; 351e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 352e0dac50fSopenharmony_ci 353e0dac50fSopenharmony_ci pointId = 1; 354e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 355e0dac50fSopenharmony_ci 356e0dac50fSopenharmony_ci pointId = 0; 357e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 358e0dac50fSopenharmony_ci 359e0dac50fSopenharmony_ci sourceType = 1; 360e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 361e0dac50fSopenharmony_ci 362e0dac50fSopenharmony_ci sourceType = 0; 363e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 364e0dac50fSopenharmony_ci 365e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = nullptr; 366e0dac50fSopenharmony_ci} 367e0dac50fSopenharmony_ci 368e0dac50fSopenharmony_ci/** 369e0dac50fSopenharmony_ci * @tc.name: HandleDragEvent02 370e0dac50fSopenharmony_ci * @tc.desc: HandleDragEvent02 371e0dac50fSopenharmony_ci * @tc.type: FUNC 372e0dac50fSopenharmony_ci */ 373e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleDragEvent02, Function | SmallTest | Level2) 374e0dac50fSopenharmony_ci{ 375e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 376e0dac50fSopenharmony_ci int32_t posX = 0; 377e0dac50fSopenharmony_ci int32_t posY = 0; 378e0dac50fSopenharmony_ci int32_t pointId = 0; 379e0dac50fSopenharmony_ci int32_t sourceType = 0; 380e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 381e0dac50fSopenharmony_ci 382e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = new MoveDragProperty(); 383e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 384e0dac50fSopenharmony_ci 385e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startDragFlag_ = true; 386e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->targetDisplayId_ = 0; 387e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startRectExceptCorner_ = { 0, 0, 40, 40 }; // hotZone: 0, 0, 40, 40 388e0dac50fSopenharmony_ci 389e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = -1; // startPointPosX: -1 390e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = -1; // startPointPosY: -1 391e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 392e0dac50fSopenharmony_ci 393e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 45; // startPointPosX: 45 394e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = -1; // startPointPosY: -1 395e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 396e0dac50fSopenharmony_ci 397e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = -1; // startPointPosX: -1 398e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 45; // startPointPosY: 45 399e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 400e0dac50fSopenharmony_ci 401e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosX_ = 45; // startPointPosX: 45 402e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointPosY_ = 45; // startPointPosY: 45 403e0dac50fSopenharmony_ci moveDragController_->HandleDragEvent(0, posX, posY, pointId, sourceType); 404e0dac50fSopenharmony_ci 405e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = nullptr; 406e0dac50fSopenharmony_ci} 407e0dac50fSopenharmony_ci 408e0dac50fSopenharmony_ci/** 409e0dac50fSopenharmony_ci * @tc.name: HandleMoveEvent 410e0dac50fSopenharmony_ci * @tc.desc: HandleMoveEvent 411e0dac50fSopenharmony_ci * @tc.type: FUNC 412e0dac50fSopenharmony_ci */ 413e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleMoveEvent, Function | SmallTest | Level2) 414e0dac50fSopenharmony_ci{ 415e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 416e0dac50fSopenharmony_ci int32_t posX = 0; 417e0dac50fSopenharmony_ci int32_t posY = 0; 418e0dac50fSopenharmony_ci int32_t pointId = 0; 419e0dac50fSopenharmony_ci int32_t sourceType = 0; 420e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 421e0dac50fSopenharmony_ci 422e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = new MoveDragProperty(); 423e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 424e0dac50fSopenharmony_ci 425e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startMoveFlag_ = true; 426e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 427e0dac50fSopenharmony_ci 428e0dac50fSopenharmony_ci pointId = 1; 429e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 430e0dac50fSopenharmony_ci 431e0dac50fSopenharmony_ci pointId = 0; 432e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 433e0dac50fSopenharmony_ci 434e0dac50fSopenharmony_ci sourceType = 1; 435e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 436e0dac50fSopenharmony_ci 437e0dac50fSopenharmony_ci sourceType = 0; 438e0dac50fSopenharmony_ci moveDragController_->HandleMoveEvent(0, posX, posY, pointId, sourceType); 439e0dac50fSopenharmony_ci 440e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = nullptr; 441e0dac50fSopenharmony_ci} 442e0dac50fSopenharmony_ci 443e0dac50fSopenharmony_ci/** 444e0dac50fSopenharmony_ci * @tc.name: HandlePointerEvent 445e0dac50fSopenharmony_ci * @tc.desc: HandlePointerEvent 446e0dac50fSopenharmony_ci * @tc.type: FUNC 447e0dac50fSopenharmony_ci */ 448e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandlePointerEvent, Function | SmallTest | Level2) 449e0dac50fSopenharmony_ci{ 450e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 451e0dac50fSopenharmony_ci std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create(); 452e0dac50fSopenharmony_ci ASSERT_TRUE(pointerEvent); 453e0dac50fSopenharmony_ci pointerEvent->SetAgentWindowId(1); 454e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem pointerItem; 455e0dac50fSopenharmony_ci pointerItem.SetPointerId(0); 456e0dac50fSopenharmony_ci pointerItem.SetDisplayX(0); 457e0dac50fSopenharmony_ci pointerItem.SetDisplayY(0); 458e0dac50fSopenharmony_ci pointerEvent->AddPointerItem(pointerItem); 459e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 460e0dac50fSopenharmony_ci 461e0dac50fSopenharmony_ci pointerEvent->SetPointerId(0); 462e0dac50fSopenharmony_ci pointerEvent->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE); 463e0dac50fSopenharmony_ci pointerEvent->SetButtonId(MMI::PointerEvent::MOUSE_BUTTON_LEFT); 464e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 465e0dac50fSopenharmony_ci 466e0dac50fSopenharmony_ci moveDragController_->windowProperty_ = new WindowProperty(); 467e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = new MoveDragProperty(); 468e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 469e0dac50fSopenharmony_ci 470e0dac50fSopenharmony_ci pointerEvent->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE); 471e0dac50fSopenharmony_ci pointerEvent->SetButtonId(MMI::PointerEvent::MOUSE_BUTTON_RIGHT); 472e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 473e0dac50fSopenharmony_ci 474e0dac50fSopenharmony_ci pointerEvent->SetButtonId(MMI::PointerEvent::MOUSE_BUTTON_LEFT); 475e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 476e0dac50fSopenharmony_ci 477e0dac50fSopenharmony_ci pointerEvent->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN); 478e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_DOWN); 479e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 480e0dac50fSopenharmony_ci 481e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_BUTTON_DOWN); 482e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 483e0dac50fSopenharmony_ci 484e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointerId_ = 1; 485e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->sourceType_ = 2; // sourceType: 2 486e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 487e0dac50fSopenharmony_ci 488e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->startPointerId_ = 0; 489e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_->sourceType_ = 2; // sourceType: 2 490e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 491e0dac50fSopenharmony_ci 492e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE); 493e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 494e0dac50fSopenharmony_ci 495e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_UP); 496e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 497e0dac50fSopenharmony_ci 498e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_BUTTON_UP); 499e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 500e0dac50fSopenharmony_ci 501e0dac50fSopenharmony_ci pointerEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_CANCEL); 502e0dac50fSopenharmony_ci moveDragController_->HandlePointerEvent(pointerEvent); 503e0dac50fSopenharmony_ci 504e0dac50fSopenharmony_ci moveDragController_->windowProperty_ = nullptr; 505e0dac50fSopenharmony_ci moveDragController_->moveDragProperty_ = nullptr; 506e0dac50fSopenharmony_ci} 507e0dac50fSopenharmony_ci 508e0dac50fSopenharmony_ci/** 509e0dac50fSopenharmony_ci * @tc.name: UpdateDragInfo01 510e0dac50fSopenharmony_ci * @tc.desc: UpdateDragInfo01 511e0dac50fSopenharmony_ci * @tc.type: FUNC 512e0dac50fSopenharmony_ci */ 513e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, UpdateDragInfo01, Function | SmallTest | Level2) 514e0dac50fSopenharmony_ci{ 515e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 516e0dac50fSopenharmony_ci uint32_t windowId = 0; 517e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 518e0dac50fSopenharmony_ci dragcontroller->UpdateDragInfo(windowId); 519e0dac50fSopenharmony_ci} 520e0dac50fSopenharmony_ci 521e0dac50fSopenharmony_ci/** 522e0dac50fSopenharmony_ci * @tc.name: UpdateDragInfo02 523e0dac50fSopenharmony_ci * @tc.desc: UpdateDragInfo02 524e0dac50fSopenharmony_ci * @tc.type: FUNC 525e0dac50fSopenharmony_ci */ 526e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, UpdateDragInfo02, Function | SmallTest | Level2) 527e0dac50fSopenharmony_ci{ 528e0dac50fSopenharmony_ci uint32_t windowId = 1; 529e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 530e0dac50fSopenharmony_ci dragcontroller->UpdateDragInfo(windowId); 531e0dac50fSopenharmony_ci sptr<WindowNode> dragNode = windowRoot_->GetWindowNode(windowId); 532e0dac50fSopenharmony_ci ASSERT_EQ(dragNode, nullptr); 533e0dac50fSopenharmony_ci} 534e0dac50fSopenharmony_ci 535e0dac50fSopenharmony_ci/** 536e0dac50fSopenharmony_ci * @tc.name: StartDrag01 537e0dac50fSopenharmony_ci * @tc.desc: StartDrag01 538e0dac50fSopenharmony_ci * @tc.type: FUNC 539e0dac50fSopenharmony_ci */ 540e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, StartDrag01, Function | SmallTest | Level2) 541e0dac50fSopenharmony_ci{ 542e0dac50fSopenharmony_ci uint32_t windowId = 1; 543e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 544e0dac50fSopenharmony_ci dragcontroller->StartDrag(windowId); 545e0dac50fSopenharmony_ci sptr<WindowNode> dragNode = windowRoot_->GetWindowNode(windowId); 546e0dac50fSopenharmony_ci ASSERT_EQ(dragNode, nullptr); 547e0dac50fSopenharmony_ci} 548e0dac50fSopenharmony_ci 549e0dac50fSopenharmony_ci/** 550e0dac50fSopenharmony_ci * @tc.name: FinishDrag01 551e0dac50fSopenharmony_ci * @tc.desc: FinishDrag01 552e0dac50fSopenharmony_ci * @tc.type: FUNC 553e0dac50fSopenharmony_ci */ 554e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, FinishDrag01, Function | SmallTest | Level2) 555e0dac50fSopenharmony_ci{ 556e0dac50fSopenharmony_ci uint32_t windowId = 1; 557e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 558e0dac50fSopenharmony_ci dragcontroller->FinishDrag(windowId); 559e0dac50fSopenharmony_ci sptr<WindowNode> dragNode = windowRoot_->GetWindowNode(windowId); 560e0dac50fSopenharmony_ci ASSERT_EQ(dragNode, nullptr); 561e0dac50fSopenharmony_ci} 562e0dac50fSopenharmony_ci 563e0dac50fSopenharmony_ci/** 564e0dac50fSopenharmony_ci * @tc.name: GetHitWindow01 565e0dac50fSopenharmony_ci * @tc.desc: GetHitWindow01 566e0dac50fSopenharmony_ci * @tc.type: FUNC 567e0dac50fSopenharmony_ci */ 568e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetHitWindow01, Function | SmallTest | Level2) 569e0dac50fSopenharmony_ci{ 570e0dac50fSopenharmony_ci DisplayId id = 0; 571e0dac50fSopenharmony_ci PointInfo point; 572e0dac50fSopenharmony_ci point.x = 1; 573e0dac50fSopenharmony_ci point.y = 1; 574e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 575e0dac50fSopenharmony_ci ASSERT_EQ(nullptr, dragcontroller->GetHitWindow(id, point)); 576e0dac50fSopenharmony_ci} 577e0dac50fSopenharmony_ci 578e0dac50fSopenharmony_ci/** 579e0dac50fSopenharmony_ci * @tc.name: GetHitWindow02 580e0dac50fSopenharmony_ci * @tc.desc: GetHitWindow02 581e0dac50fSopenharmony_ci * @tc.type: FUNC 582e0dac50fSopenharmony_ci */ 583e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetHitWindow02, Function | SmallTest | Level2) 584e0dac50fSopenharmony_ci{ 585e0dac50fSopenharmony_ci DisplayId id = DISPLAY_ID_INVALID; 586e0dac50fSopenharmony_ci PointInfo point; 587e0dac50fSopenharmony_ci point.x = 1; 588e0dac50fSopenharmony_ci point.y = 2; 589e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 590e0dac50fSopenharmony_ci ASSERT_EQ(nullptr, dragcontroller->GetHitWindow(id, point)); 591e0dac50fSopenharmony_ci} 592e0dac50fSopenharmony_ci 593e0dac50fSopenharmony_ci/** 594e0dac50fSopenharmony_ci * @tc.name: GetHitWindow03 595e0dac50fSopenharmony_ci * @tc.desc: GetHitWindow03 596e0dac50fSopenharmony_ci * @tc.type: FUNC 597e0dac50fSopenharmony_ci */ 598e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetHitWindow03, Function | SmallTest | Level2) 599e0dac50fSopenharmony_ci{ 600e0dac50fSopenharmony_ci DisplayId id = 1; 601e0dac50fSopenharmony_ci PointInfo point; 602e0dac50fSopenharmony_ci point.x = 1; 603e0dac50fSopenharmony_ci point.y = 2; 604e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 605e0dac50fSopenharmony_ci sptr<WindowNodeContainer> container = windowRoot_->GetOrCreateWindowNodeContainer(id); 606e0dac50fSopenharmony_ci ASSERT_EQ(nullptr, container); 607e0dac50fSopenharmony_ci ASSERT_EQ(nullptr, dragcontroller->GetHitWindow(id, point)); 608e0dac50fSopenharmony_ci} 609e0dac50fSopenharmony_ci 610e0dac50fSopenharmony_ci/** 611e0dac50fSopenharmony_ci * @tc.name: Init01 612e0dac50fSopenharmony_ci * @tc.desc: Init01 613e0dac50fSopenharmony_ci * @tc.type: FUNC 614e0dac50fSopenharmony_ci */ 615e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, Init02, Function | SmallTest | Level2) 616e0dac50fSopenharmony_ci{ 617e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 618e0dac50fSopenharmony_ci auto ret = moveDragController_->Init(); 619e0dac50fSopenharmony_ci ASSERT_EQ(true, ret); 620e0dac50fSopenharmony_ci} 621e0dac50fSopenharmony_ci 622e0dac50fSopenharmony_ci/** 623e0dac50fSopenharmony_ci * @tc.name: StartDrag02 624e0dac50fSopenharmony_ci * @tc.desc: StartDrag 625e0dac50fSopenharmony_ci * @tc.type: FUNC 626e0dac50fSopenharmony_ci */ 627e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, StartDrag02, Function | SmallTest | Level2) 628e0dac50fSopenharmony_ci{ 629e0dac50fSopenharmony_ci uint32_t windowId = 0; 630e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 631e0dac50fSopenharmony_ci dragcontroller->StartDrag(windowId); 632e0dac50fSopenharmony_ci sptr<WindowNode> dragNode = nullptr; 633e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 634e0dac50fSopenharmony_ci} 635e0dac50fSopenharmony_ci 636e0dac50fSopenharmony_ci/** 637e0dac50fSopenharmony_ci * @tc.name: FinishDrag02 638e0dac50fSopenharmony_ci * @tc.desc: FinishDrag 639e0dac50fSopenharmony_ci * @tc.type: FUNC 640e0dac50fSopenharmony_ci */ 641e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, FinishDrag02, Function | SmallTest | Level2) 642e0dac50fSopenharmony_ci{ 643e0dac50fSopenharmony_ci uint32_t windowId = 0; 644e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 645e0dac50fSopenharmony_ci dragcontroller->StartDrag(windowId); 646e0dac50fSopenharmony_ci uint64_t hitWindowId_ = 10; 647e0dac50fSopenharmony_ci sptr<WindowNode> hitWindow = windowRoot_->GetWindowNode(hitWindowId_); 648e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 649e0dac50fSopenharmony_ci} 650e0dac50fSopenharmony_ci 651e0dac50fSopenharmony_ci/** 652e0dac50fSopenharmony_ci * @tc.name: GetHitWindow04 653e0dac50fSopenharmony_ci * @tc.desc: GetHitWindow04 654e0dac50fSopenharmony_ci * @tc.type: FUNC 655e0dac50fSopenharmony_ci */ 656e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetHitWindow04, Function | SmallTest | Level2) 657e0dac50fSopenharmony_ci{ 658e0dac50fSopenharmony_ci DisplayId id = 0; 659e0dac50fSopenharmony_ci PointInfo point; 660e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 661e0dac50fSopenharmony_ci ASSERT_EQ(nullptr, dragcontroller->GetHitWindow(id, point)); 662e0dac50fSopenharmony_ci} 663e0dac50fSopenharmony_ci 664e0dac50fSopenharmony_ci/** 665e0dac50fSopenharmony_ci * @tc.name: GetHitPoint 666e0dac50fSopenharmony_ci * @tc.desc: GetHitPoint 667e0dac50fSopenharmony_ci * @tc.type: FUNC 668e0dac50fSopenharmony_ci */ 669e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, GetHitPoint, Function | SmallTest | Level2) 670e0dac50fSopenharmony_ci{ 671e0dac50fSopenharmony_ci uint32_t windowId = 0; 672e0dac50fSopenharmony_ci PointInfo point; 673e0dac50fSopenharmony_ci sptr<DragController> dragcontroller = new DragController(windowRoot_); 674e0dac50fSopenharmony_ci auto result = dragcontroller->GetHitPoint(windowId, point); 675e0dac50fSopenharmony_ci sptr<WindowNode> windowNode = nullptr; 676e0dac50fSopenharmony_ci ASSERT_EQ(result, false); 677e0dac50fSopenharmony_ci} 678e0dac50fSopenharmony_ci 679e0dac50fSopenharmony_ci/** 680e0dac50fSopenharmony_ci * @tc.name: HandleEndUpMovingOrDragging01 681e0dac50fSopenharmony_ci * @tc.desc: HandleEndUpMovingOrDragging01 682e0dac50fSopenharmony_ci * @tc.type: FUNC 683e0dac50fSopenharmony_ci */ 684e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleEndUpMovingOrDragging01, Function | SmallTest | Level2) 685e0dac50fSopenharmony_ci{ 686e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 687e0dac50fSopenharmony_ci uint32_t windowId = 1; // windowId: 1 688e0dac50fSopenharmony_ci uint32_t activeWindowId_ = INVALID_WINDOW_ID; 689e0dac50fSopenharmony_ci ASSERT_NE(activeWindowId_, windowId); 690e0dac50fSopenharmony_ci moveDragController_->HandleEndUpMovingOrDragging(windowId); 691e0dac50fSopenharmony_ci} 692e0dac50fSopenharmony_ci 693e0dac50fSopenharmony_ci/** 694e0dac50fSopenharmony_ci * @tc.name: HandleDisplayLimitRectChange 695e0dac50fSopenharmony_ci * @tc.desc: HandleDisplayLimitRectChange 696e0dac50fSopenharmony_ci * @tc.type: FUNC 697e0dac50fSopenharmony_ci */ 698e0dac50fSopenharmony_ciHWTEST_F(DragControllerTest, HandleDisplayLimitRectChange, Function | SmallTest | Level2) 699e0dac50fSopenharmony_ci{ 700e0dac50fSopenharmony_ci std::map<DisplayId, Rect> limitRectMap; 701e0dac50fSopenharmony_ci moveDragController_->HandleDisplayLimitRectChange(limitRectMap); 702e0dac50fSopenharmony_ci ASSERT_TRUE(moveDragController_); 703e0dac50fSopenharmony_ci} 704e0dac50fSopenharmony_ci} 705e0dac50fSopenharmony_ci} // namespace Rosen 706e0dac50fSopenharmony_ci} // namespace OHOS