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