• 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/components_ng/manager/drag_drop/drag_drop_behavior_reporter/drag_drop_behavior_reporter.h"
22 #include "core/components_ng/manager/drag_drop/drag_drop_func_wrapper.h"
23 
24 using namespace testing;
25 using namespace testing::ext;
26 namespace OHOS::Ace::NG {
SetUpTestCase()27 void DragDropManagerTestNgCoverage::SetUpTestCase()
28 {
29     MockPipelineContext::SetUp();
30     MockContainer::SetUp();
31 }
32 
TearDownTestCase()33 void DragDropManagerTestNgCoverage::TearDownTestCase()
34 {
35     MockPipelineContext::TearDown();
36     MockContainer::TearDown();
37 }
38 
39 /**
40  * @tc.name: DragDropManagerTestNgCoverage001
41  * @tc.desc: Test FindTargetInChildNodes
42  * @tc.type: FUNC
43  * @tc.author:
44  */
45 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage001, TestSize.Level1)
46 {
47     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
48     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
49     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
50     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
51     frameNodeNull->SetActive(true);
52     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
53     CHECK_NULL_VOID(eventHub);
__anon3899d4220102(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 54     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
55     eventHub->SetOnDrop(std::move(onDragDrop));
56     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
57     auto childNodeNull = AceType::MakeRefPtr<FrameNode>(
58         V2::UI_EXTENSION_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
59     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
60     childNodeNull->SetActive(true);
61     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
62     geometryNode->SetFrameSize(FRAME_SIZE);
63     frameNodeNull->SetGeometryNode(geometryNode);
64     childNodeNull->SetGeometryNode(geometryNode);
65     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
66     auto parentNodeTmp = pipelineTmp->GetRootElement();
67     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
68     parentFrameNodeTmp->SetGeometryNode(geometryNode);
69     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
70     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
71     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
72     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
73     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
74     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
75     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
76     PointF point(GLOBAL_X, GLOBAL_Y);
77     std::vector<RefPtr<FrameNode>> hitFrameNodes;
78     hitFrameNodes.push_back(parentFrameNodeTmp);
79     hitFrameNodes.push_back(frameNodeNull);
80     hitFrameNodes.push_back(childNodeNull);
81     auto pipeline = NG::PipelineContext::GetCurrentContext();
82     auto manager = pipeline->GetOverlayManager();
83     auto parentNode = pipeline->GetRootElement();
84     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
85     auto children = parentFrameNode->GetFrameChildren();
86     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
87     EXPECT_TRUE(result);
88 }
89 
90 /**
91  * @tc.name: DragDropManagerTestNgCoverage002
92  * @tc.desc: Test FindTargetInChildNodes
93  * @tc.type: FUNC
94  * @tc.author:
95  */
96 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage002, TestSize.Level1)
97 {
98     /**
99      * @tc.steps: step1. creat node and generate a node tree.
100      */
101     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
102     const RefPtr<FrameNode> GET_PARENT = FrameNode::CreateFrameNode("parent", 4, AceType::MakeRefPtr<Pattern>());
103     const RefPtr<FrameNode> GET_CHILD1 = FrameNode::CreateFrameNode("child1", 5, AceType::MakeRefPtr<Pattern>());
104     const RefPtr<FrameNode> GET_CHILD2 = FrameNode::CreateFrameNode("child2", 6, AceType::MakeRefPtr<Pattern>());
105     GET_CHILD1->UpdateInspectorId("child1");
106     GET_CHILD2->UpdateInspectorId("child2");
107     GET_PARENT->frameChildren_.insert(GET_CHILD1);
108     GET_PARENT->frameChildren_.insert(GET_CHILD2);
109     std::vector<RefPtr<FrameNode>> hitFrameNodes;
110     hitFrameNodes.push_back(GET_PARENT);
111     hitFrameNodes.push_back(GET_CHILD1);
112     hitFrameNodes.push_back(GET_CHILD2);
113     dragDropManager->AddGridDragFrameNode(GET_PARENT->GetId(), GET_PARENT);
114 
115     /**
116      * @tc.steps: step2. initialize parentEventHub and set HitTestMode.
117      */
118     auto parentEventHub = GET_PARENT->GetOrCreateGestureEventHub();
119     parentEventHub->SetHitTestMode(HitTestMode::HTMBLOCK);
120     auto dragResult = dragDropManager->FindTargetInChildNodes(GET_PARENT, hitFrameNodes, true);
121 
122     /**
123      * @tc.steps: step3. call GetDispatchFrameNode.
124      * @tc.expected: expect GetDispatchFrameNode ruturn nullptr.
125      */
126     EXPECT_EQ(dragResult, nullptr);
127 }
128 
129 /**
130  * @tc.name: DragDropManagerTestNgCoverage003
131  * @tc.desc: Test FindTargetInChildNodes with null child nodes
132  * @tc.type: FUNC
133  * @tc.author:
134  */
135 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage003, TestSize.Level1)
136 {
137     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
138     auto parentNode = AceType::MakeRefPtr<FrameNode>(
139         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
140     for (int i = 0; i < 5; ++i) {
141         parentNode->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
142     }
143     std::vector<RefPtr<FrameNode>> hitFrameNodes;
144     hitFrameNodes.push_back(parentNode);
145     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
146     EXPECT_EQ(result, nullptr);
147 }
148 
149 /**
150  * @tc.name: DragDropManagerTestNgCoverage004
151  * @tc.desc: Test FindTargetInChildNodes with hit FrameNode having OnDrop event
152  * @tc.type: FUNC
153  * @tc.author:
154  */
155 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage004, 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     auto hitFrameNode = AceType::MakeRefPtr<FrameNode>(
161         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
162     auto eventHub = AceType::MakeRefPtr<EventHub>();
163     auto parentEventHub = hitFrameNode->GetOrCreateGestureEventHub();
164     parentEventHub->SetHitTestMode(HitTestMode::HTMBLOCK);
165     dragDropManager->AddGridDragFrameNode(hitFrameNode->GetId(), hitFrameNode);
166 
167     parentNode->frameChildren_.insert(WeakPtr<NG::FrameNode>(hitFrameNode));
168     std::vector<RefPtr<FrameNode>> hitFrameNodes;
169     hitFrameNodes.push_back(hitFrameNode);
170 
171     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
172     EXPECT_FALSE(result);
173 }
174 
175 /**
176  * @tc.name: DragDropManagerTestNgCoverage005
177  * @tc.desc: Test FindTargetDropNode with null parentNode
178  * @tc.type: FUNC
179  * @tc.author:
180  */
181 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage005, TestSize.Level1)
182 {
183     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
184     PointF point(0.0, 0.0);
185     auto result = dragDropManager->FindTargetDropNode(nullptr, point);
186     EXPECT_EQ(result, nullptr);
187 }
188 
189 /**
190  * @tc.name: DragDropManagerTestNgCoverage006
191  * @tc.desc: Test FindTargetInChildNodes
192  * @tc.type: FUNC
193  * @tc.author:
194  */
195 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage006, TestSize.Level1)
196 {
197     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
198     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
199     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
200     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
201     frameNodeNull->SetActive(true);
202     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
203     CHECK_NULL_VOID(eventHub);
__anon3899d4220202(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 204     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
205     eventHub->SetOnDrop(std::move(onDragDrop));
206     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
207     auto childNodeNull =
208         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
209     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
210     childNodeNull->SetActive(true);
211     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
212     geometryNode->SetFrameSize(FRAME_SIZE);
213     frameNodeNull->SetGeometryNode(geometryNode);
214     childNodeNull->SetGeometryNode(geometryNode);
215     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
216     auto parentNodeTmp = pipelineTmp->GetRootElement();
217     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
218     parentFrameNodeTmp->SetGeometryNode(geometryNode);
219     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
220     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
221     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
222     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
223     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
224     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
225     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
226     PointF point(GLOBAL_X, GLOBAL_Y);
227     std::vector<RefPtr<FrameNode>> hitFrameNodes;
228     hitFrameNodes.push_back(parentFrameNodeTmp);
229     hitFrameNodes.push_back(frameNodeNull);
230     hitFrameNodes.push_back(childNodeNull);
231     auto pipeline = NG::PipelineContext::GetCurrentContext();
232     auto manager = pipeline->GetOverlayManager();
233     auto parentNode = pipeline->GetRootElement();
234     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
235     auto children = parentFrameNode->GetFrameChildren();
236     auto result = dragDropManager->FindTargetInChildNodes(parentNode, hitFrameNodes, true);
237     EXPECT_TRUE(result);
238 }
239 
240 /**
241  * @tc.name: DragDropManagerTestNgCoverage007
242  * @tc.desc: Test FindTargetDropNode with inactive or invisible parentFrameNode
243  * @tc.type: FUNC
244  * @tc.author:
245  */
246 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage007, TestSize.Level1)
247 {
248     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
249     auto parentNode = AceType::MakeRefPtr<FrameNode>(
250         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
251     PointF point(0.0, 0.0);
252 
253     parentNode->SetActive(false);
254     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
255     EXPECT_EQ(result, nullptr);
256 
257     parentNode->SetActive(true);
258     parentNode->GetLayoutProperty()->UpdateVisibility(VisibleType::INVISIBLE);
259     result = dragDropManager->FindTargetDropNode(parentNode, point);
260     EXPECT_EQ(result, nullptr);
261 }
262 
263 /**
264  * @tc.name: DragDropManagerTestNgCoverage009
265  * @tc.desc: Test FindTargetDropNode with null child nodes
266  * @tc.type: FUNC
267  * @tc.author:
268  */
269 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage009, TestSize.Level1)
270 {
271     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
272     auto parentNode = AceType::MakeRefPtr<FrameNode>(
273         NODE_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<GridPattern>());
274     for (int i = 0; i < 5; ++i) {
275         parentNode->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
276     }
277     PointF point(0.0, 0.0);
278     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
279     EXPECT_EQ(result, nullptr);
280 }
281 
282 /**
283  * @tc.name: DragDropManagerTestNgCoverage010
284  * @tc.desc: Test FindTargetDropNode with null child nodes
285  * @tc.type: FUNC
286  * @tc.author:
287  */
288 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage010, TestSize.Level1)
289 {
290     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
291     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
292     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
293     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
294     frameNodeNull->SetActive(true);
295     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
296     CHECK_NULL_VOID(eventHub);
__anon3899d4220302(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 297     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
298     eventHub->SetOnDrop(std::move(onDragDrop));
299     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
300     auto childNodeNull =
301         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
302     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
303     childNodeNull->SetActive(true);
304     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
305     geometryNode->SetFrameSize(FRAME_SIZE);
306     frameNodeNull->SetGeometryNode(geometryNode);
307     childNodeNull->SetGeometryNode(geometryNode);
308     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
309     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
310     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
311     auto parentNodeTmp = pipelineTmp->GetRootElement();
312     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
313     parentFrameNodeTmp->SetGeometryNode(geometryNode);
314     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
315     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
316     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
317     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
318     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
319     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
320     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
321     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
322     PointF point(100.0, 100.0);
323     auto pipeline = NG::PipelineContext::GetCurrentContext();
324     auto manager = pipeline->GetOverlayManager();
325     auto parentNode = pipeline->GetRootElement();
326     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
327     auto children = parentFrameNode->GetFrameChildren();
328     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
329     EXPECT_TRUE(result);
330 }
331 
332 /**
333  * @tc.name: DragDropManagerTestNgCoverage011
334  * @tc.desc: Test UpdateDragAllowDrop
335  * @tc.type: FUNC
336  * @tc.author:
337  */
338 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage011, TestSize.Level1)
339 {
340     /**
341      * @tc.steps: step1. create DragDropManager.
342      * @tc.expected: dragDropManager is not null.
343      */
344     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
345     ASSERT_NE(dragDropManager, nullptr);
346 
347     /**
348      * @tc.steps: step2. construct frameNode and update the properties.
349      * @tc.expected: frameNode is not null.
350      */
351     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
352     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
353     ASSERT_NE(frameNode, nullptr);
354     std::set<std::string> allowDrop = { NODE_TAG };
355     frameNode->SetAllowDrop(allowDrop);
356 
357     /**
358      * @tc.steps: step2. construct frameNode and update the properties.
359      * @tc.expected: frameNode is not null.
360      */
361     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
362     auto childNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
363     ASSERT_NE(childNode, nullptr);
364     childNode->SetAllowDrop(allowDrop);
365 
366     /**
367      * @tc.steps: step3. call UpdateDragAllowDrop with frameNode and copy.
368      * @tc.expected: dragDropManager->summaryMap_.empty() return a true value.
369      */
370     dragDropManager->summaryMap_.clear();
371     PointF point(100.0, 100.0);
372     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, childNode);
373     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
374     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior::UNKNOWN, -1);
375     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
376 
377     /**
378      * @tc.steps: step3. call UpdateDragAllowDrop with frameNode and copy.
379      * @tc.expected: dragDropManager->summaryMap_.empty() return a true value.
380      */
381     dragDropManager->summaryMap_.clear();
382     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, frameNode);
383     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
384     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior::UNKNOWN, -1);
385     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
386 
387     /**
388      * @tc.steps: step4. call UpdateDragAllowDrop with frameNode and copy.
389      * @tc.expected: dragDropManager->summaryMap_.empty() return a false value.
390      */
391     dragDropManager->summaryMap_.clear();
392     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
393     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior::MOVE, -1);
394     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
395 
396     /**
397      * @tc.steps: step5. call UpdateDragAllowDrop with frameNode and copy.
398      * @tc.expected: allowDrop.find(ROOT_ETS_TAG) is equal to allowDrop.end().
399      */
400     dragDropManager->summaryMap_.clear();
401     dragDropManager->summaryMap_.insert(make_pair(ROOT_ETS_TAG, frameNodeNullId));
402     dragDropManager->UpdateDragAllowDrop(frameNode, static_cast<DragBehavior>(-100), -1);
403     EXPECT_TRUE(allowDrop.find(ROOT_ETS_TAG) == allowDrop.end());
404 }
405 
406 /**
407  * @tc.name: DragDropManagerTestNgCoverage012
408  * @tc.desc: Test FindTargetDropNode with null child nodes
409  * @tc.type: FUNC
410  * @tc.author:
411  */
412 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage012, TestSize.Level1)
413 {
414     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
415     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
416     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
417     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
418     frameNodeNull->SetActive(true);
419     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
420     CHECK_NULL_VOID(eventHub);
__anon3899d4220402(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 421     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
422     eventHub->SetOnDrop(std::move(onDragDrop));
423     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
424     auto childNodeNull = AceType::MakeRefPtr<FrameNode>(
425         V2::UI_EXTENSION_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
426     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
427     childNodeNull->SetActive(true);
428     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
429     geometryNode->SetFrameSize(FRAME_SIZE);
430     frameNodeNull->SetGeometryNode(geometryNode);
431     childNodeNull->SetGeometryNode(geometryNode);
432     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
433     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
434     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
435     auto parentNodeTmp = pipelineTmp->GetRootElement();
436     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
437     parentFrameNodeTmp->SetGeometryNode(geometryNode);
438     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
439     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
440     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
441     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
442     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
443     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
444     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
445     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
446     PointF point(100.0, 100.0);
447     auto pipeline = NG::PipelineContext::GetCurrentContext();
448     auto manager = pipeline->GetOverlayManager();
449     auto parentNode = pipeline->GetRootElement();
450     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
451     auto children = parentFrameNode->GetFrameChildren();
452     auto resultNode = dragDropManager->FindDragFrameNodeByPosition(point.GetX(), point.GetY());
453     EXPECT_TRUE(resultNode);
454     auto result = dragDropManager->FindTargetDropNode(parentNode, point);
455     EXPECT_TRUE(result);
456 }
457 
458 /**
459  * @tc.name: DragDropManagerTestNgCoverage013
460  * @tc.desc: Test CheckParentVisible out of parent is a true branch.
461  * @tc.type: FUNC
462  * @tc.author:
463  */
464 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage013, TestSize.Level1)
465 {
466     /**
467      * @tc.steps: step1. construct a DragDropManager.
468      * @tc.expected: dragDropManager is not null.
469      */
470     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
471     ASSERT_NE(dragDropManager, nullptr);
472 
473     RefPtr<NotifyDragEvent> notifyEvent = AceType::MakeRefPtr<NotifyDragEvent>();
474     dragDropManager->UpdateNotifyDragEvent(notifyEvent, Point(1.0f, 1.0f), DragEventType::START);
475     EXPECT_DOUBLE_EQ(notifyEvent->GetX(), 1.0);
476     EXPECT_DOUBLE_EQ(notifyEvent->GetY(), 1.0);
477 
478     std::unordered_map<int32_t, WeakPtr<FrameNode>> dragEnterNodes;
479     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
480     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<GridPattern>());
481     frameNode->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE, true);
482     auto eventHub = frameNode->GetEventHub<EventHub>();
483     eventHub->SetEnabled(true);
484     dragEnterNodes[0] = nullptr;
485     dragEnterNodes[1] = frameNode;
486     dragDropManager->NotifyDragRegisterFrameNode(dragEnterNodes, DragEventType::START, notifyEvent);
487     EXPECT_TRUE(frameNode->GetPattern<Pattern>());
488 }
489 
490 /**
491  * @tc.name: DragDropManagerTestNgCoverage014
492  * @tc.desc: Test PrintDragFrameNode
493  * @tc.type: FUNC
494  * @tc.author:
495  */
496 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage014, TestSize.Level1)
497 {
498     /**
499      * @tc.steps: step1. construct a DragDropManager
500      */
501     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
502     OHOS::Ace::DragPointerEvent point;
503 
504     /**
505      * @tc.steps: step2. call OnDragStart
506      * @tc.expected: step2. draggedFrameNode_ &  preTargetFrameNode_ are assigned to the frameNode created previously
507      */
508     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
509     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
510     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, frameNode);
511     dragDropManager->OnItemDragStart(GLOBAL_X, GLOBAL_Y, frameNode);
512     auto draggedNode = dragDropManager->draggedFrameNode_;
513     auto preTargetNode = dragDropManager->preTargetFrameNode_;
514     dragDropManager->PrintGridDragFrameNode(GLOBAL_X, GLOBAL_Y, frameNode);
515     ASSERT_TRUE(preTargetNode);
516     dragDropManager->onDragCancel();
517     dragDropManager->onItemDragCancel();
518     dragDropManager->PrintDragFrameNode(point, frameNode);
519     dragDropManager->PrintGridDragFrameNode(GLOBAL_X, GLOBAL_Y, frameNode);
520     preTargetNode = dragDropManager->preTargetFrameNode_;
521     ASSERT_TRUE(draggedNode);
522     ASSERT_FALSE(preTargetNode);
523 }
524 
525 /**
526  * @tc.name: DragDropManagerTestNgCoverage015
527  * @tc.desc: Test PrintDragFrameNode
528  * @tc.type: FUNC
529  * @tc.author:
530  */
531 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage015, TestSize.Level1)
532 {
533     /**
534      * @tc.steps: step1. construct a DragDropManager
535      */
536     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
537     dragDropManager->TransDragWindowToDragFwk(111);
538     dragDropManager->TransDragWindowToDragFwk(111);
539     ASSERT_TRUE(dragDropManager->isDragFwkShow_);
540 }
541 
542 /**
543  * @tc.name: DragDropManagerTestNgCoverage016
544  * @tc.desc: Test isDistanceLimited when distance is less than the limit
545  * @tc.type: FUNC
546  * @tc.author:
547  */
548 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage016, TestSize.Level1)
549 {
550     DragDropManager dragDropManager;
551     dragDropManager.preMovePoint_ = Point(0, 0);
552     Point point(3, 4); // Distance is 5
553     EXPECT_TRUE(dragDropManager.isDistanceLimited(point));
554 }
555 
556 /**
557  * @tc.name: DragDropManagerTestNgCoverage017
558  * @tc.desc: Test isDistanceLimited when distance is biger than the limit
559  * @tc.type: FUNC
560  * @tc.author:
561  */
562 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage017, TestSize.Level1)
563 {
564     DragDropManager dragDropManager;
565     dragDropManager.preMovePoint_ = Point(0, 0);
566     Point point(100 + 1, 0); // Distance is greater than MOVE_DISTANCE_LIMIT
567     EXPECT_FALSE(dragDropManager.isDistanceLimited(point));
568 }
569 
570 /**
571  * @tc.name: DragDropManagerTestNgCoverage018
572  * @tc.desc: Test isTimeLimited when time interval is less than the limit
573  * @tc.type: FUNC
574  * @tc.author:
575  */
576 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage018, TestSize.Level1)
577 {
578     DragDropManager dragDropManager;
579     dragDropManager.preTimeStamp_ = 1000;
580     DragPointerEvent pointerEvent;
581     Point point(0, 0);
582     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
583 }
584 
585 /**
586  * @tc.name: DragDropManagerTestNgCoverage019
587  * @tc.desc: Test isTimeLimited when time interval is equal to the limit
588  * @tc.type: FUNC
589  * @tc.author:
590  */
591 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage019, TestSize.Level1)
592 {
593     DragDropManager dragDropManager;
594     dragDropManager.preTimeStamp_ = 1000;
595     DragPointerEvent pointerEvent;
596     pointerEvent.time += std::chrono::milliseconds(1000); // 1000ms after preTimeStamp_
597     Point point(0, 0);
598     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
599 }
600 
601 /**
602  * @tc.name: DragDropManagerTestNgCoverage020
603  * @tc.desc: Test isTimeLimited when time interval is greater than the limit
604  * @tc.type: FUNC
605  * @tc.author:
606  */
607 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage020, TestSize.Level1)
608 {
609     DragDropManager dragDropManager;
610     dragDropManager.preTimeStamp_ = 1000;
611     DragPointerEvent pointerEvent;
612     pointerEvent.time += std::chrono::milliseconds(2500); // 1500ms after preTimeStamp_
613     Point point(0, 0);
614     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
615 }
616 
617 /**
618  * @tc.name: DragDropManagerTestNgCoverage021
619  * @tc.desc: Test isTimeLimited when time is the same as preTimeStamp
620  * @tc.type: FUNC
621  * @tc.author:
622  */
623 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage021, TestSize.Level1)
624 {
625     DragDropManager dragDropManager;
626     dragDropManager.preTimeStamp_ = 1000;
627     DragPointerEvent pointerEvent;
628     pointerEvent.time += std::chrono::milliseconds(1000); // Same as preTimeStamp_
629     Point point(0, 0);
630     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
631 }
632 
633 /**
634  * @tc.name: DragDropManagerTestNgCoverage022
635  * @tc.desc: Test isTimeLimited when current time is less than preTimeStamp
636  * @tc.type: FUNC
637  * @tc.author:
638  */
639 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage022, TestSize.Level1)
640 {
641     DragDropManager dragDropManager;
642     dragDropManager.preTimeStamp_ = 2000;
643     DragPointerEvent pointerEvent;
644     pointerEvent.time += std::chrono::milliseconds(1500); // Less than preTimeStamp_
645     Point point(0, 0);
646     EXPECT_FALSE(dragDropManager.isTimeLimited(pointerEvent, point));
647 }
648 
649 /**
650  * @tc.name: DragDropManagerTestNgCoverage023
651  * @tc.desc: Test ReachMoveLimit when current time is less than preTimeStamp
652  * @tc.type: FUNC
653  * @tc.author:
654  */
655 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage023, TestSize.Level1)
656 {
657     DragDropManager dragDropManager;
658     dragDropManager.preTimeStamp_ = 2000;
659     DragPointerEvent pointerEvent;
660     pointerEvent.time += std::chrono::milliseconds(2005);
661     pointerEvent.sourceTool = SourceTool::MOUSE;
662     dragDropManager.preMovePoint_ = Point(0, 0);
663     Point point(3, 4); // Distance is 5
664     EXPECT_TRUE(dragDropManager.ReachMoveLimit(pointerEvent, point));
665 }
666 
667 /**
668  * @tc.name: DragDropManagerTestNgCoverage024
669  * @tc.desc: Test ReachMoveLimit when current time is less than preTimeStamp
670  * @tc.type: FUNC
671  * @tc.author:
672  */
673 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage024, TestSize.Level1)
674 {
675     DragDropManager dragDropManager;
676     dragDropManager.preTimeStamp_ = 2000;
677     DragPointerEvent pointerEvent;
678     pointerEvent.time += std::chrono::milliseconds(1000);
679     pointerEvent.sourceTool = SourceTool::MOUSE;
680     dragDropManager.preMovePoint_ = Point(0, 0);
681     Point point(15, 20); // Distance is 25
682     EXPECT_FALSE(dragDropManager.ReachMoveLimit(pointerEvent, point));
683 }
684 
685 /**
686  * @tc.name: DragDropManagerTestNgCoverage025
687  * @tc.desc: Test ReachMoveLimit when current time is less than preTimeStamp
688  * @tc.type: FUNC
689  * @tc.author:
690  */
691 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage025, TestSize.Level1)
692 {
693     DragDropManager dragDropManager;
694     dragDropManager.preTimeStamp_ = 2000;
695     DragPointerEvent pointerEvent;
696     pointerEvent.time += std::chrono::milliseconds(2002);
697     pointerEvent.sourceTool = SourceTool::MOUSE;
698     dragDropManager.preMovePoint_ = Point(0, 0);
699     Point point(15, 20); // Distance is 25
700     EXPECT_FALSE(dragDropManager.ReachMoveLimit(pointerEvent, point));
701 }
702 
703 /**
704  * @tc.name: DragDropManagerTestNgCoverage026
705  * @tc.desc: Test OnDragMove OnDragEnd
706  * @tc.type: FUNC
707  * @tc.author:
708  */
709 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage026, TestSize.Level1)
710 {
711     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
712     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
713     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
714     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
715     frameNodeNull->SetActive(true);
716     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
717     CHECK_NULL_VOID(eventHub);
__anon3899d4220502(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 718     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
719     eventHub->SetOnDrop(std::move(onDragDrop));
720     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
721     auto childNodeNull =
722         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
723     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
724     childNodeNull->SetActive(true);
725     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
726     geometryNode->SetFrameSize(FRAME_SIZE);
727     frameNodeNull->SetGeometryNode(geometryNode);
728     childNodeNull->SetGeometryNode(geometryNode);
729     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
730     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
731     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
732     auto parentNodeTmp = pipelineTmp->GetRootElement();
733     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
734     parentFrameNodeTmp->SetGeometryNode(geometryNode);
735     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
736     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
737     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
738     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
739     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
740     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
741     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
742     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
743     PointF point(100.0, 100.0);
744     auto pipeline = NG::PipelineContext::GetCurrentContext();
745     auto manager = pipeline->GetOverlayManager();
746     auto parentNode = pipeline->GetRootElement();
747     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
748     auto children = parentFrameNode->GetFrameChildren();
749     DragPointerEvent pointEvent(100, 100, 100, 100);
750     auto draggedNode = dragDropManager->draggedFrameNode_;
751     auto preTargetNode = dragDropManager->preTargetFrameNode_;
752     dragDropManager->isMouseDragged_ = true;
753     dragDropManager->isDragWindowShow_ = true;
754     std::string extraInfo;
755     dragDropManager->OnTextDragEnd(100, 100, extraInfo);
756     EXPECT_EQ(dragDropManager->currentId_, -1);
757     ASSERT_FALSE(draggedNode);
758     ASSERT_FALSE(preTargetNode);
759 }
760 
761 /**
762  * @tc.name: DragDropManagerTestNgCoverage027
763  * @tc.desc: Test OnDragMove OnDragEnd
764  * @tc.type: FUNC
765  * @tc.author:
766  */
767 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage027, TestSize.Level1)
768 {
769     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
770     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
771     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
772     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
773     frameNodeNull->SetActive(true);
774     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
775     CHECK_NULL_VOID(eventHub);
__anon3899d4220602(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 776     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
777     eventHub->SetOnDrop(std::move(onDragDrop));
778     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
779     auto childNodeNull = AceType::MakeRefPtr<FrameNode>(
780         V2::UI_EXTENSION_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
781     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
782     childNodeNull->SetActive(true);
783     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
784     geometryNode->SetFrameSize(FRAME_SIZE);
785     frameNodeNull->SetGeometryNode(geometryNode);
786     childNodeNull->SetGeometryNode(geometryNode);
787     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
788     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
789     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
790     auto parentNodeTmp = pipelineTmp->GetRootElement();
791     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
792     parentFrameNodeTmp->SetGeometryNode(geometryNode);
793     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
794     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
795     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
796     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
797     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
798     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
799     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
800     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
801     PointF point(100.0, 100.0);
802     auto pipeline = NG::PipelineContext::GetCurrentContext();
803     auto manager = pipeline->GetOverlayManager();
804     auto parentNode = pipeline->GetRootElement();
805     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
806     auto children = parentFrameNode->GetFrameChildren();
807     DragPointerEvent pointEvent(100, 100, 100, 100);
808     auto draggedNode = dragDropManager->draggedFrameNode_;
809     auto preTargetNode = dragDropManager->preTargetFrameNode_;
810     dragDropManager->isMouseDragged_ = true;
811     dragDropManager->isDragWindowShow_ = true;
812     dragDropManager->OnDragMove(pointEvent, EXTRA_INFO);
813     dragDropManager->OnDragEnd(pointEvent, EXTRA_INFO);
814     ASSERT_FALSE(draggedNode);
815     ASSERT_FALSE(preTargetNode);
816 }
817 
818 /**
819  * @tc.name: DragDropManagerTestNgCoverage028
820  * @tc.desc: Test OnDragMove OnDragEnd
821  * @tc.type: FUNC
822  * @tc.author:
823  */
824 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage028, TestSize.Level1)
825 {
826     /**
827      * @tc.steps: step1. construct a DragDropManager
828      */
829     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
830     DragPointerEvent point(100, 100, 100, 100);
831     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
832     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
833 
834     /**
835      * @tc.steps: step2. call OnDragStart
836      * @tc.expected: step2. draggedFrameNode_ &  preTargetFrameNode_ are assigned to the frameNode created previously
837      */
838     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
839     auto draggedNode = dragDropManager->draggedFrameNode_;
840     auto preTargetNode = dragDropManager->preTargetFrameNode_;
841     dragDropManager->OnDragMove(point, EXTRA_INFO);
842     dragDropManager->OnDragEnd(point, EXTRA_INFO);
843     ASSERT_FALSE(draggedNode);
844     ASSERT_FALSE(preTargetNode);
845 }
846 
847 /**
848  * @tc.name: DragDropManagerTestNgCoverage029
849  * @tc.desc: Test RequestDragSummaryInfoAndPrivilege
850  * @tc.type: FUNC
851  * @tc.author:
852  */
853 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage029, TestSize.Level1)
854 {
855     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
856     ASSERT_NE(dragDropManager, nullptr);
857     dragDropManager->RequestDragSummaryInfoAndPrivilege();
858     EXPECT_NE(dragDropManager, nullptr);
859 }
860 
861 /**
862  * @tc.name: DragDropManagerTestNgCoverage032
863  * @tc.desc: Test CheckRemoteDat with empty udkey
864  * @tc.type: FUNC
865  * @tc.author:
866  */
867 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage032, TestSize.Level1)
868 {
869     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
870     ASSERT_NE(dragDropManager, nullptr);
871     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
872     DragPointerEvent point;
873     std::string remoteUdKey;
874     auto result = dragDropManager->CheckRemoteData(frameNode, point, remoteUdKey);
875     EXPECT_FALSE(result);
876 }
877 
878 /**
879  * @tc.name: DragDropManagerTestNgCoverage033
880  * @tc.desc: Test CheckRemoteDat with isRemoteData
881  * @tc.type: FUNC
882  * @tc.author:
883  */
884 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage033, TestSize.Level1)
885 {
886     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
887     ASSERT_NE(dragDropManager, nullptr);
888     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
889     DragPointerEvent point;
890     std::string remoteUdKey = "abc";
891     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
892     EXPECT_CALL(*mockUdmfClient, GetRemoteStatus(testing::_)).WillOnce(testing::Return(true));
893     auto result = dragDropManager->CheckRemoteData(frameNode, point, remoteUdKey);
894     EXPECT_TRUE(result);
895 }
896 
897 /**
898  * @tc.name: DragDropManagerTestNgCoverage034
899  * @tc.desc: Test RequestUDMFDataWithUDKey
900  * @tc.type: FUNC
901  * @tc.author:
902  */
903 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage034, TestSize.Level1)
904 {
905     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
906     ASSERT_NE(dragDropManager, nullptr);
907     std::string remoteUdKey = "abc";
908     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
909     EXPECT_CALL(*mockUdmfClient, GetData(testing::_, testing::_)).Times(1).WillOnce(testing::Return(1));
910     auto result = dragDropManager->RequestUDMFDataWithUDKey(remoteUdKey);
911     EXPECT_EQ(result, nullptr);
912 }
913 
914 /**
915  * @tc.name: DragDropManagerTestNgCoverage035
916  * @tc.desc: Test RequestUDMFDataWithUDKey
917  * @tc.type: FUNC
918  * @tc.author:
919  */
920 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage035, TestSize.Level1)
921 {
922     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
923     ASSERT_NE(dragDropManager, nullptr);
924     std::string remoteUdKey;
925     auto result = dragDropManager->RequestUDMFDataWithUDKey(remoteUdKey);
926     EXPECT_EQ(result, nullptr);
927 }
928 
929 /**
930  * @tc.name: DragDropManagerTestNgCoverage036
931  * @tc.desc: Test RequestUDMFDataWithUDKey
932  * @tc.type: FUNC
933  * @tc.author:
934  */
935 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage036, TestSize.Level1)
936 {
937     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
938     ASSERT_NE(dragDropManager, nullptr);
939     std::string remoteUdKey = "ABC";
940     auto mockUdmfClient = static_cast<MockUdmfClient*>(UdmfClient::GetInstance());
941     EXPECT_CALL(*mockUdmfClient, GetData(testing::_, testing::_)).Times(1).WillOnce(testing::Return(0));
942     auto result = dragDropManager->RequestUDMFDataWithUDKey(remoteUdKey);
943     EXPECT_EQ(result, nullptr);
944 }
945 
946 /**
947  * @tc.name: DragDropManagerTestNgCoverage037
948  * @tc.desc: Test DoDropAction
949  * @tc.type: FUNC
950  * @tc.author:
951  */
952 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage037, TestSize.Level1)
953 {
954     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
955     ASSERT_NE(dragDropManager, nullptr);
956     std::string remoteUdKey = "abc";
957     RefPtr<UnifiedData> unifiedData = AceType::MakeRefPtr<MockUnifiedData>();
958     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
959     DragPointerEvent point;
960     dragDropManager->DoDropAction(frameNode, point, unifiedData, remoteUdKey);
961     EXPECT_NE(unifiedData, nullptr);
962 }
963 
964 /**
965  * @tc.name: DragDropManagerTestNgCoverage038
966  * @tc.desc: Test DoDropAction
967  * @tc.type: FUNC
968  * @tc.author:
969  */
970 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage038, TestSize.Level1)
971 {
972     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
973     ASSERT_NE(dragDropManager, nullptr);
974     std::string remoteUdKey;
975     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
976     DragPointerEvent point;
977     dragDropManager->DoDropAction(frameNode, point, nullptr, remoteUdKey);
978     EXPECT_NE(frameNode, nullptr);
979 }
980 
981 /**
982  * @tc.name: DragDropManagerTestNgCoverage039
983  * @tc.desc: Test GetGatherPixelMap
984  * @tc.type: FUNC
985  * @tc.author:
986  */
987 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage039, TestSize.Level1)
988 {
989     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
990     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
991     RefPtr<MockPixelMap> mockPixelMap = AceType::MakeRefPtr<MockPixelMap>();
992     dragDropManager->PushGatherPixelMap(mockPixelMap);
993     DragDataCore dragData;
994     EXPECT_CALL(*mockPixelMap, GetWidth()).Times(1).WillOnce(testing::Return(1.0f));
995     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(1.0f));
996     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
997     EXPECT_NE(frameNode, nullptr);
998 }
999 
1000 /**
1001  * @tc.name: DragDropManagerTestNgCoverage040
1002  * @tc.desc: Test GetGatherPixelMap
1003  * @tc.type: FUNC
1004  * @tc.author:
1005  */
1006 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage040, TestSize.Level1)
1007 {
1008     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1009     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1010     ASSERT_NE(frameNode, nullptr);
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(0.0f));
1016     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1017     EXPECT_NE(frameNode, nullptr);
1018 }
1019 
1020 /**
1021  * @tc.name: DragDropManagerTestNgCoverage041
1022  * @tc.desc: Test GetGatherPixelMap
1023  * @tc.type: FUNC
1024  * @tc.author:
1025  */
1026 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage041, 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(0.0f));
1035     EXPECT_CALL(*mockPixelMap, GetHeight()).Times(1).WillOnce(testing::Return(1.0f));
1036     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1037     EXPECT_NE(frameNode, nullptr);
1038 }
1039 
1040 /**
1041  * @tc.name: DragDropManagerTestNgCoverage042
1042  * @tc.desc: Test GetGatherPixelMap
1043  * @tc.type: FUNC
1044  * @tc.author:
1045  */
1046 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage042, 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(0.0f));
1056     dragDropManager->GetGatherPixelMap(dragData, 2.0f, 1.0f, 1.0f);
1057     EXPECT_NE(frameNode, nullptr);
1058 }
1059 
1060 /**
1061  * @tc.name: DragDropManagerTestNgCoverage043
1062  * @tc.desc: Test UpdateGatherNodeAttr
1063  * @tc.type: FUNC
1064  * @tc.author:
1065  */
1066 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage043, 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     auto pipeline = NG::PipelineContext::GetCurrentContext();
1072     auto manager = pipeline->GetOverlayManager();
1073     GatherAnimationInfo gatherAnimationInfo = { 2.0f, 1.0f, 1.0f, { 0.0, 0.0 } };
1074     dragDropManager->UpdateGatherNodeAttr(manager, gatherAnimationInfo);
1075     EXPECT_NE(frameNode, nullptr);
1076 }
1077 
1078 /**
1079  * @tc.name: DragDropManagerTestNgCoverage044
1080  * @tc.desc: Test UpdateGatherNodeAttr
1081  * @tc.type: FUNC
1082  * @tc.author:
1083  */
1084 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage044, TestSize.Level1)
1085 {
1086     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1087     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1088     ASSERT_NE(frameNode, nullptr);
1089     auto pipeline = NG::PipelineContext::GetCurrentContext();
1090     auto manager = pipeline->GetOverlayManager();
1091     auto imageNode1 = FrameNode::CreateFrameNode(
1092         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1093     ASSERT_NE(imageNode1, nullptr);
1094     auto imageNode2 = FrameNode::CreateFrameNode(
1095         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1096     ASSERT_NE(imageNode2, nullptr);
1097     auto imageNode3 = FrameNode::CreateFrameNode(
1098         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1099     ASSERT_NE(imageNode3, nullptr);
1100     auto imageNode4 = FrameNode::CreateFrameNode(
1101         V2::IMAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), AceType::MakeRefPtr<ImagePattern>());
1102     ASSERT_NE(imageNode4, nullptr);
1103     GatherNodeChildInfo gatherNodeChildInfo1 = { imageNode1, { 100, 100 }, 100, 100 };
1104     GatherNodeChildInfo gatherNodeChildInfo2 = { imageNode2, { 100, 100 }, 100, 0 };
1105     GatherNodeChildInfo gatherNodeChildInfo3 = { imageNode3, { 100, 100 }, 0, 100 };
1106     GatherNodeChildInfo gatherNodeChildInfo4 = { imageNode4, { 100, 100 }, 0, 0 };
1107     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo1);
1108     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo2);
1109     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo3);
1110     manager->gatherNodeChildrenInfo_.push_back(gatherNodeChildInfo4);
1111     GatherAnimationInfo gatherAnimationInfo = { 2.0f, 1.0f, 1.0f, { 0.0, 0.0 } };
1112     dragDropManager->UpdateGatherNodeAttr(manager, gatherAnimationInfo);
1113     EXPECT_NE(frameNode, nullptr);
1114 }
1115 
1116 /**
1117  * @tc.name: DragDropManagerTestNgCoverage045
1118  * @tc.desc: Test SetDragBehavior
1119  * @tc.type: FUNC
1120  * @tc.author:
1121  */
1122 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage045, TestSize.Level1)
1123 {
1124     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1125     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1126     ASSERT_NE(frameNode, nullptr);
1127     auto event = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1128     DragNotifyMsgCore notifyMessage;
1129     notifyMessage.dragBehavior = DragBehavior::COPY;
1130     dragDropManager->SetDragBehavior(notifyMessage, event);
1131     notifyMessage.dragBehavior = DragBehavior::MOVE;
1132     dragDropManager->SetDragBehavior(notifyMessage, event);
1133     notifyMessage.dragBehavior = DragBehavior::UNKNOWN;
1134     dragDropManager->SetDragBehavior(notifyMessage, event);
1135     EXPECT_NE(frameNode, nullptr);
1136 }
1137 
1138 /**
1139  * @tc.name: DragDropManagerTestNgCoverage046
1140  * @tc.desc: Test SetDragResult
1141  * @tc.type: FUNC
1142  * @tc.author:
1143  */
1144 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage046, TestSize.Level1)
1145 {
1146     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1147     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1148     ASSERT_NE(frameNode, nullptr);
1149     auto event = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1150     DragNotifyMsgCore notifyMessage;
1151     notifyMessage.result = DragRet::DRAG_SUCCESS;
1152     dragDropManager->SetDragResult(notifyMessage, event);
1153     notifyMessage.result = DragRet::DRAG_FAIL;
1154     dragDropManager->SetDragResult(notifyMessage, event);
1155     notifyMessage.result = DragRet::DRAG_CANCEL;
1156     dragDropManager->SetDragResult(notifyMessage, event);
1157     notifyMessage.result = DragRet::ENABLE_DROP;
1158     dragDropManager->SetDragResult(notifyMessage, event);
1159     EXPECT_NE(frameNode, nullptr);
1160 }
1161 
1162 /**
1163  * @tc.name: DragDropManagerTestNgCoverage047
1164  * @tc.desc: Test DoDragStartAnimation
1165  * @tc.type: FUNC
1166  * @tc.author:
1167  */
1168 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage047, TestSize.Level1)
1169 {
1170     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1171     RefPtr<UINode> frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1172     ASSERT_NE(frameNode, nullptr);
1173     auto overlayManager = AceType::MakeRefPtr<OverlayManager>(AceType::DynamicCast<FrameNode>(frameNode));
1174     GestureEvent event;
1175     event.SetDeviceId(0xFFFFFFFF);
1176     dragDropManager->SetIsDragWithContextMenu(true);
1177     auto frameNode2 = FrameNode::CreateFrameNode(V2::TEXT_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>(), false);
1178     ASSERT_NE(frameNode2, nullptr);
1179     auto guestureEventHub = frameNode2->GetOrCreateGestureEventHub();
1180     PreparedInfoForDrag drag;
1181     dragDropManager->DoDragStartAnimation(overlayManager, event, guestureEventHub, drag);
1182     dragDropManager->TransDragWindowToDragFwk(111);
1183     dragDropManager->SetIsDragWithContextMenu(false);
1184     event.SetDeviceId(0xFFFFEEEE);
1185     dragDropManager->DoDragStartAnimation(overlayManager, event, guestureEventHub, drag);
1186     EXPECT_NE(frameNode, nullptr);
1187 }
1188 
1189 /**
1190  * @tc.name: DragDropManagerTestNgCoverage048
1191  * @tc.desc: Test DoDragMoveAnimate
1192  * @tc.type: FUNC
1193  * @tc.author:
1194  */
1195 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage048, TestSize.Level1)
1196 {
1197     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1198     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1199     ASSERT_NE(frameNode, nullptr);
1200     dragDropManager->isDragFwkShow_ = false;
1201     dragDropManager->isDragWithContextMenu_ = true;
1202     DragPointerEvent pointerEvent;
1203     dragDropManager->DoDragMoveAnimate(pointerEvent);
1204     pointerEvent.x = 3.0f;
1205     pointerEvent.y = 4.0f;
1206     dragDropManager->info_.scale = 0.5f;
1207     dragDropManager->DoDragMoveAnimate(pointerEvent);
1208     EXPECT_NE(frameNode, nullptr);
1209 }
1210 /**
1211  * @tc.name: DragDropManagerTestNgCoverage049
1212  * @tc.desc: Test UpdateDragMovePositionFinished
1213  * @tc.type: FUNC
1214  * @tc.author:
1215  */
1216 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage049, TestSize.Level1)
1217 {
1218     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1219     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1220     ASSERT_NE(frameNode, nullptr);
1221     auto containerId = Container::CurrentId();
1222     Offset Offset = { 0.0, 0.0 };
1223     dragDropManager->isDragWithContextMenu_ = false;
1224     dragDropManager->UpdateDragMovePositionFinished(true, true, Offset, containerId);
1225     dragDropManager->isDragWithContextMenu_ = true;
1226     dragDropManager->isDragFwkShow_ = true;
1227     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1228     dragDropManager->UpdateDragMovePositionFinished(true, true, Offset, containerId);
1229     dragDropManager->isDragFwkShow_ = true;
1230     dragDropManager->UpdateDragMovePositionFinished(false, false, Offset, containerId);
1231     dragDropManager->UpdateDragMovePositionFinished(false, true, Offset, containerId);
1232     dragDropManager->isDragWithContextMenu_ = false;
1233     EXPECT_NE(frameNode, nullptr);
1234 }
1235 
1236 /**
1237  * @tc.name: DragDropManagerTestNgCoverage050
1238  * @tc.desc: Test FireOnDragEvent
1239  * @tc.type: FUNC
1240  * @tc.author:
1241  */
1242 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage050, TestSize.Level1)
1243 {
1244     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1245     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1246     ASSERT_NE(frameNode, nullptr);
1247     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1248     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1249     ASSERT_NE(frameNodeNull, nullptr);
1250     dragDropManager->AddDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1251     frameNodeNull.Reset();
1252     auto frameNodeGeoNullId = ElementRegister::GetInstance()->MakeUniqueId();
1253     auto frameNodeGeoNull =
1254         AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeGeoNullId, AceType::MakeRefPtr<Pattern>());
1255     frameNodeGeoNull->SetGeometryNode(nullptr);
1256     dragDropManager->AddDragFrameNode(frameNodeGeoNull->GetId(), frameNodeGeoNull);
1257     auto eventHub = frameNode->GetEventHub<EventHub>();
1258     ASSERT_NE(eventHub, nullptr);
1259     std::string onDropInfo;
__anon3899d4220702(const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) 1260     auto onDrop = [&onDropInfo](const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) {
1261         dragEvent->dragRet_ = DragRet::ENABLE_DROP;
1262         onDropInfo = EXTRA_INFO;
1263     };
1264     eventHub->SetOnDrop(std::move(onDrop));
1265     eventHub->SetOnDragMove(std::move(onDrop));
1266     DragPointerEvent point;
1267     TouchEvent event;
1268     event.x = 1.0f;
1269     event.y = 2.0f;
1270     dragDropManager->velocityTracker_.UpdateTouchPoint(event, false);
1271     auto targetFrameNode = dragDropManager->FindDragFrameNodeByPosition(GLOBAL_X, GLOBAL_Y);
1272     auto pipeline = NG::PipelineContext::GetCurrentContext();
1273     auto manager = pipeline->GetOverlayManager();
1274     DragEventType type = DragEventType::MOVE;
1275     frameNode->tag_ = V2::UI_EXTENSION_COMPONENT_ETS_TAG;
1276     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1277     dragDropManager->FireOnDragEvent(frameNode, point, type, EXTRA_INFO);
1278     EXPECT_NE(frameNode, nullptr);
1279 }
1280 
1281 /**
1282  * @tc.name: DragDropManagerTestNgCoverage051
1283  * @tc.desc: Test FireOnDragEvent
1284  * @tc.type: FUNC
1285  * @tc.author:
1286  */
1287 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage051, TestSize.Level1)
1288 {
1289     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1290     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1291     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1292     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1293     ASSERT_NE(frameNodeNull, nullptr);
1294     dragDropManager->AddDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1295     frameNodeNull.Reset();
1296     auto frameNodeGeoNullId = ElementRegister::GetInstance()->MakeUniqueId();
1297     auto frameNodeGeoNull =
1298         AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeGeoNullId, AceType::MakeRefPtr<Pattern>());
1299     ASSERT_NE(frameNodeGeoNull, nullptr);
1300     frameNodeGeoNull->SetGeometryNode(nullptr);
1301     dragDropManager->AddDragFrameNode(frameNodeGeoNull->GetId(), frameNodeGeoNull);
1302     auto eventHub = frameNode->GetEventHub<EventHub>();
1303     ASSERT_NE(eventHub, nullptr);
1304     std::string onDropInfo;
__anon3899d4220802(const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) 1305     auto onDrop = [&onDropInfo](const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) {
1306         dragEvent->dragRet_ = DragRet::ENABLE_DROP;
1307         dragEvent->dragBehavior_ = DragBehavior::MOVE;
1308         onDropInfo = EXTRA_INFO;
1309     };
1310     eventHub->SetOnDrop(std::move(onDrop));
1311     eventHub->SetOnDragMove(std::move(onDrop));
1312     DragPointerEvent point;
1313     TouchEvent event;
1314     event.x = 1.0f;
1315     event.y = 2.0f;
1316     dragDropManager->velocityTracker_.UpdateTouchPoint(event, false);
1317     auto targetFrameNode = dragDropManager->FindDragFrameNodeByPosition(GLOBAL_X, GLOBAL_Y);
1318     DragEventType type = DragEventType::MOVE;
1319     frameNode->tag_ = V2::UI_EXTENSION_COMPONENT_ETS_TAG;
1320     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1321     dragDropManager->FireOnDragEvent(frameNode, point, type, EXTRA_INFO);
1322     EXPECT_NE(frameNode, nullptr);
1323 }
1324 
1325 /**
1326  * @tc.name: DragDropManagerTestNgCoverage052
1327  * @tc.desc: Test FireOnDragEvent
1328  * @tc.type: FUNC
1329  * @tc.author:
1330  */
1331 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage052, TestSize.Level1)
1332 {
1333     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1334     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1335     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1336     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1337     ASSERT_NE(frameNodeNull, nullptr);
1338     dragDropManager->AddDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1339     frameNodeNull.Reset();
1340     auto frameNodeGeoNullId = ElementRegister::GetInstance()->MakeUniqueId();
1341     auto frameNodeGeoNull =
1342         AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeGeoNullId, AceType::MakeRefPtr<Pattern>());
1343     ASSERT_NE(frameNodeGeoNull, nullptr);
1344     frameNodeGeoNull->SetGeometryNode(nullptr);
1345     dragDropManager->AddDragFrameNode(frameNodeGeoNull->GetId(), frameNodeGeoNull);
1346     auto eventHub = frameNode->GetEventHub<EventHub>();
1347     ASSERT_NE(eventHub, nullptr);
1348     std::string onDropInfo;
__anon3899d4220902(const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) 1349     auto onDrop = [&onDropInfo](const RefPtr<OHOS::Ace::DragEvent>& dragEvent, const std::string& info) {
1350         dragEvent->dragRet_ = DragRet::DISABLE_DROP;
1351         dragEvent->dragBehavior_ = DragBehavior::MOVE;
1352         onDropInfo = EXTRA_INFO;
1353     };
1354     eventHub->SetOnDrop(std::move(onDrop));
1355     eventHub->SetOnDragMove(std::move(onDrop));
1356     DragPointerEvent point;
1357     TouchEvent event;
1358     event.x = 1.0f;
1359     event.y = 2.0f;
1360     dragDropManager->velocityTracker_.UpdateTouchPoint(event, false);
1361     auto targetFrameNode = dragDropManager->FindDragFrameNodeByPosition(GLOBAL_X, GLOBAL_Y);
1362     auto pipeline = NG::PipelineContext::GetCurrentContext();
1363     auto manager = pipeline->GetOverlayManager();
1364     DragEventType type = DragEventType::MOVE;
1365     frameNode->tag_ = V2::UI_EXTENSION_COMPONENT_ETS_TAG;
1366     dragDropManager->info_.imageNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1367     dragDropManager->FireOnDragEvent(frameNode, point, type, EXTRA_INFO);
1368     EXPECT_NE(frameNode, nullptr);
1369 }
1370 /**
1371  * @tc.name: DragDropManagerTestNgCoverage053
1372  * @tc.desc: Test UpdateDragAllowDrop
1373  * @tc.type: FUNC
1374  * @tc.author:
1375  */
1376 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage053, TestSize.Level1)
1377 {
1378     /**
1379      * @tc.steps: step1. create DragDropManager.
1380      * @tc.expected: dragDropManager is not null.
1381      */
1382     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1383     ASSERT_NE(dragDropManager, nullptr);
1384 
1385     /**
1386      * @tc.steps: step2. construct frameNode and update the properties.
1387      * @tc.expected: frameNode is not null.
1388      */
1389     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1390     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1391     ASSERT_NE(frameNode, nullptr);
1392     std::set<std::string> allowDrop = { NODE_TAG };
1393     frameNode->SetAllowDrop(allowDrop);
1394 
1395     /**
1396      * @tc.steps: step2. construct frameNode and update the properties.
1397      * @tc.expected: frameNode is not null.
1398      */
1399     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1400     auto childNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
1401     ASSERT_NE(childNode, nullptr);
1402     childNode->SetAllowDrop(allowDrop);
1403 
1404     /**
1405      * @tc.steps: step3. call UpdateDragAllowDrop with frameNode and copy.
1406      * @tc.expected: dragDropManager->summaryMap_.empty() return a true value.
1407      */
1408     dragDropManager->summaryMap_.clear();
1409     PointF point(100.0, 100.0);
1410     dragDropManager->OnDragStart({ GLOBAL_X, GLOBAL_Y }, childNode);
1411     dragDropManager->summaryMap_.insert(make_pair(NODE_TAG, frameNodeNullId));
1412     dragDropManager->UpdateDragAllowDrop(frameNode, DragBehavior(2), -1);
1413     EXPECT_FALSE(dragDropManager->summaryMap_.empty());
1414 }
1415 
1416 /**
1417  * @tc.name: DragDropManagerTestNgCoverage054
1418  * @tc.desc: Test OnItemDragMove
1419  * @tc.type: FUNC
1420  * @tc.author:
1421  */
1422 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage054, TestSize.Level1)
1423 {
1424     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1425     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1426     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1427     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1428     frameNodeNull->SetActive(true);
1429     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
__anon3899d4220a02(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 1430     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
1431     eventHub->SetOnDrop(std::move(onDragDrop));
1432     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1433     auto childNodeNull =
1434         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
1435     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1436     childNodeNull->SetActive(true);
1437     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
1438     geometryNode->SetFrameSize(FRAME_SIZE);
1439     frameNodeNull->SetGeometryNode(geometryNode);
1440     childNodeNull->SetGeometryNode(geometryNode);
1441     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1442     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1443     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
1444     ASSERT_NE(pipelineTmp, nullptr);
1445     auto parentNodeTmp = pipelineTmp->GetRootElement();
1446     ASSERT_NE(parentNodeTmp, nullptr);
1447     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
1448     parentFrameNodeTmp->SetGeometryNode(geometryNode);
1449     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1450     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
1451     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
1452     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
1453     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
1454     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1455     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
1456     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
1457     PointF point(100.0, 100.0);
1458     auto pipeline = NG::PipelineContext::GetCurrentContext();
1459     auto manager = pipeline->GetOverlayManager();
1460     auto parentNode = pipeline->GetRootElement();
1461     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
1462     auto children = parentFrameNode->GetFrameChildren();
1463     auto result = true;
1464     dragDropManager->OnItemDragMove(100.0, 100.0, 1, DragType::GRID);
1465     auto framenode4 = dragDropManager->FindDragFrameNodeByPosition(100.0, 100.0);
1466     dragDropManager->OnItemDragStart(100.0, 100.0, framenode4);
1467     dragDropManager->OnItemDragMove(100.0, 100.0, 1, DragType::GRID);
1468     auto frameNode5 = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1469     dragDropManager->OnItemDragStart(100.0, 100.0, frameNode5);
1470     dragDropManager->OnItemDragMove(100.0, 100.0, 1, DragType::GRID);
1471     EXPECT_TRUE(result);
1472 }
1473 
1474 /**
1475  * @tc.name: DragDropManagerTestNgCoverage055
1476  * @tc.desc: Test OnItemDragEnd
1477  * @tc.type: FUNC
1478  * @tc.author:
1479  */
1480 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage055, TestSize.Level1)
1481 {
1482     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1483     auto frameNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1484     auto frameNodeNull = AceType::MakeRefPtr<FrameNode>("parent", frameNodeNullId, AceType::MakeRefPtr<Pattern>());
1485     frameNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1486     frameNodeNull->SetActive(true);
1487     auto eventHub = frameNodeNull->GetEventHub<EventHub>();
1488     CHECK_NULL_VOID(eventHub);
__anon3899d4220b02(const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) 1489     auto onDragDrop = [](const RefPtr<OHOS::Ace::DragEvent>& event, const std::string& value) {};
1490     eventHub->SetOnDrop(std::move(onDragDrop));
1491     auto childNodeNullId = ElementRegister::GetInstance()->MakeUniqueId();
1492     auto childNodeNull =
1493         AceType::MakeRefPtr<FrameNode>(V2::EMBEDDED_COMPONENT_ETS_TAG, childNodeNullId, AceType::MakeRefPtr<Pattern>());
1494     childNodeNull->GetLayoutProperty()->UpdateVisibility(VisibleType::VISIBLE);
1495     childNodeNull->SetActive(true);
1496     auto geometryNode = AceType::MakeRefPtr<GeometryNode>();
1497     geometryNode->SetFrameSize(FRAME_SIZE);
1498     frameNodeNull->SetGeometryNode(geometryNode);
1499     childNodeNull->SetGeometryNode(geometryNode);
1500     frameNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1501     childNodeNull->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1502     auto pipelineTmp = NG::PipelineContext::GetCurrentContext();
1503     ASSERT_NE(pipelineTmp, nullptr);
1504     auto parentNodeTmp = pipelineTmp->GetRootElement();
1505     auto parentFrameNodeTmp = AceType::DynamicCast<FrameNode>(parentNodeTmp);
1506     parentFrameNodeTmp->SetGeometryNode(geometryNode);
1507     parentFrameNodeTmp->GetRenderContext()->UpdatePaintRect({ 0.0, 0.0, 200.0, 200.0 });
1508     parentFrameNodeTmp->frameChildren_.insert(WeakPtr<NG::FrameNode>(frameNodeNull));
1509     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(childNodeNull));
1510     frameNodeNull->frameChildren_.insert(WeakPtr<NG::FrameNode>(nullptr));
1511     dragDropManager->AddGridDragFrameNode(parentFrameNodeTmp->GetId(), parentFrameNodeTmp);
1512     dragDropManager->AddGridDragFrameNode(frameNodeNull->GetId(), frameNodeNull);
1513     dragDropManager->AddGridDragFrameNode(childNodeNull->GetId(), childNodeNull);
1514     std::map<int32_t, WeakPtr<FrameNode>> frameNodes = dragDropManager->gridDragFrameNodes_;
1515     PointF point(100.0, 100.0);
1516     auto pipeline = NG::PipelineContext::GetCurrentContext();
1517     auto manager = pipeline->GetOverlayManager();
1518     auto parentNode = pipeline->GetRootElement();
1519     auto parentFrameNode = AceType::DynamicCast<FrameNode>(parentNode);
1520     auto children = parentFrameNode->GetFrameChildren();
1521     auto result = true;
1522     dragDropManager->OnItemDragEnd(100.0, 100.0, 1, DragType::GRID);
1523     auto framenode4 = dragDropManager->FindDragFrameNodeByPosition(100.0, 100.0);
1524     dragDropManager->OnItemDragStart(100.0, 100.0, framenode4);
1525     dragDropManager->OnItemDragEnd(100.0, 100.0, 1, DragType::GRID);
1526     auto frameNode5 = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1527     dragDropManager->OnItemDragStart(100.0, 100.0, frameNode5);
1528     dragDropManager->OnItemDragEnd(100.0, 100.0, 1, DragType::GRID);
1529     EXPECT_TRUE(result);
1530 }
1531 
1532 /**
1533  * @tc.name: DragDropManagerTestNgCoverage056
1534  * @tc.desc: Test RequestDragSummaryInfoAndPrivilege
1535  * @tc.type: FUNC
1536  * @tc.author:
1537  */
1538 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage056, TestSize.Level1)
1539 {
1540     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1541     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1542     ASSERT_NE(frameNode, nullptr);
1543     EXPECT_CALL(
1544         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), AddPrivilege())
1545         .WillRepeatedly(testing::Return(1));
1546     EXPECT_CALL(
1547         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1548         .WillRepeatedly(testing::Return(1));
1549     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1550 
1551     SystemProperties::debugEnabled_ = true;
1552     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1553 
1554     EXPECT_CALL(
1555         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), AddPrivilege())
1556         .WillRepeatedly(testing::Return(0));
1557     EXPECT_CALL(
1558         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1559         .WillRepeatedly(testing::Return(0));
1560     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1561 
1562     SystemProperties::debugEnabled_ = false;
1563     dragDropManager->RequestDragSummaryInfoAndPrivilege();
1564     EXPECT_NE(frameNode, nullptr);
1565 }
1566 
1567 /**
1568  * @tc.name: DragDropManagerTestNgCoverage057
1569  * @tc.desc: Test RequireSummary
1570  * @tc.type: FUNC
1571  * @tc.author:
1572  */
1573 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage057, TestSize.Level1)
1574 {
1575     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1576     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1577     ASSERT_NE(frameNode, nullptr);
1578     EXPECT_CALL(
1579         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetDragSummary(_))
1580         .WillRepeatedly(testing::Return(1));
1581     EXPECT_CALL(
1582         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetDragExtraInfo(_))
1583         .WillRepeatedly(testing::Return(1));
1584     dragDropManager->RequireSummary();
1585 
1586     EXPECT_CALL(
1587         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetDragSummary(_))
1588         .WillRepeatedly(testing::Return(0));
1589     EXPECT_CALL(
1590         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetDragExtraInfo(_))
1591         .WillRepeatedly(testing::Return(0));
1592     dragDropManager->RequireSummary();
1593     EXPECT_NE(frameNode, nullptr);
1594 }
1595 
1596 /**
1597  * @tc.name: DragDropManagerTestNgCoverage058
1598  * @tc.desc: Test GetDragWindowRect
1599  * @tc.type: FUNC
1600  * @tc.author:
1601  */
1602 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage058, TestSize.Level1)
1603 {
1604     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1605     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1606     ASSERT_NE(frameNode, nullptr);
1607     Point point(0.0, 0.0);
1608     EXPECT_CALL(
1609         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1610         .WillRepeatedly(testing::Return(1));
1611     dragDropManager->GetDragWindowRect(point);
1612 
1613     EXPECT_CALL(
1614         *(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())), GetShadowOffset(_))
1615         .WillRepeatedly(testing::Return(0));
1616     dragDropManager->previewRect_ = { 1, 1, 1, 1 };
1617     dragDropManager->GetDragWindowRect(point);
1618     EXPECT_NE(frameNode, nullptr);
1619 }
1620 
1621 /**
1622  * @tc.name: DragDropManagerTestNgCoverage059
1623  * @tc.desc: Test FireOnEditableTextComponent
1624  * @tc.type: FUNC
1625  * @tc.author:
1626  */
1627 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage059, TestSize.Level1)
1628 {
1629     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1630     auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXTINPUT_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>());
1631     ASSERT_NE(frameNode, nullptr);
1632     EXPECT_CALL(*(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())),
1633         EnterTextEditorArea(_))
1634         .WillRepeatedly(testing::Return(1));
1635     dragDropManager->FireOnEditableTextComponent(frameNode, DragEventType::ENTER);
1636     EXPECT_CALL(*(AceType::DynamicCast<MockInteractionInterface>(MockInteractionInterface::GetInstance())),
1637         EnterTextEditorArea(_))
1638         .WillRepeatedly(testing::Return(0));
1639     dragDropManager->FireOnEditableTextComponent(frameNode, DragEventType::ENTER);
1640     EXPECT_NE(frameNode, nullptr);
1641 }
1642 
1643 /**
1644  * @tc.name: DragDropManagerTestNgCoverage060
1645  * @tc.desc: Test UpdateDragMovePosition
1646  * @tc.type: FUNC
1647  * @tc.author:
1648  */
1649 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage060, TestSize.Level1)
1650 {
1651     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1652     auto frameNode = AceType::MakeRefPtr<FrameNode>(V2::TEXTINPUT_ETS_TAG, 1, AceType::MakeRefPtr<Pattern>());
1653     ASSERT_NE(frameNode, nullptr);
1654     OffsetF offset = { 1.0f, 1.0f };
1655     dragDropManager->UpdateDragMovePosition(offset, true);
1656     EXPECT_NE(frameNode, nullptr);
1657 }
1658 
1659 /**
1660  * @tc.name: DragDropManagerTestNgCoverage061
1661  * @tc.desc: Test FireOnDragLeave
1662  * @tc.type: FUNC
1663  * @tc.author:
1664  */
1665 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage061, TestSize.Level1)
1666 {
1667     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1668     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1669     ASSERT_NE(frameNode, nullptr);
1670     DragPointerEvent point;
1671     point.x = 1;
1672     point.y = 1;
1673     auto mockRenderContext = AceType::MakeRefPtr<MockRenderContext>();
1674     mockRenderContext->rect_ = RectF(0, 0, 10, 10);
1675     frameNode->renderContext_ = mockRenderContext;
1676     dragDropManager->FireOnDragLeave(frameNode, point, EXTRA_INFO);
1677     dragDropManager->eventStrictReportingEnabled_ = true;
1678     dragDropManager->preTargetFrameNode_ = frameNode;
1679     dragDropManager->FireOnDragLeave(frameNode, point, EXTRA_INFO);
1680     dragDropManager->eventStrictReportingEnabled_ = false;
1681     EXPECT_NE(frameNode, nullptr);
1682 }
1683 
1684 /**
1685  * @tc.name: DragDropManagerTestNgCoverage062
1686  * @tc.desc: Test OnDragMoveOut
1687  * @tc.type: FUNC
1688  * @tc.author:
1689  */
1690 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage062, TestSize.Level1)
1691 {
1692     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1693     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1694     ASSERT_NE(frameNode, nullptr);
1695     DragPointerEvent point;
1696     point.x = 1;
1697     point.y = 1;
1698     auto container = MockContainer::Current();
1699     ASSERT_NE(container, nullptr);
1700     container->isScenceBoardWindow_ = true;
1701     dragDropManager->OnDragMoveOut(point);
1702     dragDropManager->isDragged_ = true;
1703     dragDropManager->OnDragMoveOut(point);
1704     dragDropManager->isDragged_ = false;
1705     dragDropManager->isWindowConsumed_ = true;
1706     dragDropManager->OnDragMoveOut(point);
1707     dragDropManager->isWindowConsumed_ = true;
1708     dragDropManager->isDragged_ = true;
1709     dragDropManager->OnDragMoveOut(point);
1710     dragDropManager->isDragged_ = false;
1711     dragDropManager->isWindowConsumed_ = false;
1712     container->isScenceBoardWindow_ = false;
1713     EXPECT_NE(frameNode, nullptr);
1714 }
1715 
1716 /**
1717  * @tc.name: DragDropManagerTestNgCoverage063
1718  * @tc.desc: Test OnDragMove
1719  * @tc.type: FUNC
1720  * @tc.author:
1721  */
1722 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage063, TestSize.Level1)
1723 {
1724     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1725     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1726     ASSERT_NE(frameNode, nullptr);
1727     DragPointerEvent point;
1728     point.x = 1;
1729     point.y = 1;
1730     auto container = MockContainer::Current();
1731     ASSERT_NE(container, nullptr);
1732     container->isScenceBoardWindow_ = true;
1733     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1734     dragDropManager->isDragged_ = true;
1735     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1736     dragDropManager->isDragged_ = false;
1737     dragDropManager->isWindowConsumed_ = true;
1738     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1739     dragDropManager->isWindowConsumed_ = true;
1740     dragDropManager->isDragged_ = true;
1741     dragDropManager->OnDragMove(point, EXTRA_INFO, frameNode);
1742     dragDropManager->isDragged_ = false;
1743     dragDropManager->isWindowConsumed_ = false;
1744     container->isScenceBoardWindow_ = false;
1745     EXPECT_NE(frameNode, nullptr);
1746 }
1747 
1748 /**
1749  * @tc.name: DragDropManagerTestNgCoverage064
1750  * @tc.desc: Test OnDragMoveOut
1751  * @tc.type: FUNC
1752  * @tc.author:
1753  */
1754 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage064, TestSize.Level1)
1755 {
1756     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1757     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1758     ASSERT_NE(frameNode, nullptr);
1759     DragPointerEvent point;
1760     point.x = 1;
1761     point.y = 1;
1762     auto container = MockContainer::Current();
1763     ASSERT_NE(container, nullptr);
1764     container->isScenceBoardWindow_ = true;
1765     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1766     dragDropManager->isDragged_ = true;
1767     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1768     dragDropManager->isDragged_ = false;
1769     dragDropManager->isWindowConsumed_ = true;
1770     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1771     dragDropManager->isWindowConsumed_ = true;
1772     dragDropManager->isDragged_ = true;
1773     dragDropManager->OnDragEnd(point, EXTRA_INFO, frameNode);
1774     dragDropManager->isDragged_ = false;
1775     dragDropManager->isWindowConsumed_ = false;
1776     container->isScenceBoardWindow_ = false;
1777     EXPECT_NE(frameNode, nullptr);
1778 }
1779 
1780 /**
1781  * @tc.name: DragDropManagerTestNgCoverage065
1782  * @tc.desc: Test OnDragMoveOut
1783  * @tc.type: FUNC
1784  * @tc.author:
1785  */
1786 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage065, TestSize.Level1)
1787 {
1788     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1789     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1790     DragPointerEvent point;
1791     bool isExecuted = false;
1792     point.x = 1;
1793     point.y = 1;
1794     dragDropManager->ExecuteStopDrag(dragEvent, DragRet::DRAG_CANCEL, false, 0, DragBehavior::UNKNOWN, point);
1795     EXPECT_FALSE(isExecuted);
1796     dragDropManager->ExecuteStopDrag(dragEvent, DragRet::DRAG_CANCEL, true, 0, DragBehavior::UNKNOWN, point);
1797     EXPECT_FALSE(isExecuted);
__anon3899d4220c02() 1798     auto dropAnimationFun = [&isExecuted]() { isExecuted = true; };
1799     dragEvent->SetDropAnimation(std::move(dropAnimationFun));
1800     dragDropManager->ExecuteStopDrag(dragEvent, DragRet::DRAG_CANCEL, true, 0, DragBehavior::UNKNOWN, point);
1801     EXPECT_TRUE(isExecuted);
1802 }
1803 
1804 /**
1805  * @tc.name: DragDropManagerTestNgCoverage066
1806  * @tc.desc: Test HandleOnDragEnd
1807  * @tc.type: FUNC
1808  * @tc.author:
1809  */
1810 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage066, TestSize.Level1)
1811 {
1812     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1813     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1814     ASSERT_NE(frameNode, nullptr);
1815     DragPointerEvent point;
1816     point.x = 1;
1817     point.y = 1;
1818     auto container = MockContainer::Current();
1819     ASSERT_NE(container, nullptr);
1820     container->isScenceBoardWindow_ = true;
1821     auto eventHub = frameNode->GetEventHub<EventHub>();
1822     CHECK_NULL_VOID(eventHub);
1823     eventHub->SetDisableDataPrefetch(true);
1824     dragDropManager->HandleOnDragEnd(point, EXTRA_INFO, frameNode);
1825     EXPECT_NE(DragDropBehaviorReporter::GetInstance().stopResult_, DragStopResult::GET_UDKEY_FAIL);
1826     eventHub->SetDisableDataPrefetch(false);
1827     dragDropManager->HandleOnDragEnd(point, EXTRA_INFO, frameNode);
1828     EXPECT_EQ(DragDropBehaviorReporter::GetInstance().stopResult_, DragStopResult::GET_UDKEY_FAIL);
1829 }
1830 
1831 /**
1832  * @tc.name: DragDropManagerTestNgCoverage067
1833  * @tc.desc: Test OnDragDrop IsDragEndPending
1834  * @tc.type: FUNC
1835  * @tc.author:
1836  */
1837 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage067, TestSize.Level1)
1838 {
1839     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1840     ASSERT_NE(dragDropManager, nullptr);
1841     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1842     ASSERT_NE(dragEvent, nullptr);
1843     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1844     ASSERT_NE(frameNode, nullptr);
1845     auto pipeline = PipelineContext::GetCurrentContextSafelyWithCheck();
1846     ASSERT_NE(pipeline, nullptr);
1847     pipeline->taskExecutor_ = AceType::MakeRefPtr<MockTaskExecutor>();
1848     ASSERT_NE(pipeline->taskExecutor_, nullptr);
1849     frameNode->context_ = AceType::RawPtr(pipeline);
1850     DragPointerEvent pointerEvent;
1851     dragEvent->SetResult(DragRet::DRAG_SUCCESS);
1852     dragDropManager->OnDragDrop(dragEvent, frameNode, pointerEvent);
1853     EXPECT_EQ(dragEvent->GetResult(), DragRet::DRAG_SUCCESS);
1854 
1855     dragEvent->SetResult(DragRet::DRAG_SUCCESS);
1856     dragEvent->SetIsDragEndPending(true);
1857     dragEvent->SetRequestIdentify(1);
1858     dragDropManager->OnDragDrop(dragEvent, frameNode, pointerEvent);
1859     EXPECT_EQ(dragEvent->GetResult(), DragRet::DRAG_FAIL);
1860 }
1861 
1862 /**
1863  * @tc.name: DragDropManagerTestNgCoverage068
1864  * @tc.desc: Test HandleStopDrag
1865  * @tc.type: FUNC
1866  * @tc.author:
1867  */
1868 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage068, TestSize.Level1)
1869 {
1870     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1871     ASSERT_NE(dragDropManager, nullptr);
1872     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1873     ASSERT_NE(dragEvent, nullptr);
1874     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1875     ASSERT_NE(frameNode, nullptr);
1876     auto pipeline = PipelineContext::GetCurrentContextSafelyWithCheck();
1877     ASSERT_NE(pipeline, nullptr);
1878     frameNode->context_ = AceType::RawPtr(pipeline);
1879     DragPointerEvent pointerEvent;
1880     dragDropManager->dragCursorStyleCore_ = DragCursorStyleCore::MOVE;
1881     dragDropManager->HandleStopDrag(frameNode, pointerEvent, dragEvent, "");
1882     EXPECT_EQ(dragDropManager->dragCursorStyleCore_, DragCursorStyleCore::DEFAULT);
1883 }
1884 
1885 /**
1886  * @tc.name: DragDropManagerTestNgCoverage069
1887  * @tc.desc: Test GetStopDragCallBack
1888  * @tc.type: FUNC
1889  * @tc.author:
1890  */
1891 HWTEST_F(DragDropManagerTestNgCoverage, DragDropManagerTestNgCoverage069, TestSize.Level1)
1892 {
1893     auto dragDropManager = AceType::MakeRefPtr<DragDropManager>();
1894     ASSERT_NE(dragDropManager, nullptr);
1895     RefPtr<OHOS::Ace::DragEvent> dragEvent = AceType::MakeRefPtr<OHOS::Ace::DragEvent>();
1896     ASSERT_NE(dragEvent, nullptr);
1897     auto frameNode = AceType::MakeRefPtr<FrameNode>(NODE_TAG, -1, AceType::MakeRefPtr<Pattern>());
1898     ASSERT_NE(frameNode, nullptr);
1899     DragPointerEvent pointerEvent;
1900     auto callback = dragDropManager->GetStopDragCallBack(frameNode, pointerEvent, dragEvent, "");
1901     EXPECT_NE(callback, nullptr);
1902 }
1903 } // namespace OHOS::Ace::NG