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