• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "test/unittest/core/manager/drag_drop_manager_test_ng.h"
17 #include "test/mock/base/mock_pixel_map.h"
18 #include "test/mock/base/mock_task_executor.h"
19 #include "test/mock/core/common/mock_udmf.h"
20 #include "test/mock/core/render/mock_render_context.h"
21 #include "core/common/ace_engine.h"
22 #include "core/components_ng/manager/drag_drop/drag_drop_behavior_reporter/drag_drop_behavior_reporter.h"
23 #include "core/components_ng/manager/drag_drop/drag_drop_controller_func_wrapper.h"
24 #include "core/components_ng/manager/drag_drop/drag_drop_func_wrapper.h"
25 #include "core/components_ng/pattern/relative_container/relative_container_pattern.h"
26 
27 using namespace testing;
28 using namespace testing::ext;
29 namespace OHOS::Ace::NG {
30 namespace {
31 constexpr float WIDTH = 400.0f;
32 constexpr float HEIGHT = 400.0f;
33 constexpr float WIDTH0 = 0.0f;
34 constexpr float HEIGHT0 = 0.0f;
35 } // namespace
36 struct GetDragPreviewInfoCase {
37     RefPtr<FrameNode> imageNode;
38     int32_t width;
39     int32_t height;
40     bool isDragWithContextMenu;
41 
GetDragPreviewInfoCaseOHOS::Ace::NG::GetDragPreviewInfoCase42     GetDragPreviewInfoCase(RefPtr<FrameNode> imageNode, int32_t width, int32_t height, bool isDragWithContextMenu)
43         : imageNode(imageNode), width(width), height(height), isDragWithContextMenu(isDragWithContextMenu)
44     {}
45 };
46 
SetUpTestCase()47 void DragDropManagerTestNgCoverage::SetUpTestCase()
48 {
49     MockPipelineContext::SetUp();
50     MockContainer::SetUp(NG::PipelineContext::GetCurrentContext());
51 }
52 
TearDownTestCase()53 void DragDropManagerTestNgCoverage::TearDownTestCase()
54 {
55     MockPipelineContext::TearDown();
56     MockContainer::TearDown();
57 }
58 
59 /**
60  * @tc.name: DragDropManagerTestNgCoverage001
61  * @tc.desc: Test FindTargetInChildNodes
62  * @tc.type: FUNC
63  * @tc.author:
64  */
65 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage001, TestSize.Level1)
66 {
67     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
68     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
69     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
70     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
71     frameNodeNull->SetActive(true);
72     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
73     CHECK_NULL_VOID(eventHub);
__anon1a33a8440202(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 74     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
75     eventHub->SetOnDrop(std::move(onDragDrop));
76     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
77     auto childNodeNull = AceType::MakeRefPtr<FrameNode>(
78         V2::UI_EXTENSION_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
79     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
80     childNodeNull->SetActive(true);
81     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
82     geometryNode->SetFrameSize(FRAME_SIZE);
83     frameNodeNull->SetGeometryNode(geometryNode);
84     childNodeNull->SetGeometryNode(geometryNode);
85     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
86     auto parentNodeTmp = pipelineTmp->GetRootElement();
87     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
88     parentFrameNodeTmp->SetGeometryNode(geometryNode);
89     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
90     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
91     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
92     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
93     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
94     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
95     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
96     PointF point(GLOBAL_X, GLOBAL_Y);
97     std::vector<RefPtr<FrameNode>> hitFrameNodes;
98     hitFrameNodes.push_back(parentFrameNodeTmp);
99     hitFrameNodes.push_back(frameNodeNull);
100     hitFrameNodes.push_back(childNodeNull);
101     auto pipeline = NG::PipelineContext::GetCurrentContext();
102     auto manager = pipeline->GetOverlayManager();
103     auto parentNode = pipeline->GetRootElement();
104     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
105     auto children = parentFrameNode->GetFrameChildren();
106     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
107     EXPECT_TRUE(result);
108 }
109 
110 /**
111  * @tc.name: DragDropManagerTestNgCoverage002
112  * @tc.desc: Test FindTargetInChildNodes
113  * @tc.type: FUNC
114  * @tc.author:
115  */
116 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage002, TestSize.Level1)
117 {
118     /**
119      * @tc.steps: step1. creat node and generate a node tree.
120      */
121     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
122     const RefPtr<FrameNode> GET_PARENT = FrameNode::CreateFrameNode("parent", 4, AceType::MakeRefPtr<Pattern>());
123     const RefPtr<FrameNode> GET_CHILD1 = FrameNode::CreateFrameNode("child1", 5, AceType::MakeRefPtr<Pattern>());
124     const RefPtr<FrameNode> GET_CHILD2 = FrameNode::CreateFrameNode("child2", 6, AceType::MakeRefPtr<Pattern>());
125     GET_CHILD1->UpdateInspectorId("child1");
126     GET_CHILD2->UpdateInspectorId("child2");
127     GET_PARENT->frameChildren_.insert(GET_CHILD1);
128     GET_PARENT->frameChildren_.insert(GET_CHILD2);
129     std::vector<RefPtr<FrameNode>> hitFrameNodes;
130     hitFrameNodes.push_back(GET_PARENT);
131     hitFrameNodes.push_back(GET_CHILD1);
132     hitFrameNodes.push_back(GET_CHILD2);
133     dragDropManager->AddGridDragFrameNode(GET_PARENT->GetId(), GET_PARENT);
134 
135     /**
136      * @tc.steps: step2. initialize parentEventHub and set HitTestMode.
137      */
138     auto parentEventHub = GET_PARENT->GetOrCreateGestureEventHub();
139     parentEventHub->SetHitTestMode(HitTestMode::HTMBLOCK);
140     auto dragResult = dragDropManager->FindTargetInChildNodes(GET_PARENT, hitFrameNodes, true);
141 
142     /**
143      * @tc.steps: step3. call GetDispatchFrameNode.
144      * @tc.expected: expect GetDispatchFrameNode ruturn nullptr.
145      */
146     EXPECT_EQ(dragResult, nullptr);
147 }
148 
149 /**
150  * @tc.name: DragDropManagerTestNgCoverage003
151  * @tc.desc: Test FindTargetInChildNodes with null child nodes
152  * @tc.type: FUNC
153  * @tc.author:
154  */
155 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage003, TestSize.Level1)
156 {
157     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
158     auto parentNode = AceType::MakeRefPtr<FrameNode>(
159         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
160     for (int i = 0; i < 5; ++i) {
161         parentNode->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
162     }
163     std::vector<RefPtr<FrameNode>> hitFrameNodes;
164     hitFrameNodes.push_back(parentNode);
165     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
166     EXPECT_EQ(result, nullptr);
167 }
168 
169 /**
170  * @tc.name: DragDropManagerTestNgCoverage004
171  * @tc.desc: Test FindTargetInChildNodes with hit FrameNode having OnDrop event
172  * @tc.type: FUNC
173  * @tc.author:
174  */
175 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage004, TestSize.Level1)
176 {
177     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
178     auto parentNode = AceType::MakeRefPtr<FrameNode>(
179         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
180     auto hitFrameNode = AceType::MakeRefPtr<FrameNode>(
181         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
182     auto eventHub = AceType::MakeRefPtr<EventHub>();
183     auto parentEventHub = hitFrameNode->GetOrCreateGestureEventHub();
184     parentEventHub->SetHitTestMode(HitTestMode::HTMBLOCK);
185     dragDropManager->AddGridDragFrameNode(hitFrameNode->GetId(), hitFrameNode);
186 
187     parentNode->frameChildren_.insert(WeakPtr<NG::FrameNode>(hitFrameNode));
188     std::vector<RefPtr<FrameNode>> hitFrameNodes;
189     hitFrameNodes.push_back(hitFrameNode);
190 
191     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
192     EXPECT_FALSE(result);
193 }
194 
195 /**
196  * @tc.name: DragDropManagerTestNgCoverage005
197  * @tc.desc: Test FindTargetDropNode with null parentNode
198  * @tc.type: FUNC
199  * @tc.author:
200  */
201 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage005, TestSize.Level1)
202 {
203     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
204     PointF point(0.0, 0.0);
205     auto result = dragDropManager->FindTargetDropNode(nullptr, point);
206     EXPECT_EQ(result, nullptr);
207 }
208 
209 /**
210  * @tc.name: DragDropManagerTestNgCoverage006
211  * @tc.desc: Test FindTargetInChildNodes
212  * @tc.type: FUNC
213  * @tc.author:
214  */
215 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage006, TestSize.Level1)
216 {
217     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
218     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
219     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
220     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
221     frameNodeNull->SetActive(true);
222     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
223     CHECK_NULL_VOID(eventHub);
__anon1a33a8440302(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 224     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
225     eventHub->SetOnDrop(std::move(onDragDrop));
226     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
227     auto childNodeNull =
228         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
229     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
230     childNodeNull->SetActive(true);
231     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
232     geometryNode->SetFrameSize(FRAME_SIZE);
233     frameNodeNull->SetGeometryNode(geometryNode);
234     childNodeNull->SetGeometryNode(geometryNode);
235     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
236     auto parentNodeTmp = pipelineTmp->GetRootElement();
237     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
238     parentFrameNodeTmp->SetGeometryNode(geometryNode);
239     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
240     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
241     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
242     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
243     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
244     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
245     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
246     PointF point(GLOBAL_X, GLOBAL_Y);
247     std::vector<RefPtr<FrameNode>> hitFrameNodes;
248     hitFrameNodes.push_back(parentFrameNodeTmp);
249     hitFrameNodes.push_back(frameNodeNull);
250     hitFrameNodes.push_back(childNodeNull);
251     auto pipeline = NG::PipelineContext::GetCurrentContext();
252     auto manager = pipeline->GetOverlayManager();
253     auto parentNode = pipeline->GetRootElement();
254     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
255     auto children = parentFrameNode->GetFrameChildren();
256     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
257     EXPECT_TRUE(result);
258 }
259 
260 /**
261  * @tc.name: DragDropManagerTestNgCoverage007
262  * @tc.desc: Test FindTargetDropNode with inactive or invisible parentFrameNode
263  * @tc.type: FUNC
264  * @tc.author:
265  */
266 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage007, TestSize.Level1)
267 {
268     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
269     auto parentNode = AceType::MakeRefPtr<FrameNode>(
270         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
271     PointF point(0.0, 0.0);
272 
273     parentNode->SetActive(false);
274     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
275     EXPECT_EQ(result, nullptr);
276 
277     parentNode->SetActive(true);
278     parentNode->GetLayoutProperty()->UpdateVisibility(VisibleType::INVISIBLE);
279     result = dragDropManager->FindTargetDropNode(parentNode, point);
280     EXPECT_EQ(result, nullptr);
281 }
282 
283 /**
284  * @tc.name: DragDropManagerTestNgCoverage009
285  * @tc.desc: Test FindTargetDropNode with null child nodes
286  * @tc.type: FUNC
287  * @tc.author:
288  */
289 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage009, TestSize.Level1)
290 {
291     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
292     auto parentNode = AceType::MakeRefPtr<FrameNode>(
293         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
294     for (int i = 0; i < 5; ++i) {
295         parentNode->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
296     }
297     PointF point(0.0, 0.0);
298     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
299     EXPECT_EQ(result, nullptr);
300 }
301 
302 /**
303  * @tc.name: DragDropManagerTestNgCoverage010
304  * @tc.desc: Test FindTargetDropNode with null child nodes
305  * @tc.type: FUNC
306  * @tc.author:
307  */
308 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage010, TestSize.Level1)
309 {
310     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
311     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
312     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
313     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
314     frameNodeNull->SetActive(true);
315     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
316     CHECK_NULL_VOID(eventHub);
__anon1a33a8440402(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 317     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
318     eventHub->SetOnDrop(std::move(onDragDrop));
319     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
320     auto childNodeNull =
321         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
322     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
323     childNodeNull->SetActive(true);
324     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
325     geometryNode->SetFrameSize(FRAME_SIZE);
326     frameNodeNull->SetGeometryNode(geometryNode);
327     childNodeNull->SetGeometryNode(geometryNode);
328     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
329     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
330     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
331     auto parentNodeTmp = pipelineTmp->GetRootElement();
332     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
333     parentFrameNodeTmp->SetGeometryNode(geometryNode);
334     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
335     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
336     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
337     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
338     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
339     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
340     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
341     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
342     PointF point(100.0, 100.0);
343     auto pipeline = NG::PipelineContext::GetCurrentContext();
344     auto manager = pipeline->GetOverlayManager();
345     auto parentNode = pipeline->GetRootElement();
346     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
347     auto children = parentFrameNode->GetFrameChildren();
348     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
349     EXPECT_TRUE(result);
350 }
351 
352 /**
353  * @tc.name: DragDropManagerTestNgCoverage011
354  * @tc.desc: Test UpdateDragAllowDrop
355  * @tc.type: FUNC
356  * @tc.author:
357  */
358 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage011, TestSize.Level1)
359 {
360     /**
361      * @tc.steps: step1. create DragDropManager.
362      * @tc.expected: dragDropManager is not null.
363      */
364     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
365     ASSERT_NE(dragDropManager, nullptr);
366 
367     /**
368      * @tc.steps: step2. construct frameNode and update the properties.
369      * @tc.expected: frameNode is not null.
370      */
371     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
372     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
373     ASSERT_NE(frameNode, nullptr);
374     std::set<std::string> allowDrop = { NODE_TAG };
375     frameNode->SetAllowDrop(allowDrop);
376 
377     /**
378      * @tc.steps: step2. construct frameNode and update the properties.
379      * @tc.expected: frameNode is not null.
380      */
381     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
382     auto childNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
383     ASSERT_NE(childNode, nullptr);
384     childNode->SetAllowDrop(allowDrop);
385 
386     /**
387      * @tc.steps: step3. call UpdateDragAllowDrop with frameNode and copy.
388      * @tc.expected: dragDropManager->summaryMap_.empty() return a true value.
389      */
390     dragDropManager->summaryMap_.clear();
391     PointF point(100.0, 100.0);
392     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, childNode);
393     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
394     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior::UNKNOWN, -1);
395     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
396 
397     /**
398      * @tc.steps: step3. call UpdateDragAllowDrop with frameNode and copy.
399      * @tc.expected: dragDropManager->summaryMap_.empty() return a true value.
400      */
401     dragDropManager->summaryMap_.clear();
402     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, frameNode);
403     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
404     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior::UNKNOWN, -1);
405     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
406 
407     /**
408      * @tc.steps: step4. call UpdateDragAllowDrop with frameNode and copy.
409      * @tc.expected: dragDropManager->summaryMap_.empty() return a false value.
410      */
411     dragDropManager->summaryMap_.clear();
412     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
413     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior::MOVE, -1);
414     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
415 
416     /**
417      * @tc.steps: step5. call UpdateDragAllowDrop with frameNode and copy.
418      * @tc.expected: allowDrop.find(ROOT_ETS_TAG) is equal to allowDrop.end().
419      */
420     dragDropManager->summaryMap_.clear();
421     dragDropManager->summaryMap_.insert(make_pair(ROOT_ETS_TAG, frameNodeNullId));
422     dragDropManager->UpdateDragAllowDrop(frameNode, static_cast<DragBehavior>(-100), -1);
423     EXPECT_TRUE(allowDrop.find(ROOT_ETS_TAG) == allowDrop.end());
424 }
425 
426 /**
427  * @tc.name: DragDropManagerTestNgCoverage012
428  * @tc.desc: Test FindTargetDropNode with null child nodes
429  * @tc.type: FUNC
430  * @tc.author:
431  */
432 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage012, TestSize.Level1)
433 {
434     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
435     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
436     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
437     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
438     frameNodeNull->SetActive(true);
439     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
440     CHECK_NULL_VOID(eventHub);
__anon1a33a8440502(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 441     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
442     eventHub->SetOnDrop(std::move(onDragDrop));
443     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
444     auto childNodeNull = AceType::MakeRefPtr<FrameNode>(
445         V2::UI_EXTENSION_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
446     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
447     childNodeNull->SetActive(true);
448     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
449     geometryNode->SetFrameSize(FRAME_SIZE);
450     frameNodeNull->SetGeometryNode(geometryNode);
451     childNodeNull->SetGeometryNode(geometryNode);
452     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
453     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
454     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
455     auto parentNodeTmp = pipelineTmp->GetRootElement();
456     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
457     parentFrameNodeTmp->SetGeometryNode(geometryNode);
458     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
459     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
460     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
461     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
462     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
463     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
464     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
465     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
466     PointF point(100.0, 100.0);
467     auto pipeline = NG::PipelineContext::GetCurrentContext();
468     auto manager = pipeline->GetOverlayManager();
469     auto parentNode = pipeline->GetRootElement();
470     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
471     auto children = parentFrameNode->GetFrameChildren();
472     auto resultNode = dragDropManager->FindDragFrameNodeByPosition(point.GetX(), point.GetY());
473     EXPECT_TRUE(resultNode);
474     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
475     EXPECT_TRUE(result);
476 }
477 
478 /**
479  * @tc.name: DragDropManagerTestNgCoverage013
480  * @tc.desc: Test CheckParentVisible out of parent is a true branch.
481  * @tc.type: FUNC
482  * @tc.author:
483  */
484 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage013, TestSize.Level1)
485 {
486     /**
487      * @tc.steps: step1. construct a DragDropManager.
488      * @tc.expected: dragDropManager is not null.
489      */
490     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
491     ASSERT_NE(dragDropManager, nullptr);
492 
493     RefPtr<NotifyDragEvent> notifyEvent = AceType::MakeRefPtr<NotifyDragEvent>();
494     dragDropManager->UpdateNotifyDragEvent(notifyEvent, Point(1.0f, 1.0f), DragEventType::START);
495     EXPECT_DOUBLE_EQ(notifyEvent->GetX(), 1.0);
496     EXPECT_DOUBLE_EQ(notifyEvent->GetY(), 1.0);
497 
498     std::unordered_map<int32_t, WeakPtr<FrameNode>> dragEnterNodes;
499     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
500     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<GridPattern>());
501     frameNode->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE, true);
502     auto eventHub = frameNode->GetOrCreateEventHub<EventHub>();
503     eventHub->SetEnabled(true);
504     dragEnterNodes[0] = nullptr;
505     dragEnterNodes[1] = frameNode;
506     dragDropManager->NotifyDragRegisterFrameNode(dragEnterNodes, DragEventType::START, notifyEvent);
507     EXPECT_TRUE(frameNode->GetPattern<Pattern>());
508 }
509 
510 /**
511  * @tc.name: DragDropManagerTestNgCoverage014
512  * @tc.desc: Test PrintDragFrameNode
513  * @tc.type: FUNC
514  * @tc.author:
515  */
516 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage014, TestSize.Level1)
517 {
518     /**
519      * @tc.steps: step1. construct a DragDropManager
520      */
521     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
522     OHOS::Ace::DragPointerEvent point;
523 
524     /**
525      * @tc.steps: step2. call OnDragStart
526      * @tc.expected: step2. draggedFrameNode_ &  preTargetFrameNode_ are assigned to the frameNode created previously
527      */
528     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
529     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
530     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, frameNode);
531     dragDropManager->OnItemDragStart(GLOBAL_X, GLOBAL_Y, frameNode);
532     auto draggedNode = dragDropManager->draggedFrameNode_;
533     auto preTargetNode = dragDropManager->preTargetFrameNode_;
534     dragDropManager->PrintGridDragFrameNode(GLOBAL_X, GLOBAL_Y, frameNode);
535     ASSERT_TRUE(preTargetNode);
536     dragDropManager->onDragCancel();
537     dragDropManager->onItemDragCancel();
538     dragDropManager->PrintDragFrameNode(point, frameNode);
539     dragDropManager->PrintGridDragFrameNode(GLOBAL_X, GLOBAL_Y, frameNode);
540     preTargetNode = dragDropManager->preTargetFrameNode_;
541     ASSERT_TRUE(draggedNode);
542     ASSERT_FALSE(preTargetNode);
543 }
544 
545 /**
546  * @tc.name: DragDropManagerTestNgCoverage015
547  * @tc.desc: Test PrintDragFrameNode
548  * @tc.type: FUNC
549  * @tc.author:
550  */
551 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage015, TestSize.Level1)
552 {
553     /**
554      * @tc.steps: step1. construct a DragDropManager
555      */
556     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
557     dragDropManager->TransDragWindowToDragFwk(111);
558     dragDropManager->TransDragWindowToDragFwk(111);
559     ASSERT_TRUE(dragDropManager->isDragFwkShow_);
560 }
561 
562 /**
563  * @tc.name: DragDropManagerTestNgCoverage016
564  * @tc.desc: Test isDistanceLimited when distance is less than the limit
565  * @tc.type: FUNC
566  * @tc.author:
567  */
568 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage016, TestSize.Level1)
569 {
570     DragDropManager dragDropManager;
571     dragDropManager.preMovePoint_ = Point(0, 0);
572     Point point(3, 4); // Distance is 5
573     EXPECT_TRUE(dragDropManager.isDistanceLimited(point));
574 }
575 
576 /**
577  * @tc.name: DragDropManagerTestNgCoverage017
578  * @tc.desc: Test isDistanceLimited when distance is biger than the limit
579  * @tc.type: FUNC
580  * @tc.author:
581  */
582 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage017, TestSize.Level1)
583 {
584     DragDropManager dragDropManager;
585     dragDropManager.preMovePoint_ = Point(0, 0);
586     Point point(100 + 1, 0); // Distance is greater than MOVE_DISTANCE_LIMIT
587     EXPECT_FALSE(dragDropManager.isDistanceLimited(point));
588 }
589 
590 /**
591  * @tc.name: DragDropManagerTestNgCoverage018
592  * @tc.desc: Test isTimeLimited when time interval is less than the limit
593  * @tc.type: FUNC
594  * @tc.author:
595  */
596 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage018, TestSize.Level1)
597 {
598     DragDropManager dragDropManager;
599     dragDropManager.preTimeStamp_ = 1000;
600     DragPointerEvent pointerEvent;
601     Point point(0, 0);
602     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
603 }
604 
605 /**
606  * @tc.name: DragDropManagerTestNgCoverage019
607  * @tc.desc: Test isTimeLimited when time interval is equal to the limit
608  * @tc.type: FUNC
609  * @tc.author:
610  */
611 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage019, TestSize.Level1)
612 {
613     DragDropManager dragDropManager;
614     dragDropManager.preTimeStamp_ = 1000;
615     DragPointerEvent pointerEvent;
616     pointerEvent.time += std::chrono::milliseconds(1000); // 1000ms after preTimeStamp_
617     Point point(0, 0);
618     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
619 }
620 
621 /**
622  * @tc.name: DragDropManagerTestNgCoverage020
623  * @tc.desc: Test isTimeLimited when time interval is greater than the limit
624  * @tc.type: FUNC
625  * @tc.author:
626  */
627 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage020, TestSize.Level1)
628 {
629     DragDropManager dragDropManager;
630     dragDropManager.preTimeStamp_ = 1000;
631     DragPointerEvent pointerEvent;
632     pointerEvent.time += std::chrono::milliseconds(2500); // 1500ms after preTimeStamp_
633     Point point(0, 0);
634     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
635 }
636 
637 /**
638  * @tc.name: DragDropManagerTestNgCoverage021
639  * @tc.desc: Test isTimeLimited when time is the same as preTimeStamp
640  * @tc.type: FUNC
641  * @tc.author:
642  */
643 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage021, TestSize.Level1)
644 {
645     DragDropManager dragDropManager;
646     dragDropManager.preTimeStamp_ = 1000;
647     DragPointerEvent pointerEvent;
648     pointerEvent.time += std::chrono::milliseconds(1000); // Same as preTimeStamp_
649     Point point(0, 0);
650     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
651 }
652 
653 /**
654  * @tc.name: DragDropManagerTestNgCoverage022
655  * @tc.desc: Test isTimeLimited when current time is less than preTimeStamp
656  * @tc.type: FUNC
657  * @tc.author:
658  */
659 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage022, TestSize.Level1)
660 {
661     DragDropManager dragDropManager;
662     dragDropManager.preTimeStamp_ = 2000;
663     DragPointerEvent pointerEvent;
664     pointerEvent.time += std::chrono::milliseconds(1500); // Less than preTimeStamp_
665     Point point(0, 0);
666     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
667 }
668 
669 /**
670  * @tc.name: DragDropManagerTestNgCoverage023
671  * @tc.desc: Test ReachMoveLimit when current time is less than preTimeStamp
672  * @tc.type: FUNC
673  * @tc.author:
674  */
675 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage023, TestSize.Level1)
676 {
677     DragDropManager dragDropManager;
678     dragDropManager.preTimeStamp_ = 2000;
679     DragPointerEvent pointerEvent;
680     pointerEvent.time += std::chrono::milliseconds(2005);
681     pointerEvent.sourceTool = SourceTool::MOUSE;
682     dragDropManager.preMovePoint_ = Point(0, 0);
683     Point point(3, 4); // Distance is 5
684     EXPECT_TRUE(dragDropManager.ReachMoveLimit(pointerEvent, point));
685 }
686 
687 /**
688  * @tc.name: DragDropManagerTestNgCoverage024
689  * @tc.desc: Test ReachMoveLimit when current time is less than preTimeStamp
690  * @tc.type: FUNC
691  * @tc.author:
692  */
693 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage024, TestSize.Level1)
694 {
695     DragDropManager dragDropManager;
696     dragDropManager.preTimeStamp_ = 2000;
697     DragPointerEvent pointerEvent;
698     pointerEvent.time += std::chrono::milliseconds(1000);
699     pointerEvent.sourceTool = SourceTool::MOUSE;
700     dragDropManager.preMovePoint_ = Point(0, 0);
701     Point point(15, 20); // Distance is 25
702     EXPECT_FALSE(dragDropManager.ReachMoveLimit(pointerEvent, point));
703 }
704 
705 /**
706  * @tc.name: DragDropManagerTestNgCoverage025
707  * @tc.desc: Test ReachMoveLimit when current time is less than preTimeStamp
708  * @tc.type: FUNC
709  * @tc.author:
710  */
711 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage025, TestSize.Level1)
712 {
713     DragDropManager dragDropManager;
714     dragDropManager.preTimeStamp_ = 2000;
715     DragPointerEvent pointerEvent;
716     pointerEvent.time += std::chrono::milliseconds(2002);
717     pointerEvent.sourceTool = SourceTool::MOUSE;
718     dragDropManager.preMovePoint_ = Point(0, 0);
719     Point point(15, 20); // Distance is 25
720     EXPECT_FALSE(dragDropManager.ReachMoveLimit(pointerEvent, point));
721 }
722 
723 /**
724  * @tc.name: DragDropManagerTestNgCoverage026
725  * @tc.desc: Test OnDragMove OnDragEnd
726  * @tc.type: FUNC
727  * @tc.author:
728  */
729 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage026, TestSize.Level1)
730 {
731     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
732     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
733     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
734     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
735     frameNodeNull->SetActive(true);
736     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
737     CHECK_NULL_VOID(eventHub);
__anon1a33a8440602(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 738     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
739     eventHub->SetOnDrop(std::move(onDragDrop));
740     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
741     auto childNodeNull =
742         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
743     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
744     childNodeNull->SetActive(true);
745     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
746     geometryNode->SetFrameSize(FRAME_SIZE);
747     frameNodeNull->SetGeometryNode(geometryNode);
748     childNodeNull->SetGeometryNode(geometryNode);
749     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
750     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
751     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
752     auto parentNodeTmp = pipelineTmp->GetRootElement();
753     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
754     parentFrameNodeTmp->SetGeometryNode(geometryNode);
755     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
756     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
757     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
758     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
759     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
760     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
761     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
762     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
763     PointF point(100.0, 100.0);
764     auto pipeline = NG::PipelineContext::GetCurrentContext();
765     auto manager = pipeline->GetOverlayManager();
766     auto parentNode = pipeline->GetRootElement();
767     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
768     auto children = parentFrameNode->GetFrameChildren();
769     DragPointerEvent pointEvent(100, 100, 100, 100);
770     auto draggedNode = dragDropManager->draggedFrameNode_;
771     auto preTargetNode = dragDropManager->preTargetFrameNode_;
772     dragDropManager->isMouseDragged_ = true;
773     dragDropManager->isDragWindowShow_ = true;
774     std::string extraInfo;
775     dragDropManager->OnTextDragEnd(100, 100, extraInfo);
776     EXPECT_EQ(dragDropManager->currentId_, -1);
777     ASSERT_FALSE(draggedNode);
778     ASSERT_FALSE(preTargetNode);
779 }
780 
781 /**
782  * @tc.name: DragDropManagerTestNgCoverage027
783  * @tc.desc: Test OnDragMove OnDragEnd
784  * @tc.type: FUNC
785  * @tc.author:
786  */
787 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage027, TestSize.Level1)
788 {
789     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
790     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
791     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
792     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
793     frameNodeNull->SetActive(true);
794     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
795     CHECK_NULL_VOID(eventHub);
__anon1a33a8440702(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 796     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
797     eventHub->SetOnDrop(std::move(onDragDrop));
798     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
799     auto childNodeNull = AceType::MakeRefPtr<FrameNode>(
800         V2::UI_EXTENSION_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
801     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
802     childNodeNull->SetActive(true);
803     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
804     geometryNode->SetFrameSize(FRAME_SIZE);
805     frameNodeNull->SetGeometryNode(geometryNode);
806     childNodeNull->SetGeometryNode(geometryNode);
807     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
808     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
809     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
810     auto parentNodeTmp = pipelineTmp->GetRootElement();
811     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
812     parentFrameNodeTmp->SetGeometryNode(geometryNode);
813     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
814     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
815     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
816     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
817     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
818     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
819     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
820     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
821     PointF point(100.0, 100.0);
822     auto pipeline = NG::PipelineContext::GetCurrentContext();
823     auto manager = pipeline->GetOverlayManager();
824     auto parentNode = pipeline->GetRootElement();
825     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
826     auto children = parentFrameNode->GetFrameChildren();
827     DragPointerEvent pointEvent(100, 100, 100, 100);
828     auto draggedNode = dragDropManager->draggedFrameNode_;
829     auto preTargetNode = dragDropManager->preTargetFrameNode_;
830     dragDropManager->isMouseDragged_ = true;
831     dragDropManager->isDragWindowShow_ = true;
832     dragDropManager->OnDragMove(pointEvent, EXTRA_INFO);
833     dragDropManager->OnDragEnd(pointEvent, EXTRA_INFO);
834     ASSERT_FALSE(draggedNode);
835     ASSERT_FALSE(preTargetNode);
836 }
837 
838 /**
839  * @tc.name: DragDropManagerTestNgCoverage028
840  * @tc.desc: Test OnDragMove OnDragEnd
841  * @tc.type: FUNC
842  * @tc.author:
843  */
844 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage028, TestSize.Level1)
845 {
846     /**
847      * @tc.steps: step1. construct a DragDropManager
848      */
849     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
850     DragPointerEvent point(100, 100, 100, 100);
851     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
852     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
853 
854     /**
855      * @tc.steps: step2. call OnDragStart
856      * @tc.expected: step2. draggedFrameNode_ &  preTargetFrameNode_ are assigned to the frameNode created previously
857      */
858     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
859     auto draggedNode = dragDropManager->draggedFrameNode_;
860     auto preTargetNode = dragDropManager->preTargetFrameNode_;
861     dragDropManager->OnDragMove(point, EXTRA_INFO);
862     dragDropManager->OnDragEnd(point, EXTRA_INFO);
863     ASSERT_FALSE(draggedNode);
864     ASSERT_FALSE(preTargetNode);
865 }
866 
867 /**
868  * @tc.name: DragDropManagerTestNgCoverage029
869  * @tc.desc: Test RequestDragSummaryInfoAndPrivilege
870  * @tc.type: FUNC
871  * @tc.author:
872  */
873 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage029, TestSize.Level1)
874 {
875     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
876     ASSERT_NE(dragDropManager, nullptr);
877     dragDropManager->RequestDragSummaryInfoAndPrivilege();
878     EXPECT_NE(dragDropManager, nullptr);
879 }
880 
881 /**
882  * @tc.name: DragDropManagerTestNgCoverage032
883  * @tc.desc: Test CheckRemoteDat with empty udkey
884  * @tc.type: FUNC
885  * @tc.author:
886  */
887 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage032, TestSize.Level1)
888 {
889     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
890     ASSERT_NE(dragDropManager, nullptr);
891     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
892     DragPointerEvent point;
893     std::string remoteUdKey;
894     auto result = dragDropManager->CheckRemoteData(frameNode, point, remoteUdKey);
895     EXPECT_FALSE(result);
896 }
897 
898 /**
899  * @tc.name: DragDropManagerTestNgCoverage033
900  * @tc.desc: Test CheckRemoteDat with isRemoteData
901  * @tc.type: FUNC
902  * @tc.author:
903  */
904 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage033, TestSize.Level1)
905 {
906     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
907     ASSERT_NE(dragDropManager, nullptr);
908     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
909     DragPointerEvent point;
910     std::string remoteUdKey = "abc";
911     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
912     EXPECT_CALL(*mockUdmfClient, GetRemoteStatus(testing::_)).WillOnce(testing::Return(true));
913     auto result = dragDropManager->CheckRemoteData(frameNode, point, remoteUdKey);
914     EXPECT_TRUE(result);
915 }
916 
917 /**
918  * @tc.name: DragDropManagerTestNgCoverage034
919  * @tc.desc: Test RequestUDMFDataWithUDKey
920  * @tc.type: FUNC
921  * @tc.author:
922  */
923 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage034, TestSize.Level1)
924 {
925     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
926     ASSERT_NE(dragDropManager, nullptr);
927     std::string remoteUdKey = "abc";
928     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
929     EXPECT_CALL(*mockUdmfClient, GetData(testing::_, testing::_)).Times(1).WillOnce(testing::Return(1));
930     auto result = dragDropManager->RequestUDMFDataWithUDKey(remoteUdKey);
931     EXPECT_EQ(result, nullptr);
932 }
933 
934 /**
935  * @tc.name: DragDropManagerTestNgCoverage035
936  * @tc.desc: Test RequestUDMFDataWithUDKey
937  * @tc.type: FUNC
938  * @tc.author:
939  */
940 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage035, TestSize.Level1)
941 {
942     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
943     ASSERT_NE(dragDropManager, nullptr);
944     std::string remoteUdKey;
945     auto result = dragDropManager->RequestUDMFDataWithUDKey(remoteUdKey);
946     EXPECT_EQ(result, nullptr);
947 }
948 
949 /**
950  * @tc.name: DragDropManagerTestNgCoverage036
951  * @tc.desc: Test RequestUDMFDataWithUDKey
952  * @tc.type: FUNC
953  * @tc.author:
954  */
955 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage036, TestSize.Level1)
956 {
957     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
958     ASSERT_NE(dragDropManager, nullptr);
959     std::string remoteUdKey = "ABC";
960     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
961     EXPECT_CALL(*mockUdmfClient, GetData(testing::_, testing::_)).Times(1).WillOnce(testing::Return(0));
962     auto result = dragDropManager->RequestUDMFDataWithUDKey(remoteUdKey);
963     EXPECT_EQ(result, nullptr);
964 }
965 
966 /**
967  * @tc.name: DragDropManagerTestNgCoverage037
968  * @tc.desc: Test DoDropAction
969  * @tc.type: FUNC
970  * @tc.author:
971  */
972 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage037, TestSize.Level1)
973 {
974     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
975     ASSERT_NE(dragDropManager, nullptr);
976     std::string remoteUdKey = "abc";
977     RefPtr<UnifiedData> unifiedData = AceType::MakeRefPtr<MockUnifiedData>();
978     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
979     DragPointerEvent point;
980     dragDropManager->DoDropAction(frameNode, point, unifiedData, remoteUdKey);
981     EXPECT_NE(unifiedData, nullptr);
982 }
983 
984 /**
985  * @tc.name: DragDropManagerTestNgCoverage038
986  * @tc.desc: Test DoDropAction
987  * @tc.type: FUNC
988  * @tc.author:
989  */
990 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage038, TestSize.Level1)
991 {
992     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
993     ASSERT_NE(dragDropManager, nullptr);
994     std::string remoteUdKey;
995     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
996     DragPointerEvent point;
997     dragDropManager->DoDropAction(frameNode, point, nullptr, remoteUdKey);
998     EXPECT_NE(frameNode, nullptr);
999 }
1000 
1001 /**
1002  * @tc.name: DragDropManagerTestNgCoverage039
1003  * @tc.desc: Test GetGatherPixelMap
1004  * @tc.type: FUNC
1005  * @tc.author:
1006  */
1007 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage039, TestSize.Level1)
1008 {
1009     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1010     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1011     RefPtr<MockPixelMap> mockPixelMap = AceType::MakeRefPtr<MockPixelMap>();
1012     dragDropManager->PushGatherPixelMap(mockPixelMap);
1013     DragDataCore dragData;
1014     EXPECT_CALL(*mockPixelMap, GetWidth()).Times(1).WillOnce(testing::Return(1.0f));
1015     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(1.0f));
1016     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1017     EXPECT_NE(frameNode, nullptr);
1018 }
1019 
1020 /**
1021  * @tc.name: DragDropManagerTestNgCoverage040
1022  * @tc.desc: Test GetGatherPixelMap
1023  * @tc.type: FUNC
1024  * @tc.author:
1025  */
1026 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage040, TestSize.Level1)
1027 {
1028     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1029     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1030     ASSERT_NE(frameNode, nullptr);
1031     RefPtr<MockPixelMap> mockPixelMap = AceType::MakeRefPtr<MockPixelMap>();
1032     dragDropManager->PushGatherPixelMap(mockPixelMap);
1033     DragDataCore dragData;
1034     EXPECT_CALL(*mockPixelMap, GetWidth()).Times(1).WillOnce(testing::Return(1.0f));
1035     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(0.0f));
1036     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1037     EXPECT_NE(frameNode, nullptr);
1038 }
1039 
1040 /**
1041  * @tc.name: DragDropManagerTestNgCoverage041
1042  * @tc.desc: Test GetGatherPixelMap
1043  * @tc.type: FUNC
1044  * @tc.author:
1045  */
1046 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage041, TestSize.Level1)
1047 {
1048     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1049     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1050     ASSERT_NE(frameNode, nullptr);
1051     RefPtr<MockPixelMap> mockPixelMap = AceType::MakeRefPtr<MockPixelMap>();
1052     dragDropManager->PushGatherPixelMap(mockPixelMap);
1053     DragDataCore dragData;
1054     EXPECT_CALL(*mockPixelMap, GetWidth()).Times(1).WillOnce(testing::Return(0.0f));
1055     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(1.0f));
1056     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1057     EXPECT_NE(frameNode, nullptr);
1058 }
1059 
1060 /**
1061  * @tc.name: DragDropManagerTestNgCoverage042
1062  * @tc.desc: Test GetGatherPixelMap
1063  * @tc.type: FUNC
1064  * @tc.author:
1065  */
1066 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage042, TestSize.Level1)
1067 {
1068     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1069     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1070     ASSERT_NE(frameNode, nullptr);
1071     RefPtr<MockPixelMap> mockPixelMap = AceType::MakeRefPtr<MockPixelMap>();
1072     dragDropManager->PushGatherPixelMap(mockPixelMap);
1073     DragDataCore dragData;
1074     EXPECT_CALL(*mockPixelMap, GetWidth()).Times(1).WillOnce(testing::Return(0.0f));
1075     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(0.0f));
1076     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1077     EXPECT_NE(frameNode, nullptr);
1078 }
1079 
1080 /**
1081  * @tc.name: DragDropManagerTestNgCoverage043
1082  * @tc.desc: Test UpdateGatherNodeAttr
1083  * @tc.type: FUNC
1084  * @tc.author:
1085  */
1086 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage043, TestSize.Level1)
1087 {
1088     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1089     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1090     ASSERT_NE(frameNode, nullptr);
1091     auto pipeline = NG::PipelineContext::GetCurrentContext();
1092     auto manager = pipeline->GetOverlayManager();
1093     GatherAnimationInfo gatherAnimationInfo = { 2.0f, 1.0f, 1.0f, { 0.0, 0.0 } };
1094     dragDropManager->UpdateGatherNodeAttr(manager, gatherAnimationInfo);
1095     EXPECT_NE(frameNode, nullptr);
1096 }
1097 
1098 /**
1099  * @tc.name: DragDropManagerTestNgCoverage044
1100  * @tc.desc: Test UpdateGatherNodeAttr
1101  * @tc.type: FUNC
1102  * @tc.author:
1103  */
1104 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage044, TestSize.Level1)
1105 {
1106     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1107     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1108     ASSERT_NE(frameNode, nullptr);
1109     auto pipeline = NG::PipelineContext::GetCurrentContext();
1110     auto manager = pipeline->GetOverlayManager();
1111     auto imageNode1 = FrameNode::CreateFrameNode(
1112         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1113     ASSERT_NE(imageNode1, nullptr);
1114     auto imageNode2 = FrameNode::CreateFrameNode(
1115         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1116     ASSERT_NE(imageNode2, nullptr);
1117     auto imageNode3 = FrameNode::CreateFrameNode(
1118         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1119     ASSERT_NE(imageNode3, nullptr);
1120     auto imageNode4 = FrameNode::CreateFrameNode(
1121         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1122     ASSERT_NE(imageNode4, nullptr);
1123     GatherNodeChildInfo gatherNodeChildInfo1 = { imageNode1, { 100, 100 }, 100, 100 };
1124     GatherNodeChildInfo gatherNodeChildInfo2 = { imageNode2, { 100, 100 }, 100, 0 };
1125     GatherNodeChildInfo gatherNodeChildInfo3 = { imageNode3, { 100, 100 }, 0, 100 };
1126     GatherNodeChildInfo gatherNodeChildInfo4 = { imageNode4, { 100, 100 }, 0, 0 };
1127     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo1);
1128     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo2);
1129     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo3);
1130     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo4);
1131     GatherAnimationInfo gatherAnimationInfo = { 2.0f, 1.0f, 1.0f, { 0.0, 0.0 } };
1132     dragDropManager->UpdateGatherNodeAttr(manager, gatherAnimationInfo);
1133     EXPECT_NE(frameNode, nullptr);
1134 }
1135 
1136 /**
1137  * @tc.name: DragDropManagerTestNgCoverage045
1138  * @tc.desc: Test SetDragBehavior
1139  * @tc.type: FUNC
1140  * @tc.author:
1141  */
1142 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage045, TestSize.Level1)
1143 {
1144     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1145     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1146     ASSERT_NE(frameNode, nullptr);
1147     auto event = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1148     DragNotifyMsgCore notifyMessage;
1149     notifyMessage.dragBehavior = DragBehavior::COPY;
1150     dragDropManager->SetDragBehavior(notifyMessage, event);
1151     notifyMessage.dragBehavior = DragBehavior::MOVE;
1152     dragDropManager->SetDragBehavior(notifyMessage, event);
1153     notifyMessage.dragBehavior = DragBehavior::UNKNOWN;
1154     dragDropManager->SetDragBehavior(notifyMessage, event);
1155     EXPECT_NE(frameNode, nullptr);
1156 }
1157 
1158 /**
1159  * @tc.name: DragDropManagerTestNgCoverage046
1160  * @tc.desc: Test SetDragResult
1161  * @tc.type: FUNC
1162  * @tc.author:
1163  */
1164 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage046, TestSize.Level1)
1165 {
1166     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1167     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1168     ASSERT_NE(frameNode, nullptr);
1169     auto event = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1170     DragNotifyMsgCore notifyMessage;
1171     notifyMessage.result = DragRet::DRAG_SUCCESS;
1172     dragDropManager->SetDragResult(notifyMessage, event);
1173     notifyMessage.result = DragRet::DRAG_FAIL;
1174     dragDropManager->SetDragResult(notifyMessage, event);
1175     notifyMessage.result = DragRet::DRAG_CANCEL;
1176     dragDropManager->SetDragResult(notifyMessage, event);
1177     notifyMessage.result = DragRet::ENABLE_DROP;
1178     dragDropManager->SetDragResult(notifyMessage, event);
1179     EXPECT_NE(frameNode, nullptr);
1180 }
1181 
1182 /**
1183  * @tc.name: DragDropManagerTestNgCoverage047
1184  * @tc.desc: Test DoDragStartAnimation
1185  * @tc.type: FUNC
1186  * @tc.author:
1187  */
1188 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage047, TestSize.Level1)
1189 {
1190     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1191     RefPtr<UINode> frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1192     ASSERT_NE(frameNode, nullptr);
1193     auto overlayManager = AceType::MakeRefPtr<OverlayManager>(AceType::DynamicCast<FrameNode>(frameNode));
1194     GestureEvent event;
1195     event.SetDeviceId(0xFFFFFFFF);
1196     dragDropManager->SetIsDragWithContextMenu(true);
1197     auto frameNode2 = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>(), false);
1198     ASSERT_NE(frameNode2, nullptr);
1199     auto guestureEventHub = frameNode2->GetOrCreateGestureEventHub();
1200     PreparedInfoForDrag drag;
1201     dragDropManager->DoDragStartAnimation(overlayManager, event, guestureEventHub, drag);
1202     dragDropManager->TransDragWindowToDragFwk(111);
1203     dragDropManager->SetIsDragWithContextMenu(false);
1204     event.SetDeviceId(0xFFFFEEEE);
1205     dragDropManager->DoDragStartAnimation(overlayManager, event, guestureEventHub, drag);
1206     EXPECT_NE(frameNode, nullptr);
1207 }
1208 
1209 /**
1210  * @tc.name: DragDropManagerTestNgCoverage048
1211  * @tc.desc: Test DoDragMoveAnimate
1212  * @tc.type: FUNC
1213  * @tc.author:
1214  */
1215 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage048, TestSize.Level1)
1216 {
1217     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1218     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1219     ASSERT_NE(frameNode, nullptr);
1220     dragDropManager->isDragFwkShow_ = false;
1221     dragDropManager->isDragWithContextMenu_ = true;
1222     DragPointerEvent pointerEvent;
1223     dragDropManager->info_.isDragController = false;
1224     dragDropManager->DoDragMoveAnimate(pointerEvent);
1225     pointerEvent.x = 3.0f;
1226     pointerEvent.y = 4.0f;
1227     dragDropManager->info_.scale = 0.5f;
1228     dragDropManager->info_.isDragController = true;
1229     dragDropManager->DoDragMoveAnimate(pointerEvent);
1230     EXPECT_NE(frameNode, nullptr);
1231 }
1232 /**
1233  * @tc.name: DragDropManagerTestNgCoverage049
1234  * @tc.desc: Test UpdateDragMovePositionFinished
1235  * @tc.type: FUNC
1236  * @tc.author:
1237  */
1238 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage049, TestSize.Level1)
1239 {
1240     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1241     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1242     ASSERT_NE(frameNode, nullptr);
1243     auto containerId = Container::CurrentId();
1244     Offset Offset = { 0.0, 0.0 };
1245     dragDropManager->isDragWithContextMenu_ = false;
1246     dragDropManager->UpdateDragMovePositionFinished(true, true, Offset, containerId);
1247     dragDropManager->isDragWithContextMenu_ = true;
1248     dragDropManager->isDragFwkShow_ = true;
1249     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1250     dragDropManager->UpdateDragMovePositionFinished(true, true, Offset, containerId);
1251     dragDropManager->isDragFwkShow_ = true;
1252     dragDropManager->UpdateDragMovePositionFinished(false, false, Offset, containerId);
1253     dragDropManager->UpdateDragMovePositionFinished(false, true, Offset, containerId);
1254     dragDropManager->isDragWithContextMenu_ = false;
1255     EXPECT_NE(frameNode, nullptr);
1256 }
1257 
1258 /**
1259  * @tc.name: DragDropManagerTestNgCoverage050
1260  * @tc.desc: Test FireOnDragEvent
1261  * @tc.type: FUNC
1262  * @tc.author:
1263  */
1264 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage050, TestSize.Level1)
1265 {
1266     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1267     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1268     ASSERT_NE(frameNode, nullptr);
1269     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1270     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1271     ASSERT_NE(frameNodeNull, nullptr);
1272     frameNodeNull.Reset();
1273     auto frameNodeGeoNullId = ElementRegister::GetInstance()->MakeUniqueId();
1274     auto frameNodeGeoNull =
1275         AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeGeoNullId, AceType::MakeRefPtr<Pattern>());
1276     frameNodeGeoNull->SetGeometryNode(nullptr);
1277     auto eventHub = frameNode->GetOrCreateEventHub<EventHub>();
1278     ASSERT_NE(eventHub, nullptr);
1279     std::string onDropInfo;
__anon1a33a8440802(const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) 1280     auto onDrop = [&onDropInfo](const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) {
1281         dragEvent->dragRet_ = DragRet::ENABLE_DROP;
1282         onDropInfo = EXTRA_INFO;
1283     };
1284     eventHub->SetOnDrop(std::move(onDrop));
1285     eventHub->SetOnDragMove(std::move(onDrop));
1286     DragPointerEvent point;
1287     TouchEvent event;
1288     event.x = 1.0f;
1289     event.y = 2.0f;
1290     dragDropManager->velocityTracker_.UpdateTouchPoint(event, false);
1291     auto targetFrameNode = dragDropManager->FindDragFrameNodeByPosition(GLOBAL_X, GLOBAL_Y);
1292     auto pipeline = NG::PipelineContext::GetCurrentContext();
1293     auto manager = pipeline->GetOverlayManager();
1294     DragEventType type = DragEventType::MOVE;
1295     frameNode->tag_ = V2::UI_EXTENSION_COMPONENT_ETS_TAG;
1296     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1297     dragDropManager->FireOnDragEvent(frameNode, point, type, EXTRA_INFO);
1298     EXPECT_NE(frameNode, nullptr);
1299 }
1300 
1301 /**
1302  * @tc.name: DragDropManagerTestNgCoverage051
1303  * @tc.desc: Test FireOnDragEvent
1304  * @tc.type: FUNC
1305  * @tc.author:
1306  */
1307 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage051, TestSize.Level1)
1308 {
1309     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1310     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1311     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1312     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1313     ASSERT_NE(frameNodeNull, nullptr);
1314     frameNodeNull.Reset();
1315     auto frameNodeGeoNullId = ElementRegister::GetInstance()->MakeUniqueId();
1316     auto frameNodeGeoNull =
1317         AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeGeoNullId, AceType::MakeRefPtr<Pattern>());
1318     ASSERT_NE(frameNodeGeoNull, nullptr);
1319     frameNodeGeoNull->SetGeometryNode(nullptr);
1320     auto eventHub = frameNode->GetOrCreateEventHub<EventHub>();
1321     ASSERT_NE(eventHub, nullptr);
1322     std::string onDropInfo;
__anon1a33a8440902(const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) 1323     auto onDrop = [&onDropInfo](const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) {
1324         dragEvent->dragRet_ = DragRet::ENABLE_DROP;
1325         dragEvent->dragBehavior_ = DragBehavior::MOVE;
1326         onDropInfo = EXTRA_INFO;
1327     };
1328     eventHub->SetOnDrop(std::move(onDrop));
1329     eventHub->SetOnDragMove(std::move(onDrop));
1330     DragPointerEvent point;
1331     TouchEvent event;
1332     event.x = 1.0f;
1333     event.y = 2.0f;
1334     dragDropManager->velocityTracker_.UpdateTouchPoint(event, false);
1335     auto targetFrameNode = dragDropManager->FindDragFrameNodeByPosition(GLOBAL_X, GLOBAL_Y);
1336     DragEventType type = DragEventType::MOVE;
1337     frameNode->tag_ = V2::UI_EXTENSION_COMPONENT_ETS_TAG;
1338     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1339     dragDropManager->FireOnDragEvent(frameNode, point, type, EXTRA_INFO);
1340     EXPECT_NE(frameNode, nullptr);
1341 }
1342 
1343 /**
1344  * @tc.name: DragDropManagerTestNgCoverage052
1345  * @tc.desc: Test FireOnDragEvent
1346  * @tc.type: FUNC
1347  * @tc.author:
1348  */
1349 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage052, TestSize.Level1)
1350 {
1351     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1352     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1353     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1354     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1355     ASSERT_NE(frameNodeNull, nullptr);
1356     frameNodeNull.Reset();
1357     auto frameNodeGeoNullId = ElementRegister::GetInstance()->MakeUniqueId();
1358     auto frameNodeGeoNull =
1359         AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeGeoNullId, AceType::MakeRefPtr<Pattern>());
1360     ASSERT_NE(frameNodeGeoNull, nullptr);
1361     frameNodeGeoNull->SetGeometryNode(nullptr);
1362     auto eventHub = frameNode->GetOrCreateEventHub<EventHub>();
1363     ASSERT_NE(eventHub, nullptr);
1364     std::string onDropInfo;
__anon1a33a8440a02(const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) 1365     auto onDrop = [&onDropInfo](const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) {
1366         dragEvent->dragRet_ = DragRet::DISABLE_DROP;
1367         dragEvent->dragBehavior_ = DragBehavior::MOVE;
1368         onDropInfo = EXTRA_INFO;
1369     };
1370     eventHub->SetOnDrop(std::move(onDrop));
1371     eventHub->SetOnDragMove(std::move(onDrop));
1372     DragPointerEvent point;
1373     TouchEvent event;
1374     event.x = 1.0f;
1375     event.y = 2.0f;
1376     dragDropManager->velocityTracker_.UpdateTouchPoint(event, false);
1377     auto targetFrameNode = dragDropManager->FindDragFrameNodeByPosition(GLOBAL_X, GLOBAL_Y);
1378     auto pipeline = NG::PipelineContext::GetCurrentContext();
1379     auto manager = pipeline->GetOverlayManager();
1380     DragEventType type = DragEventType::MOVE;
1381     frameNode->tag_ = V2::UI_EXTENSION_COMPONENT_ETS_TAG;
1382     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1383     dragDropManager->FireOnDragEvent(frameNode, point, type, EXTRA_INFO);
1384     EXPECT_NE(frameNode, nullptr);
1385 }
1386 /**
1387  * @tc.name: DragDropManagerTestNgCoverage053
1388  * @tc.desc: Test UpdateDragAllowDrop
1389  * @tc.type: FUNC
1390  * @tc.author:
1391  */
1392 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage053, TestSize.Level1)
1393 {
1394     /**
1395      * @tc.steps: step1. create DragDropManager.
1396      * @tc.expected: dragDropManager is not null.
1397      */
1398     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1399     ASSERT_NE(dragDropManager, nullptr);
1400 
1401     /**
1402      * @tc.steps: step2. construct frameNode and update the properties.
1403      * @tc.expected: frameNode is not null.
1404      */
1405     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1406     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1407     ASSERT_NE(frameNode, nullptr);
1408     std::set<std::string> allowDrop = { NODE_TAG };
1409     frameNode->SetAllowDrop(allowDrop);
1410 
1411     /**
1412      * @tc.steps: step2. construct frameNode and update the properties.
1413      * @tc.expected: frameNode is not null.
1414      */
1415     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1416     auto childNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
1417     ASSERT_NE(childNode, nullptr);
1418     childNode->SetAllowDrop(allowDrop);
1419 
1420     /**
1421      * @tc.steps: step3. call UpdateDragAllowDrop with frameNode and copy.
1422      * @tc.expected: dragDropManager->summaryMap_.empty() return a true value.
1423      */
1424     dragDropManager->summaryMap_.clear();
1425     PointF point(100.0, 100.0);
1426     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, childNode);
1427     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
1428     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior(2), -1);
1429     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
1430 }
1431 
1432 /**
1433  * @tc.name: DragDropManagerTestNgCoverage054
1434  * @tc.desc: Test OnItemDragMove
1435  * @tc.type: FUNC
1436  * @tc.author:
1437  */
1438 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage054, TestSize.Level1)
1439 {
1440     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1441     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1442     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1443     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1444     frameNodeNull->SetActive(true);
1445     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
__anon1a33a8440b02(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 1446     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
1447     eventHub->SetOnDrop(std::move(onDragDrop));
1448     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1449     auto childNodeNull =
1450         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
1451     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1452     childNodeNull->SetActive(true);
1453     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
1454     geometryNode->SetFrameSize(FRAME_SIZE);
1455     frameNodeNull->SetGeometryNode(geometryNode);
1456     childNodeNull->SetGeometryNode(geometryNode);
1457     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1458     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1459     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
1460     ASSERT_NE(pipelineTmp, nullptr);
1461     auto parentNodeTmp = pipelineTmp->GetRootElement();
1462     ASSERT_NE(parentNodeTmp, nullptr);
1463     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
1464     parentFrameNodeTmp->SetGeometryNode(geometryNode);
1465     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1466     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
1467     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
1468     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
1469     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
1470     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1471     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
1472     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
1473     PointF point(100.0, 100.0);
1474     auto pipeline = NG::PipelineContext::GetCurrentContext();
1475     auto manager = pipeline->GetOverlayManager();
1476     auto parentNode = pipeline->GetRootElement();
1477     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
1478     auto children = parentFrameNode->GetFrameChildren();
1479     auto result = true;
1480     dragDropManager->OnItemDragMove(100.0, 100.0, 1, DragType::GRID);
1481     auto framenode4 = dragDropManager->FindDragFrameNodeByPosition(100.0, 100.0);
1482     dragDropManager->OnItemDragStart(100.0, 100.0, framenode4);
1483     dragDropManager->OnItemDragMove(100.0, 100.0, 1, DragType::GRID);
1484     auto frameNode5 = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1485     dragDropManager->OnItemDragStart(100.0, 100.0, frameNode5);
1486     dragDropManager->OnItemDragMove(100.0, 100.0, 1, DragType::GRID);
1487     EXPECT_TRUE(result);
1488 }
1489 
1490 /**
1491  * @tc.name: DragDropManagerTestNgCoverage055
1492  * @tc.desc: Test OnItemDragEnd
1493  * @tc.type: FUNC
1494  * @tc.author:
1495  */
1496 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage055, TestSize.Level1)
1497 {
1498     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1499     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1500     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1501     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1502     frameNodeNull->SetActive(true);
1503     auto eventHub = frameNodeNull->GetOrCreateEventHub<EventHub>();
1504     CHECK_NULL_VOID(eventHub);
__anon1a33a8440c02(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 1505     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
1506     eventHub->SetOnDrop(std::move(onDragDrop));
1507     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1508     auto childNodeNull =
1509         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
1510     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1511     childNodeNull->SetActive(true);
1512     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
1513     geometryNode->SetFrameSize(FRAME_SIZE);
1514     frameNodeNull->SetGeometryNode(geometryNode);
1515     childNodeNull->SetGeometryNode(geometryNode);
1516     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1517     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1518     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
1519     ASSERT_NE(pipelineTmp, nullptr);
1520     auto parentNodeTmp = pipelineTmp->GetRootElement();
1521     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
1522     parentFrameNodeTmp->SetGeometryNode(geometryNode);
1523     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1524     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
1525     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
1526     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
1527     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
1528     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1529     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
1530     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
1531     PointF point(100.0, 100.0);
1532     auto pipeline = NG::PipelineContext::GetCurrentContext();
1533     auto manager = pipeline->GetOverlayManager();
1534     auto parentNode = pipeline->GetRootElement();
1535     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
1536     auto children = parentFrameNode->GetFrameChildren();
1537     auto result = true;
1538     dragDropManager->OnItemDragEnd(100.0, 100.0, 1, DragType::GRID);
1539     auto framenode4 = dragDropManager->FindDragFrameNodeByPosition(100.0, 100.0);
1540     dragDropManager->OnItemDragStart(100.0, 100.0, framenode4);
1541     dragDropManager->OnItemDragEnd(100.0, 100.0, 1, DragType::GRID);
1542     auto frameNode5 = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1543     dragDropManager->OnItemDragStart(100.0, 100.0, frameNode5);
1544     dragDropManager->OnItemDragEnd(100.0, 100.0, 1, DragType::GRID);
1545     EXPECT_TRUE(result);
1546 }
1547 
1548 /**
1549  * @tc.name: DragDropManagerTestNgCoverage056
1550  * @tc.desc: Test RequestDragSummaryInfoAndPrivilege
1551  * @tc.type: FUNC
1552  * @tc.author:
1553  */
1554 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage056, TestSize.Level1)
1555 {
1556     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1557     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1558     ASSERT_NE(frameNode, nullptr);
1559     EXPECT_CALL(
1560         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), AddPrivilege())
1561         .WillRepeatedly(testing::Return(1));
1562     EXPECT_CALL(
1563         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1564         .WillRepeatedly(testing::Return(1));
1565     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1566 
1567     SystemProperties::debugEnabled_ = true;
1568     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1569 
1570     EXPECT_CALL(
1571         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), AddPrivilege())
1572         .WillRepeatedly(testing::Return(0));
1573     EXPECT_CALL(
1574         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1575         .WillRepeatedly(testing::Return(0));
1576     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1577 
1578     SystemProperties::debugEnabled_ = false;
1579     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1580     EXPECT_NE(frameNode, nullptr);
1581 }
1582 
1583 /**
1584  * @tc.name: DragDropManagerTestNgCoverage057
1585  * @tc.desc: Test RequireSummary
1586  * @tc.type: FUNC
1587  * @tc.author:
1588  */
1589 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage057, TestSize.Level1)
1590 {
1591     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1592     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1593     ASSERT_NE(frameNode, nullptr);
1594     EXPECT_CALL(*(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())),
1595         GetDragSummary(_, _, _, _, _))
1596         .WillRepeatedly(testing::Return(1));
1597     EXPECT_CALL(
1598         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetDragExtraInfo(_))
1599         .WillRepeatedly(testing::Return(1));
1600     dragDropManager->RequireSummary();
1601 
1602     EXPECT_CALL(*(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())),
1603         GetDragSummary(_, _, _, _, _))
1604         .WillRepeatedly(testing::Return(0));
1605     EXPECT_CALL(
1606         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetDragExtraInfo(_))
1607         .WillRepeatedly(testing::Return(0));
1608     dragDropManager->RequireSummary();
1609     EXPECT_NE(frameNode, nullptr);
1610 }
1611 
1612 /**
1613  * @tc.name: DragDropManagerTestNgCoverage058
1614  * @tc.desc: Test GetDragWindowRect
1615  * @tc.type: FUNC
1616  * @tc.author:
1617  */
1618 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage058, TestSize.Level1)
1619 {
1620     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1621     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1622     ASSERT_NE(frameNode, nullptr);
1623     Point point(0.0, 0.0);
1624     EXPECT_CALL(
1625         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1626         .WillRepeatedly(testing::Return(1));
1627     dragDropManager->GetDragWindowRect(point);
1628 
1629     EXPECT_CALL(
1630         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1631         .WillRepeatedly(testing::Return(0));
1632     dragDropManager->previewRect_ = { 1, 1, 1, 1 };
1633     dragDropManager->GetDragWindowRect(point);
1634     EXPECT_NE(frameNode, nullptr);
1635 }
1636 
1637 /**
1638  * @tc.name: DragDropManagerTestNgCoverage059
1639  * @tc.desc: Test FireOnEditableTextComponent
1640  * @tc.type: FUNC
1641  * @tc.author:
1642  */
1643 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage059, TestSize.Level1)
1644 {
1645     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1646     auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXTINPUT_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>());
1647     ASSERT_NE(frameNode, nullptr);
1648     EXPECT_CALL(*(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())),
1649         EnterTextEditorArea(_))
1650         .WillRepeatedly(testing::Return(1));
1651     dragDropManager->FireOnEditableTextComponent(frameNode, DragEventType::ENTER);
1652     EXPECT_CALL(*(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())),
1653         EnterTextEditorArea(_))
1654         .WillRepeatedly(testing::Return(0));
1655     dragDropManager->FireOnEditableTextComponent(frameNode, DragEventType::ENTER);
1656     EXPECT_NE(frameNode, nullptr);
1657 }
1658 
1659 /**
1660  * @tc.name: DragDropManagerTestNgCoverage060
1661  * @tc.desc: Test UpdateDragMovePosition
1662  * @tc.type: FUNC
1663  * @tc.author:
1664  */
1665 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage060, TestSize.Level1)
1666 {
1667     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1668     auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXTINPUT_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>());
1669     ASSERT_NE(frameNode, nullptr);
1670     OffsetF offset = { 1.0f, 1.0f };
1671     dragDropManager->UpdateDragMovePosition(offset, true);
1672     EXPECT_NE(frameNode, nullptr);
1673 }
1674 
1675 /**
1676  * @tc.name: DragDropManagerTestNgCoverage061
1677  * @tc.desc: Test FireOnDragLeave
1678  * @tc.type: FUNC
1679  * @tc.author:
1680  */
1681 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage061, TestSize.Level1)
1682 {
1683     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1684     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1685     ASSERT_NE(frameNode, nullptr);
1686     DragPointerEvent point;
1687     point.x = 1;
1688     point.y = 1;
1689     auto mockRenderContext = AceType::MakeRefPtr<MockRenderContext>();
1690     mockRenderContext->rect_ = RectF(0, 0, 10, 10);
1691     frameNode->renderContext_ = mockRenderContext;
1692     dragDropManager->FireOnDragLeave(frameNode, point, EXTRA_INFO);
1693     dragDropManager->eventStrictReportingEnabled_ = true;
1694     dragDropManager->preTargetFrameNode_ = frameNode;
1695     dragDropManager->FireOnDragLeave(frameNode, point, EXTRA_INFO);
1696     dragDropManager->eventStrictReportingEnabled_ = false;
1697     EXPECT_NE(frameNode, nullptr);
1698 }
1699 
1700 /**
1701  * @tc.name: DragDropManagerTestNgCoverage062
1702  * @tc.desc: Test OnDragMoveOut
1703  * @tc.type: FUNC
1704  * @tc.author:
1705  */
1706 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage062, TestSize.Level1)
1707 {
1708     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1709     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1710     ASSERT_NE(frameNode, nullptr);
1711     DragPointerEvent point;
1712     point.x = 1;
1713     point.y = 1;
1714     auto container = MockContainer::Current();
1715     ASSERT_NE(container, nullptr);
1716     container->isSceneBoardWindow_ = true;
1717     dragDropManager->OnDragMoveOut(point);
1718     dragDropManager->isDragged_ = true;
1719     dragDropManager->OnDragMoveOut(point);
1720     dragDropManager->isDragged_ = false;
1721     dragDropManager->isWindowConsumed_ = true;
1722     dragDropManager->OnDragMoveOut(point);
1723     dragDropManager->isWindowConsumed_ = true;
1724     dragDropManager->isDragged_ = true;
1725     dragDropManager->OnDragMoveOut(point);
1726     dragDropManager->isDragged_ = false;
1727     dragDropManager->isWindowConsumed_ = false;
1728     container->isSceneBoardWindow_ = false;
1729     EXPECT_NE(frameNode, nullptr);
1730 }
1731 
1732 /**
1733  * @tc.name: DragDropManagerTestNgCoverage063
1734  * @tc.desc: Test OnDragMove
1735  * @tc.type: FUNC
1736  * @tc.author:
1737  */
1738 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage063, TestSize.Level1)
1739 {
1740     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1741     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1742     ASSERT_NE(frameNode, nullptr);
1743     DragPointerEvent point;
1744     point.x = 1;
1745     point.y = 1;
1746     auto container = MockContainer::Current();
1747     ASSERT_NE(container, nullptr);
1748     container->isSceneBoardWindow_ = true;
1749     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1750     dragDropManager->isDragged_ = true;
1751     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1752     dragDropManager->isDragged_ = false;
1753     dragDropManager->isWindowConsumed_ = true;
1754     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1755     dragDropManager->isWindowConsumed_ = true;
1756     dragDropManager->isDragged_ = true;
1757     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1758     dragDropManager->isDragged_ = false;
1759     dragDropManager->isWindowConsumed_ = false;
1760     container->isSceneBoardWindow_ = false;
1761     EXPECT_NE(frameNode, nullptr);
1762 }
1763 
1764 /**
1765  * @tc.name: DragDropManagerTestNgCoverage064
1766  * @tc.desc: Test OnDragMoveOut
1767  * @tc.type: FUNC
1768  * @tc.author:
1769  */
1770 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage064, TestSize.Level1)
1771 {
1772     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1773     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1774     ASSERT_NE(frameNode, nullptr);
1775     DragPointerEvent point;
1776     point.x = 1;
1777     point.y = 1;
1778     auto container = MockContainer::Current();
1779     ASSERT_NE(container, nullptr);
1780     container->isSceneBoardWindow_ = true;
1781     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1782     dragDropManager->isDragged_ = true;
1783     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1784     dragDropManager->isDragged_ = false;
1785     dragDropManager->isWindowConsumed_ = true;
1786     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1787     dragDropManager->isWindowConsumed_ = true;
1788     dragDropManager->isDragged_ = true;
1789     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1790     dragDropManager->isDragged_ = false;
1791     dragDropManager->isWindowConsumed_ = false;
1792     container->isSceneBoardWindow_ = false;
1793     EXPECT_NE(frameNode, nullptr);
1794 }
1795 
1796 /**
1797  * @tc.name: DragDropManagerTestNgCoverage065
1798  * @tc.desc: Test OnDragMoveOut
1799  * @tc.type: FUNC
1800  * @tc.author:
1801  */
1802 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage065, TestSize.Level1)
1803 {
1804     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1805     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1806     DragPointerEvent point;
1807     bool isExecuted = false;
1808     point.x = 1;
1809     point.y = 1;
1810     dragDropManager->ExecuteStopDrag(dragEvent, DragRet::DRAG_CANCEL, false, 0, DragBehavior::UNKNOWN, point);
1811     EXPECT_FALSE(isExecuted);
1812     dragDropManager->ExecuteStopDrag(dragEvent, DragRet::DRAG_CANCEL, true, 0, DragBehavior::UNKNOWN, point);
1813     EXPECT_FALSE(isExecuted);
__anon1a33a8440d02() 1814     auto dropAnimationFun = [&isExecuted]() { isExecuted = true; };
1815     dragEvent->SetDropAnimation(std::move(dropAnimationFun));
1816     dragDropManager->ExecuteStopDrag(dragEvent, DragRet::DRAG_CANCEL, true, 0, DragBehavior::UNKNOWN, point);
1817     EXPECT_TRUE(isExecuted);
1818 }
1819 
1820 /**
1821  * @tc.name: DragDropManagerTestNgCoverage066
1822  * @tc.desc: Test HandleOnDragEnd
1823  * @tc.type: FUNC
1824  * @tc.author:
1825  */
1826 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage066, TestSize.Level1)
1827 {
1828     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1829     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1830     ASSERT_NE(frameNode, nullptr);
1831     DragPointerEvent point;
1832     point.x = 1;
1833     point.y = 1;
1834     auto container = MockContainer::Current();
1835     ASSERT_NE(container, nullptr);
1836     container->isSceneBoardWindow_ = true;
1837     auto eventHub = frameNode->GetOrCreateEventHub<EventHub>();
1838     CHECK_NULL_VOID(eventHub);
1839     eventHub->SetDisableDataPrefetch(true);
1840     dragDropManager->HandleOnDragEnd(point, EXTRA_INFO, frameNode);
1841     EXPECT_NE(DragDropBehaviorReporter::GetInstance().stopResult_, DragStopResult::GET_UDKEY_FAIL);
1842     eventHub->SetDisableDataPrefetch(false);
1843     dragDropManager->HandleOnDragEnd(point, EXTRA_INFO, frameNode);
1844     EXPECT_EQ(DragDropBehaviorReporter::GetInstance().stopResult_, DragStopResult::GET_UDKEY_FAIL);
1845 }
1846 
1847 /**
1848  * @tc.name: DragDropManagerTestNgCoverage067
1849  * @tc.desc: Test OnDragDrop IsDragEndPending
1850  * @tc.type: FUNC
1851  * @tc.author:
1852  */
1853 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage067, TestSize.Level1)
1854 {
1855     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1856     ASSERT_NE(dragDropManager, nullptr);
1857     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1858     ASSERT_NE(dragEvent, nullptr);
1859     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1860     ASSERT_NE(frameNode, nullptr);
1861     auto pipeline = PipelineContext::GetCurrentContextSafelyWithCheck();
1862     ASSERT_NE(pipeline, nullptr);
1863     pipeline->taskExecutor_ = AceType::MakeRefPtr<MockTaskExecutor>();
1864     ASSERT_NE(pipeline->taskExecutor_, nullptr);
1865     frameNode->context_ = AceType::RawPtr(pipeline);
1866     DragPointerEvent pointerEvent;
1867     dragEvent->SetResult(DragRet::DRAG_SUCCESS);
1868     dragDropManager->OnDragDrop(dragEvent, frameNode, pointerEvent);
1869     EXPECT_EQ(dragEvent->GetResult(), DragRet::DRAG_SUCCESS);
1870 
1871     dragEvent->SetResult(DragRet::DRAG_SUCCESS);
1872     dragEvent->SetIsDragEndPending(true);
1873     dragEvent->SetRequestIdentify(1);
1874     DragDropGlobalController::GetInstance().requestId_ = 1;
1875     dragDropManager->OnDragDrop(dragEvent, frameNode, pointerEvent);
1876     EXPECT_EQ(dragEvent->GetResult(), DragRet::DRAG_FAIL);
1877 }
1878 
1879 /**
1880  * @tc.name: DragDropManagerTestNgCoverage068
1881  * @tc.desc: Test HandleStopDrag
1882  * @tc.type: FUNC
1883  * @tc.author:
1884  */
1885 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage068, TestSize.Level1)
1886 {
1887     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1888     ASSERT_NE(dragDropManager, nullptr);
1889     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1890     ASSERT_NE(dragEvent, nullptr);
1891     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1892     ASSERT_NE(frameNode, nullptr);
1893     auto pipeline = PipelineContext::GetCurrentContextSafelyWithCheck();
1894     ASSERT_NE(pipeline, nullptr);
1895     frameNode->context_ = AceType::RawPtr(pipeline);
1896     DragPointerEvent pointerEvent;
1897     dragDropManager->dragCursorStyleCore_ = DragCursorStyleCore::MOVE;
1898     dragDropManager->HandleStopDrag(frameNode, pointerEvent, dragEvent, "");
1899     EXPECT_EQ(dragDropManager->dragCursorStyleCore_, DragCursorStyleCore::DEFAULT);
1900 }
1901 
1902 /**
1903  * @tc.name: DragDropManagerTestNgCoverage069
1904  * @tc.desc: Test GetStopDragCallBack
1905  * @tc.type: FUNC
1906  * @tc.author:
1907  */
1908 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage069, TestSize.Level1)
1909 {
1910     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1911     ASSERT_NE(dragDropManager, nullptr);
1912     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1913     ASSERT_NE(dragEvent, nullptr);
1914     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1915     ASSERT_NE(frameNode, nullptr);
1916     DragPointerEvent pointerEvent;
1917     auto callback = dragDropManager->GetStopDragCallBack(frameNode, pointerEvent, dragEvent, "");
1918     EXPECT_NE(callback, nullptr);
1919 }
1920 
1921 /**
1922  * @tc.name: DragDropManagerTestNgCoverage070
1923  * @tc.desc: Test DoDragStartAnimation
1924  * @tc.type: FUNC
1925  * @tc.author:
1926  */
1927 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage070, TestSize.Level1)
1928 {
1929     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1930     RefPtr<UINode> frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1931     ASSERT_NE(frameNode, nullptr);
1932     auto overlayManager = AceType::MakeRefPtr<OverlayManager>(AceType::DynamicCast<FrameNode>(frameNode));
1933     overlayManager->hasDragPixelMap_ = true;
1934 
1935     auto imageNode = FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
1936         AceType::MakeRefPtr<LinearLayoutPattern>(true));
1937     ASSERT_NE(imageNode, nullptr);
1938     auto columnNode = FrameNode::CreateFrameNode(V2::COLUMN_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
1939         AceType::MakeRefPtr<LinearLayoutPattern>(true));
1940     ASSERT_NE(columnNode, nullptr);
1941 
1942     auto textNode = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
1943         AceType::MakeRefPtr<LinearLayoutPattern>(true));
1944     ASSERT_NE(textNode, nullptr);
1945     auto textRow = FrameNode::CreateFrameNode(V2::ROW_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
1946         AceType::MakeRefPtr<LinearLayoutPattern>(false));
1947     ASSERT_NE(textRow, nullptr);
1948     textRow->children_.push_front(textNode);
1949     auto relativeContainerNode =
1950         FrameNode::GetOrCreateFrameNode(V2::RELATIVE_CONTAINER_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
__anon1a33a8440e02() 1951             []() { return AceType::MakeRefPtr<OHOS::Ace::NG::RelativeContainerPattern>(); });
1952     ASSERT_NE(relativeContainerNode, nullptr);
1953     relativeContainerNode->children_.push_front(imageNode);
1954     relativeContainerNode->children_.push_back(textRow);
1955     columnNode->children_.push_back(relativeContainerNode);
1956     overlayManager->dragPixmapColumnNodeWeak_ = columnNode;
1957 
1958     GestureEvent event;
1959     event.SetDeviceId(0xFFFFFFFF);
1960     dragDropManager->SetIsDragWithContextMenu(true);
1961     auto frameNode2 = FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>(), false);
1962     ASSERT_NE(frameNode2, nullptr);
1963     auto guestureEventHub = frameNode2->GetOrCreateGestureEventHub();
1964 
1965     PreparedInfoForDrag drag;
1966     drag.relativeContainerNode = relativeContainerNode;
1967     drag.imageNode = imageNode;
1968 
1969     dragDropManager->DoDragStartAnimation(overlayManager, event, guestureEventHub, drag);
1970     dragDropManager->SetIsDragWithContextMenu(false);
1971     event.SetDeviceId(0xFFFFEEEE);
1972     dragDropManager->DoDragStartAnimation(overlayManager, event, guestureEventHub, drag);
1973     EXPECT_NE(dragDropManager->info_.textNode, nullptr);
1974 }
1975 
1976 /**
1977  * @tc.name: DragDropManagerTestNgCoverage071
1978  * @tc.desc: Test HandleUIExtensionComponentDragCancel
1979  * @tc.type: FUNC
1980  * @tc.author:
1981  */
1982 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage071, TestSize.Level1)
1983 {
1984     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1985     ASSERT_NE(dragDropManager, nullptr);
1986     auto preTargetFrameNode =
1987         AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1988     ASSERT_NE(preTargetFrameNode, nullptr);
1989     auto preTargetFrameNodeUec =
1990         AceType::MakeRefPtr<FrameNode>(V2::DYNAMIC_COMPONENT_ETS_TAG, -1, AceType::MakeRefPtr<Pattern>());
1991     ASSERT_NE(preTargetFrameNodeUec, nullptr);
1992 
1993     auto dragFrameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1994     ASSERT_NE(dragFrameNode, nullptr);
1995     DragPointerEvent pointerEvent;
1996     pointerEvent.x = 1;
1997     pointerEvent.y = 1;
1998     auto container = MockContainer::Current();
1999     ASSERT_NE(container, nullptr);
2000     container->isSceneBoardWindow_ = false;
2001     dragDropManager->isDragCancel_ = false;
2002     Point point = pointerEvent.GetPoint();
2003     auto ret = dragDropManager->HandleUIExtensionComponentDragCancel(
2004         preTargetFrameNode, dragFrameNode, true, pointerEvent, point);
2005     ASSERT_FALSE(ret);
2006 
2007     dragDropManager->isDragCancel_ = true;
2008     ret = dragDropManager->HandleUIExtensionComponentDragCancel(
2009         preTargetFrameNodeUec, dragFrameNode, true, pointerEvent, point);
2010     ASSERT_TRUE(ret);
2011 
2012     ret = dragDropManager->HandleUIExtensionComponentDragCancel(
2013         preTargetFrameNode, dragFrameNode, true, pointerEvent, point);
2014     ASSERT_FALSE(ret);
2015 
2016     ret = dragDropManager->HandleUIExtensionComponentDragCancel(
2017         preTargetFrameNodeUec, dragFrameNode, false, pointerEvent, point);
2018     ASSERT_FALSE(ret);
2019 
2020     ret = dragDropManager->HandleUIExtensionComponentDragCancel(
2021         preTargetFrameNode, dragFrameNode, false, pointerEvent, point);
2022     ASSERT_FALSE(ret);
2023 
2024     dragDropManager->isDragCancel_ = true;
2025     ret = dragDropManager->HandleUIExtensionComponentDragCancel(
2026         dragFrameNode, preTargetFrameNodeUec, false, pointerEvent, point);
2027     ASSERT_TRUE(ret);
2028 }
2029 
2030 /**
2031  * @tc.name: DragDropManagerTestNgCoverage072
2032  * @tc.desc: Test HandleDragEvent
2033  * @tc.type: FUNC
2034  * @tc.author:
2035  */
2036 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage072, TestSize.Level1)
2037 {
2038     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2039     ASSERT_NE(dragDropManager, nullptr);
2040 
2041     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2042     ASSERT_NE(frameNode, nullptr);
2043     DragPointerEvent pointerEvent;
2044     dragDropManager->dragDropState_ = DragDropMgrState::IDLE;
2045     dragDropManager->HandleDragEvent(pointerEvent, DragEventAction::DRAG_EVENT_START_FOR_CONTROLLER, frameNode);
2046     EXPECT_EQ(dragDropManager->dragDropState_, DragDropMgrState::DRAGGING);
2047 
2048     MockContainer::Current()->SetIsSceneBoardWindow(false);
2049     dragDropManager->isReDragStart_ = true;
2050     dragDropManager->HandleDragEvent(pointerEvent, DragEventAction::DRAG_EVENT_OUT, frameNode);
2051     EXPECT_EQ(dragDropManager->isReDragStart_, false);
2052 
2053     dragDropManager->isWindowConsumed_ = true;
2054     dragDropManager->HandleDragEvent(pointerEvent, DragEventAction::DRAG_EVENT_PULL_THROW, frameNode);
2055     EXPECT_EQ(dragDropManager->isWindowConsumed_, false);
2056 
2057     dragDropManager->dragDropState_ = DragDropMgrState::DRAGGING;
2058     dragDropManager->HandleDragEvent(pointerEvent, DragEventAction::DRAG_EVENT_PULL_CANCEL, frameNode);
2059     EXPECT_EQ(dragDropManager->dragDropState_, DragDropMgrState::IDLE);
2060 
2061     dragDropManager->dragDropState_ = DragDropMgrState::DRAGGING;
2062     dragDropManager->HandleDragEvent(pointerEvent, DragEventAction::DRAG_EVENT_END, frameNode);
2063     EXPECT_EQ(dragDropManager->dragDropState_, DragDropMgrState::IDLE);
2064 
2065     dragDropManager->isWindowConsumed_ = true;
2066     dragDropManager->HandleDragEvent(pointerEvent, DragEventAction::DRAG_EVENT_START, frameNode);
2067     EXPECT_EQ(dragDropManager->isWindowConsumed_, false);
2068 }
2069 
2070 /**
2071  * @tc.name: DragDropManagerTestNgCoverage073
2072  * @tc.desc: Test OnDragDrop IsDragEndPending
2073  * @tc.type: FUNC
2074  * @tc.author:
2075  */
2076 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage073, TestSize.Level1)
2077 {
2078     /**
2079      * @tc.steps: step1. create DragDropManager DragEvent and FrameNode.
2080      * @tc.expected: dragDropManager dragEvent frameNode are not null.
2081      */
2082     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2083     ASSERT_NE(dragDropManager, nullptr);
2084     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
2085     ASSERT_NE(dragEvent, nullptr);
2086     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2087     ASSERT_NE(frameNode, nullptr);
2088     /**
2089      * @tc.steps: step2. create Pipeline .
2090      * @tc.expected: pipeline is not null.
2091      */
2092     auto pipeline = PipelineContext::GetCurrentContextSafelyWithCheck();
2093     ASSERT_NE(pipeline, nullptr);
2094     pipeline->taskExecutor_ = AceType::MakeRefPtr<MockTaskExecutor>();
2095     ASSERT_NE(pipeline->taskExecutor_, nullptr);
2096     frameNode->context_ = AceType::RawPtr(pipeline);
2097     /**
2098      * @tc.steps: step3. create DragPointerEvent, and call SetResult(DragRet::DRAG_SUCCESS), then call OnDragDrop.
2099      * @tc.expected: Result is DragRet::DRAG_SUCCESS.
2100      */
2101     DragPointerEvent pointerEvent;
2102     dragEvent->SetResult(DragRet::DRAG_SUCCESS);
2103     dragDropManager->OnDragDrop(dragEvent, frameNode, pointerEvent);
2104     EXPECT_EQ(dragEvent->GetResult(), DragRet::DRAG_SUCCESS);
2105     /**
2106      * @tc.steps: step4. create displayId and set SetDisplayId(displayId).
2107      */
2108     int32_t displayId = 0;
2109     dragEvent->SetDisplayId(displayId);
2110     dragEvent->SetResult(DragRet::DRAG_SUCCESS);
2111     dragEvent->SetIsDragEndPending(true);
2112     dragEvent->SetRequestIdentify(1);
2113     /**
2114      * @tc.steps: step5. set call OnDragDrop and call GetDisplayId.
2115      * @tc.expected: retDisplayId is displayId.
2116      */
2117     dragDropManager->OnDragDrop(dragEvent, frameNode, pointerEvent);
2118     auto retDisplayId = dragEvent->GetDisplayId();
2119     EXPECT_EQ(retDisplayId, displayId);
2120 }
2121 
2122 /**
2123  * @tc.name: DragDropManagerTestNgCoverage074
2124  * @tc.desc: Test IsDropAllowed
2125  * @tc.type: FUNC
2126  * @tc.author:
2127  */
2128 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage074, TestSize.Level1)
2129 {
2130     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2131     ASSERT_NE(dragDropManager, nullptr);
2132     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2133     frameNode->isDisallowDropForcedly_ = true;
2134     auto ret = dragDropManager->IsDropAllowed(frameNode);
2135     EXPECT_FALSE(ret);
2136 
2137     frameNode->isDisallowDropForcedly_ = false;
2138     frameNode->allowDrop_ = {"general.png-143"};
2139     ret = dragDropManager->IsDropAllowed(frameNode);
2140     EXPECT_TRUE(ret);
2141 
2142     dragDropManager->summaryMap_ = {{"general.png", 143}};
2143     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
2144     EXPECT_CALL(*mockUdmfClient, IsAppropriateType(_, _)).WillOnce(testing::Return(true));
2145     ret = dragDropManager->IsDropAllowed(frameNode);
2146     EXPECT_TRUE(ret);
2147 
2148     dragDropManager->summaryMap_ = {{"general.image", 143}};
2149     mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
2150     EXPECT_CALL(*mockUdmfClient, IsAppropriateType(_, _)).WillOnce(testing::Return(false));
2151     ret = dragDropManager->IsDropAllowed(frameNode);
2152     EXPECT_FALSE(ret);
2153 }
2154 
2155 /**
2156  * @tc.name: DragDropManagerTestNgCoverage075
2157  * @tc.desc: Test ResetBundleInfo
2158  * @tc.type: FUNC
2159  * @tc.author:
2160  */
2161 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage075, TestSize.Level1)
2162 {
2163     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2164     ASSERT_NE(dragDropManager, nullptr);
2165 
2166     dragDropManager->dragBundleInfo_.isRemoteDev = true;
2167 
2168     dragDropManager->ResetBundleInfo();
2169 
2170     EXPECT_EQ(dragDropManager->dragBundleInfo_.isRemoteDev, false);
2171 }
2172 
2173 /**
2174  * @tc.name: DragDropManagerTestNgCoverage076
2175  * @tc.desc: Test GetGatherPixelMap
2176  * @tc.type: FUNC
2177  * @tc.author:
2178  */
2179 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage076, TestSize.Level1)
2180 {
2181     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2182     ASSERT_NE(dragDropManager, nullptr);
2183     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2184     ASSERT_NE(frameNode, nullptr);
2185     RefPtr<MockPixelMap> mockPixelMap = AceType::MakeRefPtr<MockPixelMap>();
2186     ASSERT_NE(mockPixelMap, nullptr);
2187     dragDropManager->PushGatherPixelMap(mockPixelMap);
2188     dragDropManager->PushGatherPixelMap(nullptr);
2189     DragDataCore dragData;
2190     EXPECT_CALL(*mockPixelMap, GetWidth()).Times(1).WillOnce(testing::Return(0.0f));
2191     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(0.0f));
2192     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
2193     EXPECT_EQ(dragData.shadowInfos.size(), 1);
2194 }
2195 
2196 /**
2197  * @tc.name: DragDropManagerTestNgCoverage077
2198  * @tc.desc: Test HandleStopDrag
2199  * @tc.type: FUNC
2200  * @tc.author:
2201  */
2202 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage077, TestSize.Level1)
2203 {
2204     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2205     ASSERT_NE(dragDropManager, nullptr);
2206     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
2207     ASSERT_NE(dragEvent, nullptr);
2208     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2209     ASSERT_NE(frameNode, nullptr);
2210     auto pipeline = PipelineContext::GetCurrentContextSafelyWithCheck();
2211     ASSERT_NE(pipeline, nullptr);
2212     frameNode->context_ = AceType::RawPtr(pipeline);
2213     DragPointerEvent pointerEvent;
2214     dragEvent->needDoInternalDropAnimation_ = true;
2215     dragDropManager->dragCursorStyleCore_ = DragCursorStyleCore::MOVE;
2216     dragDropManager->HandleStopDrag(frameNode, pointerEvent, dragEvent, "");
2217     EXPECT_EQ(dragDropManager->dragCursorStyleCore_, DragCursorStyleCore::DEFAULT);
2218 
2219     dragEvent->needDoInternalDropAnimation_ = true;
2220     dragEvent->useCustomAnimation_ = true;
2221     dragDropManager->dragCursorStyleCore_ = DragCursorStyleCore::MOVE;
2222     dragDropManager->HandleStopDrag(frameNode, pointerEvent, dragEvent, "");
2223     EXPECT_EQ(dragDropManager->dragCursorStyleCore_, DragCursorStyleCore::DEFAULT);
2224 }
2225 
2226 const std::vector<GetDragPreviewInfoCase> GET_DRAG_PREVIEW_INFO_TEST_CASES = {
2227     // Test for GetDragPreviewInfo when tag is image, isNeedScale is true and isDragWithContextMenu is false.
2228     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2229                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2230                            WIDTH, HEIGHT, false),
2231     // Test for GetDragPreviewInfo when tag is image, width is 0, isNeedScale is false and
2232     // isDragWithContextMenu is false.
2233     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2234                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2235                            WIDTH0, HEIGHT, false),
2236     // Test for GetDragPreviewInfo when tag is image, height is 0, isNeedScale is false and
2237     // isDragWithContextMenu is false.
2238     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2239                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2240                            WIDTH, HEIGHT0, false),
2241     // Test for GetDragPreviewInfo when tag is Text, isNeedScale is true, isDragWithContextMenu is false and
2242     // previewOption.isScaleEnabled is false.
2243     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2244                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2245                            WIDTH, HEIGHT, false),
2246     // Test for GetDragPreviewInfo when tag is Web, isNeedScale is true and isDragWithContextMenu is false.
2247     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::WEB_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2248                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2249                            WIDTH, HEIGHT, false),
2250     // Test for GetDragPreviewInfo when tag is image, height is 0, isNeedScale is false and
2251     // isDragWithContextMenu is true.
2252     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2253                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2254                            WIDTH, HEIGHT0, true),
2255     // Test for GetDragPreviewInfo when tag is image, isNeedScale is true and isDragWithContextMenu is true.
2256     GetDragPreviewInfoCase(FrameNode::CreateFrameNode(V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(),
2257                                                       AceType::MakeRefPtr<LinearLayoutPattern>(true)),
2258                            WIDTH, HEIGHT, true),
2259 };
2260 /**
2261  * @tc.name: DragDropManagerTestNgCoverage078
2262  * @tc.desc: Test GetDragPreviewInfo
2263  * @tc.type: FUNC
2264  * @tc.author:
2265  */
2266 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage078, TestSize.Level1)
2267 {
2268     auto containerId = Container::CurrentId();
2269     AceEngine& aceEngine = AceEngine::Get();
2270     aceEngine.AddContainer(containerId, MockContainer::container_);
2271     auto pipelineContext = PipelineContext::GetContextByContainerId(containerId);
2272     ASSERT_NE(pipelineContext, nullptr);
2273     auto dragDropManager = pipelineContext->GetDragDropManager();
2274     ASSERT_NE(dragDropManager, nullptr);
2275     for (const auto& testCase : GET_DRAG_PREVIEW_INFO_TEST_CASES) {
2276         dragDropManager->SetIsDragWithContextMenu(testCase.isDragWithContextMenu);
2277         auto imageNode = testCase.imageNode;
2278         ASSERT_NE(imageNode, nullptr);
2279         imageNode->GetGeometryNode()->SetFrameWidth(testCase.width);
2280         imageNode->GetGeometryNode()->SetFrameHeight(testCase.height);
2281 
2282         auto frameNode1 = AceType::MakeRefPtr<FrameNode>("custom_node", -1, AceType::MakeRefPtr<Pattern>());
2283         ASSERT_NE(frameNode1, nullptr);
2284         auto frameNode2 = AceType::MakeRefPtr<FrameNode>("custom_node", -1, AceType::MakeRefPtr<Pattern>());
2285         ASSERT_NE(frameNode2, nullptr);
2286         RefPtr<OverlayManager> overlayManager;
2287         if (imageNode->GetTag() == V2::WEB_ETS_TAG) {
2288             frameNode1->children_.push_back(imageNode);
2289             frameNode2->children_.push_back(frameNode1);
2290             overlayManager = AceType::MakeRefPtr<OverlayManager>(AceType::DynamicCast<FrameNode>(frameNode2));
2291         } else if (imageNode->GetTag() == V2::TEXT_ETS_TAG) {
2292             auto previewOption = frameNode1->GetDragPreviewOption();
2293             previewOption.isScaleEnabled = false;
2294             imageNode->SetDragPreviewOptions(previewOption, false);
2295             frameNode1->children_.push_back(imageNode);
2296             frameNode2->children_.push_back(frameNode1);
2297             overlayManager = AceType::MakeRefPtr<OverlayManager>(AceType::DynamicCast<FrameNode>(frameNode2));
2298         } else {
2299             frameNode1->children_.push_back(imageNode);
2300             frameNode1->children_.push_back(imageNode);
2301             overlayManager = AceType::MakeRefPtr<OverlayManager>(AceType::DynamicCast<FrameNode>(frameNode1));
2302         }
2303 
2304         overlayManager->hasDragPixelMap_ = true;
2305         frameNode1->isActive_ = true;
2306         if (imageNode->GetTag() == V2::WEB_ETS_TAG || imageNode->GetTag() == V2::TEXT_ETS_TAG) {
2307             overlayManager->dragPixmapColumnNodeWeak_ = WeakPtr<FrameNode>(AceType::DynamicCast<FrameNode>(frameNode2));
2308         } else {
2309             overlayManager->dragPixmapColumnNodeWeak_ = WeakPtr<FrameNode>(AceType::DynamicCast<FrameNode>(frameNode1));
2310         }
2311         NG::DragControllerFuncWrapper::GetDragPreviewInfo(overlayManager, containerId);
2312         EXPECT_EQ(dragDropManager->GetDragPreviewInfo().width, testCase.width);
2313         EXPECT_EQ(dragDropManager->GetDragPreviewInfo().height, testCase.height);
2314         EXPECT_NE(dragDropManager->GetDragPreviewInfo().imageNode, nullptr);
2315     }
2316 }
2317 
2318 /**
2319  * @tc.name: DragDropManagerTestNgCoverage079
2320  * @tc.desc: Test GetDragMoveLastPointByCurrentPointer
2321  * @tc.type: FUNC
2322  * @tc.author:
2323  */
2324 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage079, TestSize.Level1)
2325 {
2326     /**
2327      * @tc.steps: step1. create DragDropManager.
2328      * @tc.expected: dragDropManager is not null.
2329      */
2330     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2331     ASSERT_NE(dragDropManager, nullptr);
2332 
2333     /**
2334      * @tc.steps: step2. update point of pointer 0.
2335      * @tc.expected: update successfully.
2336      */
2337     Point point(1, 1);
2338     int pointerId = 0;
2339     dragDropManager->UpdatePointInfoForFinger(pointerId, point);
2340 
2341     /**
2342      * @tc.steps: step3. get point of pointer 0.
2343      * @tc.expected: get successfully, pointer x is 1.
2344      */
2345     auto pointerPoint = dragDropManager->GetDragMoveLastPointByCurrentPointer(pointerId);
2346     EXPECT_EQ(pointerPoint.GetX(), 1);
2347 
2348     /**
2349      * @tc.steps: step4. get point of pointer 1.
2350      * @tc.expected: no point of pointer 1, return default value, pointer x is 0.
2351      */
2352     pointerId = 1;
2353     pointerPoint = dragDropManager->GetDragMoveLastPointByCurrentPointer(pointerId);
2354     EXPECT_EQ(pointerPoint.GetX(), 0);
2355 }
2356 
2357 /**
2358  * @tc.name: DragDropManagerTestNgCoverage080
2359  * @tc.desc: Test HandleTouchEvent
2360  * @tc.type: FUNC
2361  * @tc.author:
2362  */
2363 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage080, TestSize.Level1)
2364 {
2365     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2366     ASSERT_NE(dragDropManager, nullptr);
2367 
2368     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2369     ASSERT_NE(frameNode, nullptr);
2370 
2371     dragDropManager->dragAnimationPointerEvent_ = DragPointerEvent(0, 0, 0, 0);
2372     dragDropManager->currentPointerId_ = 0;
2373     TouchEvent event;
2374     event.x = 1.0f;
2375     event.y = 1.0f;
2376     event.screenX = 1.0f;
2377     event.screenY = 1.0f;
2378     event.type = TouchType::MOVE;
2379     event.pullType = TouchType::MOVE;
2380     event.id = 0;
2381     dragDropManager->dragDropState_ = DragDropMgrState::IDLE;
2382     dragDropManager->HandleTouchEvent(event);
2383     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 0);
2384     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowY, 0);
2385     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayX, 0);
2386     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayY, 0);
2387 
2388     event.id = 0;
2389     dragDropManager->currentPointerId_ = 0;
2390     dragDropManager->dragDropState_ = DragDropMgrState::DRAGGING;
2391     dragDropManager->HandleTouchEvent(event);
2392     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 1);
2393     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowY, 1);
2394     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayX, 1);
2395     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayY, 1);
2396 
2397     dragDropManager->dragAnimationPointerEvent_ = DragPointerEvent(0, 0, 0, 0);
2398     event.id = 1;
2399     dragDropManager->currentPointerId_ = 0;
2400     dragDropManager->dragDropState_ = DragDropMgrState::IDLE;
2401     dragDropManager->HandleTouchEvent(event);
2402     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 0);
2403     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowY, 0);
2404     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayX, 0);
2405     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayY, 0);
2406 
2407     event.id = 1;
2408     dragDropManager->currentPointerId_ = 0;
2409     dragDropManager->dragDropState_ = DragDropMgrState::DRAGGING;
2410     dragDropManager->HandleTouchEvent(event);
2411     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 0);
2412     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowY, 0);
2413     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayX, 0);
2414     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.displayY, 0);
2415 }
2416 
2417 /**
2418  * @tc.name: DragDropManagerTestNgCoverage081
2419  * @tc.desc: Test OnDragStart when isSceneBoardWindow_ is false
2420  * @tc.type: FUNC
2421  * @tc.author:
2422  */
2423 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage081, TestSize.Level1)
2424 {
2425     /**
2426      * @tc.steps: step1. create DragDropManager.
2427      * @tc.expected: dragDropManager is not null.
2428      */
2429     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2430     ASSERT_NE(dragDropManager, nullptr);
2431 
2432     /**
2433      * @tc.steps: step2. construct frameNode and update the properties.
2434      * @tc.expected: frameNode is not null.
2435      */
2436     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2437     ASSERT_NE(frameNode, nullptr);
2438 
2439     /**
2440      * @tc.steps: step3. set isSceneBoardWindow_ true.
2441      * @tc.expected: container is not null.
2442      */
2443     auto container = MockContainer::Current();
2444     ASSERT_NE(container, nullptr);
2445     container->isSceneBoardWindow_ = true;
2446 
2447     /**
2448      * @tc.steps: step4. call OnDragStart with frameNode and point.
2449      * @tc.expected: rootNode_ is null.
2450      */
2451     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, frameNode);
2452     EXPECT_EQ(dragDropManager->rootNode_, nullptr);
2453 }
2454 
2455 /**
2456  * @tc.name: DragDropManagerTestNgCoverage082
2457  * @tc.desc: Test SetDragAnimationPointerEvent func
2458  * @tc.type: FUNC
2459  * @tc.author:
2460  */
2461 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage082, TestSize.Level1)
2462 {
2463     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
2464     ASSERT_NE(dragDropManager, nullptr);
2465 
2466     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2467     ASSERT_NE(frameNode, nullptr);
2468     dragDropManager->rootNode_ = frameNode;
2469 
2470     auto container = MockContainer::Current();
2471     ASSERT_NE(container, nullptr);
2472     container->isSceneBoardWindow_ = true;
2473 
2474     DragPointerEvent pointerEvent;
2475     dragDropManager->SetDragAnimationPointerEvent(pointerEvent, frameNode);
2476     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 0);
2477 
2478     auto node = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
2479     pointerEvent.windowX = 1;
2480     dragDropManager->SetDragAnimationPointerEvent(pointerEvent, node);
2481     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 0);
2482 
2483     container->isSceneBoardWindow_ = false;
2484     pointerEvent.windowX = 2;
2485     dragDropManager->SetDragAnimationPointerEvent(pointerEvent, frameNode);
2486     EXPECT_EQ(dragDropManager->dragAnimationPointerEvent_.windowX, 2);
2487 }
2488 } // namespace OHOS::Ace::NG
2489