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