• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gmock/gmock.h>
17 
18 #include "gtest/gtest.h"
19 #define private public
20 #include "test/mock/core/pipeline/mock_pipeline_context.h"
21 
22 #include "base/web/webview/ohos_nweb/include/nweb_handler.h"
23 #include "core/components/web/resource/web_delegate.h"
24 #include "core/components_ng/base/view_stack_processor.h"
25 #include "core/components_ng/pattern/web/web_pattern.h"
26 #include "core/components_v2/inspector/inspector_constants.h"
27 #include "core/pipeline_ng/pipeline_context.h"
28 #include "frameworks/base/utils/system_properties.h"
29 
30 using namespace testing;
31 using namespace testing::ext;
32 
33 namespace OHOS::NWeb {
34 class NWebDragDataMock : public NWebDragData {
35 public:
GetLinkURL()36     std::string GetLinkURL() override
37     {
38         return "http://example.com";
39     }
40 
GetFragmentText()41     std::string GetFragmentText() override
42     {
43         return "This is some text.";
44     }
45 
GetFragmentHtml()46     std::string GetFragmentHtml() override
47     {
48         return "<html><body>This is some HTML.</body></html>";
49     }
50 
GetPixelMapSetting(const void ** data,size_t & len,int & width,int & height)51     bool GetPixelMapSetting(const void** data, size_t& len, int& width, int& height) override
52     {
53         *data = nullptr;
54         len = 0;
55         width = 0;
56         height = 0;
57         return false;
58     }
59 
SetFragmentHtml(const std::string & html)60     bool SetFragmentHtml(const std::string& html) override
61     {
62         // Do nothing or implement actual behavior
63         return true;
64     }
65 
SetPixelMapSetting(const void * data,size_t len,int width,int height)66     bool SetPixelMapSetting(const void* data, size_t len, int width, int height) override
67     {
68         // Do nothing or implement actual behavior
69         return true;
70     }
71 
SetLinkURL(const std::string & url)72     bool SetLinkURL(const std::string& url) override
73     {
74         // Do nothing or implement actual behavior
75         return true;
76     }
77 
SetFragmentText(const std::string & text)78     bool SetFragmentText(const std::string& text) override
79     {
80         // Do nothing or implement actual behavior
81         return true;
82     }
83 
GetLinkTitle()84     std::string GetLinkTitle() override
85     {
86         return "Example Title";
87     }
88 
SetLinkTitle(const std::string & title)89     bool SetLinkTitle(const std::string& title) override
90     {
91         // Do nothing or implement actual behavior
92         return true;
93     }
94 
GetDragStartPosition(int & x,int & y)95     void GetDragStartPosition(int& x, int& y) override
96     {
97         x = 0;
98         y = 0;
99     }
100 
IsSingleImageContent()101     bool IsSingleImageContent() override
102     {
103         return false;
104     }
105 
SetFileUri(const std::string & uri)106     bool SetFileUri(const std::string& uri) override
107     {
108         // Do nothing or implement actual behavior
109         return true;
110     }
111 
GetImageFileName()112     std::string GetImageFileName() override
113     {
114         return "image.png";
115     }
116 
ClearImageFileNames()117     void ClearImageFileNames() override
118     {
119         // Do nothing or implement actual behavior
120     }
121 };
122 
123 class CustomNWebTouchHandleState : public OHOS::NWeb::NWebTouchHandleState {
124 public:
SetAlpha(float alpha)125     void SetAlpha(float alpha)
126     {
127         alpha_ = alpha;
128     }
129 
SetY(int32_t y)130     void SetY(int32_t y)
131     {
132         y_ = y;
133     }
134 
SetX(int32_t x)135     void SetX(int32_t x)
136     {
137         x_ = x;
138     }
139 
SetEdgeHeight(float edgeHeight)140     void SetEdgeHeight(float edgeHeight)
141     {
142         edgeHeight_ = edgeHeight;
143     }
144 
IsUnEnable()145     bool IsUnEnable()
146     {
147         return false;
148     }
149 
GetTouchHandleId()150     int32_t GetTouchHandleId() override
151     {
152         return 0;
153     }
154 
GetX()155     int32_t GetX() override
156     {
157         return x_;
158     }
159 
GetY()160     int32_t GetY() override
161     {
162         return y_;
163     }
164 
GetViewPortX()165     int32_t GetViewPortX() override
166     {
167         return 0;
168     }
169 
GetViewPortY()170     int32_t GetViewPortY() override
171     {
172         return 0;
173     }
174 
GetTouchHandleType()175     TouchHandleType GetTouchHandleType() override
176     {
177         return INSERT_HANDLE;
178     }
179 
IsEnable()180     bool IsEnable() override
181     {
182         return true;
183     }
184 
GetAlpha()185     float GetAlpha() override
186     {
187         return alpha_;
188     }
189 
GetEdgeHeight()190     float GetEdgeHeight() override
191     {
192         return edgeHeight_;
193     }
194 
195 private:
196     float alpha_ = 0.0;
197     int32_t y_ = 0;
198     int32_t x_ = 0;
199     float edgeHeight_ = 0.0;
200 };
201 } // namespace OHOS::NWeb
202 
203 namespace OHOS::Ace::NG {
204 class WebPatternFocusTestNg : public testing::Test {
205 public:
206     static void SetUpTestCase();
207     static void TearDownTestCase();
208     void SetUp() override;
209     void TearDown() override;
210 };
211 
SetUpTestCase()212 void WebPatternFocusTestNg::SetUpTestCase() {}
TearDownTestCase()213 void WebPatternFocusTestNg::TearDownTestCase() {}
SetUp()214 void WebPatternFocusTestNg::SetUp() {}
TearDown()215 void WebPatternFocusTestNg::TearDown() {}
216 
217 /**
218  * @tc.name: OnTextSelected_001
219  * @tc.desc: OnTextSelected.
220  * @tc.type: FUNC
221  */
222 HWTEST_F(WebPatternFocusTestNg, OnTextSelected_001, TestSize.Level1)
223 {
224 #ifdef OHOS_STANDARD_SYSTEM
225     auto* stack = ViewStackProcessor::GetInstance();
226     ASSERT_NE(stack, nullptr);
227     auto nodeId = stack->ClaimNodeId();
228     auto frameNode =
__anond9513bf50102() 229         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
230     stack->Push(frameNode);
231     auto webPattern = frameNode->GetPattern<WebPattern>();
232     ASSERT_NE(webPattern, nullptr);
233     webPattern->OnModifyDone();
234     ASSERT_NE(webPattern->delegate_, nullptr);
235     webPattern->overlayCreating_ = false;
236     webPattern->OnTextSelected();
237     ASSERT_NE(webPattern->delegate_, nullptr);
238     EXPECT_TRUE(webPattern->overlayCreating_);
239 #endif
240 }
241 
242 /**
243  * @tc.name: DestroyAnalyzerOverlay
244  * @tc.desc: DestroyAnalyzerOverlay.
245  * @tc.type: FUNC
246  */
247 HWTEST_F(WebPatternFocusTestNg, DestroyAnalyzerOverlay, TestSize.Level1)
248 {
249 #ifdef OHOS_STANDARD_SYSTEM
250     auto* stack = ViewStackProcessor::GetInstance();
251     ASSERT_NE(stack, nullptr);
252     auto nodeId = stack->ClaimNodeId();
253     auto frameNode =
__anond9513bf50202() 254         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
255     stack->Push(frameNode);
256     auto webPattern = frameNode->GetPattern<WebPattern>();
257     ASSERT_NE(webPattern, nullptr);
258     webPattern->OnModifyDone();
259     ASSERT_NE(webPattern->delegate_, nullptr);
260     webPattern->DestroyAnalyzerOverlay();
261     ASSERT_EQ(webPattern->imageAnalyzerManager_, nullptr);
262 #endif
263 }
264 
265 /**
266  * @tc.name: OnAccessibilityHoverEvent
267  * @tc.desc: OnAccessibilityHoverEvent.
268  * @tc.type: FUNC
269  */
270 HWTEST_F(WebPatternFocusTestNg, OnAccessibilityHoverEvent, TestSize.Level1)
271 {
272 #ifdef OHOS_STANDARD_SYSTEM
273     auto* stack = ViewStackProcessor::GetInstance();
274     ASSERT_NE(stack, nullptr);
275     auto nodeId = stack->ClaimNodeId();
276     auto frameNode =
__anond9513bf50302() 277         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
278     stack->Push(frameNode);
279     auto webPattern = frameNode->GetPattern<WebPattern>();
280     ASSERT_NE(webPattern, nullptr);
281     webPattern->OnModifyDone();
282     ASSERT_NE(webPattern->delegate_, nullptr);
283 
284     PointF point(20.0f, 100.0f);
285     bool web = webPattern->OnAccessibilityHoverEvent(point);
286     ASSERT_NE(webPattern->delegate_, nullptr);
287     ASSERT_FALSE(web);
288 #endif
289 }
290 
291 /**
292  * @tc.name: RegisterTextBlurCallback
293  * @tc.desc: RegisterTextBlurCallback.
294  * @tc.type: FUNC
295  */
296 HWTEST_F(WebPatternFocusTestNg, RegisterTextBlurCallback, TestSize.Level1)
297 {
298 #ifdef OHOS_STANDARD_SYSTEM
299     auto* stack = ViewStackProcessor::GetInstance();
300     ASSERT_NE(stack, nullptr);
301     auto nodeId = stack->ClaimNodeId();
302     auto frameNode =
__anond9513bf50402() 303         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
304     stack->Push(frameNode);
305     auto webPattern = frameNode->GetPattern<WebPattern>();
306     ASSERT_NE(webPattern, nullptr);
307     webPattern->OnModifyDone();
308     ASSERT_NE(webPattern->delegate_, nullptr);
309 
__anond9513bf50502(int64_t id, const std::string& data) 310     WebPattern::TextBlurCallback callback = [](int64_t id, const std::string& data) {};
311     webPattern->RegisterTextBlurCallback(std::move(callback));
312     EXPECT_TRUE(webPattern->textBlurAccessibilityEnable_);
313 #endif
314 }
315 
316 /**
317  * @tc.name: UnRegisterTextBlurCallback
318  * @tc.desc: UnRegisterTextBlurCallback.
319  * @tc.type: FUNC
320  */
321 HWTEST_F(WebPatternFocusTestNg, UnRegisterTextBlurCallback, TestSize.Level1)
322 {
323 #ifdef OHOS_STANDARD_SYSTEM
324     auto* stack = ViewStackProcessor::GetInstance();
325     ASSERT_NE(stack, nullptr);
326     auto nodeId = stack->ClaimNodeId();
327     auto frameNode =
__anond9513bf50602() 328         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
329     stack->Push(frameNode);
330     auto webPattern = frameNode->GetPattern<WebPattern>();
331     ASSERT_NE(webPattern, nullptr);
332     webPattern->OnModifyDone();
333     ASSERT_NE(webPattern->delegate_, nullptr);
334     webPattern->UnRegisterTextBlurCallback();
335     EXPECT_FALSE(webPattern->textBlurAccessibilityEnable_);
336 #endif
337 }
338 
339 /**
340  * @tc.name: InitializeAccessibility
341  * @tc.desc: InitializeAccessibility.
342  * @tc.type: FUNC
343  */
344 HWTEST_F(WebPatternFocusTestNg, InitializeAccessibility, TestSize.Level1)
345 {
346 #ifdef OHOS_STANDARD_SYSTEM
347     auto* stack = ViewStackProcessor::GetInstance();
348     ASSERT_NE(stack, nullptr);
349     auto nodeId = stack->ClaimNodeId();
350     auto frameNode =
__anond9513bf50702() 351         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
352     stack->Push(frameNode);
353     auto webPattern = frameNode->GetPattern<WebPattern>();
354     ASSERT_NE(webPattern, nullptr);
355     webPattern->OnModifyDone();
356     ASSERT_NE(webPattern->delegate_, nullptr);
357 
358     webPattern->InitializeAccessibility();
359     ASSERT_EQ(webPattern->accessibilityChildTreeCallback_[webPattern->instanceId_], nullptr);
360 #endif
361 }
362 
363 /**
364  * @tc.name: UninitializeAccessibility
365  * @tc.desc: UninitializeAccessibility.
366  * @tc.type: FUNC
367  */
368 HWTEST_F(WebPatternFocusTestNg, UninitializeAccessibility, TestSize.Level1)
369 {
370 #ifdef OHOS_STANDARD_SYSTEM
371     auto* stack = ViewStackProcessor::GetInstance();
372     ASSERT_NE(stack, nullptr);
373     auto nodeId = stack->ClaimNodeId();
374     auto frameNode =
__anond9513bf50802() 375         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
376     stack->Push(frameNode);
377     auto webPattern = frameNode->GetPattern<WebPattern>();
378     ASSERT_NE(webPattern, nullptr);
379     webPattern->OnModifyDone();
380     ASSERT_NE(webPattern->delegate_, nullptr);
381 
382     webPattern->UninitializeAccessibility();
383     ASSERT_EQ(webPattern->accessibilityChildTreeCallback_[webPattern->instanceId_], nullptr);
384 #endif
385 }
386 
387 /**
388  * @tc.name: OnSetAccessibilityChildTree
389  * @tc.desc: OnSetAccessibilityChildTree.
390  * @tc.type: FUNC
391  */
392 HWTEST_F(WebPatternFocusTestNg, OnSetAccessibilityChildTree, TestSize.Level1)
393 {
394 #ifdef OHOS_STANDARD_SYSTEM
395     auto* stack = ViewStackProcessor::GetInstance();
396     ASSERT_NE(stack, nullptr);
397     auto nodeId = stack->ClaimNodeId();
398     auto frameNode =
__anond9513bf50902() 399         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
400     stack->Push(frameNode);
401     auto webPattern = frameNode->GetPattern<WebPattern>();
402     ASSERT_NE(webPattern, nullptr);
403     webPattern->OnModifyDone();
404     ASSERT_NE(webPattern->delegate_, nullptr);
405     webPattern->OnSetAccessibilityChildTree(33, 33);
406 #endif
407 }
408 
409 /**
410  * @tc.name: OnAccessibilityChildTreeRegister
411  * @tc.desc: OnAccessibilityChildTreeRegister.
412  * @tc.type: FUNC
413  */
414 HWTEST_F(WebPatternFocusTestNg, OnAccessibilityChildTreeRegister, TestSize.Level1)
415 {
416 #ifdef OHOS_STANDARD_SYSTEM
417     auto* stack = ViewStackProcessor::GetInstance();
418     ASSERT_NE(stack, nullptr);
419     auto nodeId = stack->ClaimNodeId();
420     auto frameNode =
__anond9513bf50a02() 421         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
422     stack->Push(frameNode);
423     auto webPattern = frameNode->GetPattern<WebPattern>();
424     ASSERT_NE(webPattern, nullptr);
425     webPattern->OnModifyDone();
426     ASSERT_NE(webPattern->delegate_, nullptr);
427     ASSERT_FALSE(webPattern->OnAccessibilityChildTreeRegister());
428 #endif
429 }
430 
431 /**
432  * @tc.name: OnAccessibilityChildTreeDeregister
433  * @tc.desc: OnAccessibilityChildTreeDeregister.
434  * @tc.type: FUNC
435  */
436 HWTEST_F(WebPatternFocusTestNg, OnAccessibilityChildTreeDeregister, TestSize.Level1)
437 {
438 #ifdef OHOS_STANDARD_SYSTEM
439     auto* stack = ViewStackProcessor::GetInstance();
440     ASSERT_NE(stack, nullptr);
441     auto nodeId = stack->ClaimNodeId();
442     auto frameNode =
__anond9513bf50b02() 443         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
444     stack->Push(frameNode);
445     auto webPattern = frameNode->GetPattern<WebPattern>();
446     ASSERT_NE(webPattern, nullptr);
447     webPattern->OnModifyDone();
448     ASSERT_NE(webPattern->delegate_, nullptr);
449     ASSERT_FALSE(webPattern->OnAccessibilityChildTreeDeregister());
450 #endif
451 }
452 
453 /**
454  * @tc.name: ClearDragData_001
455  * @tc.desc: ClearDragData.
456  * @tc.type: FUNC
457  */
458 HWTEST_F(WebPatternFocusTestNg, ClearDragData_001, TestSize.Level1)
459 {
460 #ifdef OHOS_STANDARD_SYSTEM
461     auto* stack = ViewStackProcessor::GetInstance();
462     ASSERT_NE(stack, nullptr);
463     auto nodeId = stack->ClaimNodeId();
464     auto frameNode =
__anond9513bf50c02() 465         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
466     stack->Push(frameNode);
467     auto webPattern = frameNode->GetPattern<WebPattern>();
468     ASSERT_NE(webPattern, nullptr);
469     webPattern->OnModifyDone();
470     ASSERT_NE(webPattern->delegate_, nullptr);
471     webPattern->delegate_->dragData_ = std::make_shared<OHOS::NWeb::NWebDragDataMock>();
472     webPattern->ClearDragData();
473 #endif
474 }
475 
476 /**
477  * @tc.name: ClearDragData_002
478  * @tc.desc: ClearDragData.
479  * @tc.type: FUNC
480  */
481 HWTEST_F(WebPatternFocusTestNg, ClearDragData_002, TestSize.Level1)
482 {
483 #ifdef OHOS_STANDARD_SYSTEM
484     auto* stack = ViewStackProcessor::GetInstance();
485     ASSERT_NE(stack, nullptr);
486     auto nodeId = stack->ClaimNodeId();
487     auto frameNode =
__anond9513bf50d02() 488         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
489     stack->Push(frameNode);
490     auto webPattern = frameNode->GetPattern<WebPattern>();
491     ASSERT_NE(webPattern, nullptr);
492     webPattern->OnModifyDone();
493     ASSERT_NE(webPattern->delegate_, nullptr);
494     webPattern->ClearDragData();
495 #endif
496 }
497 
498 /**
499  * @tc.name: ClearDragData_003
500  * @tc.desc: ClearDragData.
501  * @tc.type: FUNC
502  */
503 HWTEST_F(WebPatternFocusTestNg, ClearDragData_003, TestSize.Level1)
504 {
505 #ifdef OHOS_STANDARD_SYSTEM
506     auto* stack = ViewStackProcessor::GetInstance();
507     ASSERT_NE(stack, nullptr);
508     auto nodeId = stack->ClaimNodeId();
509     auto frameNode =
__anond9513bf50e02() 510         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
511     stack->Push(frameNode);
512     auto webPattern = frameNode->GetPattern<WebPattern>();
513     ASSERT_NE(webPattern, nullptr);
514     EXPECT_EQ(webPattern->delegate_, nullptr);
515     webPattern->ClearDragData();
516 #endif
517 }
518 
519 /**
520  * @tc.name: InitFocusEvent_001
521  * @tc.desc: InitFocusEvent.
522  * @tc.type: FUNC
523  */
524 HWTEST_F(WebPatternFocusTestNg, InitFocusEvent_001, TestSize.Level1)
525 {
526 #ifdef OHOS_STANDARD_SYSTEM
527     auto* stack = ViewStackProcessor::GetInstance();
528     ASSERT_NE(stack, nullptr);
529     auto nodeId = stack->ClaimNodeId();
530     auto frameNode =
__anond9513bf50f02() 531         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
532     stack->Push(frameNode);
533     auto webPattern = frameNode->GetPattern<WebPattern>();
534     ASSERT_NE(webPattern, nullptr);
535     webPattern->OnModifyDone();
536     ASSERT_NE(webPattern->delegate_, nullptr);
537     WeakPtr<EventHub> eventHub = nullptr;
538     RefPtr<FocusHub> focusHub = AceType::MakeRefPtr<FocusHub>(eventHub);
539     EXPECT_NE(focusHub, nullptr);
540 #endif
541 }
542 
543 /**
544  * @tc.name: HandleBlurEvent_001
545  * @tc.desc: HandleBlurEvent.
546  * @tc.type: FUNC
547  */
548 HWTEST_F(WebPatternFocusTestNg, HandleBlurEvent_001, TestSize.Level1)
549 {
550 #ifdef OHOS_STANDARD_SYSTEM
551     auto* stack = ViewStackProcessor::GetInstance();
552     ASSERT_NE(stack, nullptr);
553     auto nodeId = stack->ClaimNodeId();
554     auto frameNode =
__anond9513bf51002() 555         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
556     stack->Push(frameNode);
557     auto webPattern = frameNode->GetPattern<WebPattern>();
558     ASSERT_NE(webPattern, nullptr);
559     webPattern->OnModifyDone();
560     ASSERT_NE(webPattern->delegate_, nullptr);
561     webPattern->isReceivedArkDrag_ = true;
562     webPattern->HandleBlurEvent(BlurReason::FOCUS_SWITCH);
563 #endif
564 }
565 
566 /**
567  * @tc.name: HandleBlurEvent_002
568  * @tc.desc: HandleBlurEvent.
569  * @tc.type: FUNC
570  */
571 HWTEST_F(WebPatternFocusTestNg, HandleBlurEvent_002, TestSize.Level1)
572 {
573 #ifdef OHOS_STANDARD_SYSTEM
574     auto* stack = ViewStackProcessor::GetInstance();
575     ASSERT_NE(stack, nullptr);
576     auto nodeId = stack->ClaimNodeId();
577     auto frameNode =
__anond9513bf51102() 578         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
579     stack->Push(frameNode);
580     auto webPattern = frameNode->GetPattern<WebPattern>();
581     ASSERT_NE(webPattern, nullptr);
582     webPattern->OnModifyDone();
583     webPattern->HandleBlurEvent(BlurReason::FOCUS_SWITCH);
584     ASSERT_NE(webPattern->delegate_, nullptr);
585 #endif
586 }
587 
588 /**
589  * @tc.name: HandleKeyEvent_001
590  * @tc.desc: HandleKeyEvent.
591  * @tc.type: FUNC
592  */
593 HWTEST_F(WebPatternFocusTestNg, HandleKeyEvent_001, TestSize.Level1)
594 {
595 #ifdef OHOS_STANDARD_SYSTEM
596     auto* stack = ViewStackProcessor::GetInstance();
597     ASSERT_NE(stack, nullptr);
598     auto nodeId = stack->ClaimNodeId();
599     auto frameNode =
__anond9513bf51202() 600         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
601     stack->Push(frameNode);
602     auto webPattern = frameNode->GetPattern<WebPattern>();
603     ASSERT_NE(webPattern, nullptr);
604     webPattern->OnModifyDone();
605     ASSERT_NE(webPattern->delegate_, nullptr);
606     KeyEvent keyEvent;
607     EXPECT_FALSE(webPattern->HandleKeyEvent(keyEvent));
608 #endif
609 }
610 
611 /**
612  * @tc.name: ClearKeyEventByKeyCode_001
613  * @tc.desc: ClearKeyEventByKeyCode.
614  * @tc.type: FUNC
615  */
616 HWTEST_F(WebPatternFocusTestNg, ClearKeyEventByKeyCode_001, TestSize.Level1)
617 {
618 #ifdef OHOS_STANDARD_SYSTEM
619     auto* stack = ViewStackProcessor::GetInstance();
620     ASSERT_NE(stack, nullptr);
621     auto nodeId = stack->ClaimNodeId();
622     auto frameNode =
__anond9513bf51302() 623         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
624     stack->Push(frameNode);
625     auto webPattern = frameNode->GetPattern<WebPattern>();
626     ASSERT_NE(webPattern, nullptr);
627     webPattern->OnModifyDone();
628     ASSERT_NE(webPattern->delegate_, nullptr);
629     int32_t keyCode = 1;
630     webPattern->ClearKeyEventByKeyCode(keyCode);
631 #endif
632 }
633 
634 /**
635  * @tc.name: ClearKeyEventByKeyCode_002
636  * @tc.desc: ClearKeyEventByKeyCode.
637  * @tc.type: FUNC
638  */
639 HWTEST_F(WebPatternFocusTestNg, ClearKeyEventByKeyCode_002, TestSize.Level1)
640 {
641 #ifdef OHOS_STANDARD_SYSTEM
642     auto* stack = ViewStackProcessor::GetInstance();
643     ASSERT_NE(stack, nullptr);
644     auto nodeId = stack->ClaimNodeId();
645     auto frameNode =
__anond9513bf51402() 646         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
647     stack->Push(frameNode);
648     auto webPattern = frameNode->GetPattern<WebPattern>();
649     ASSERT_NE(webPattern, nullptr);
650     webPattern->OnModifyDone();
651     ASSERT_NE(webPattern->delegate_, nullptr);
652     KeyEvent keyEvent;
653     for (int i = 0; i <= 1001; ++i) {
654         webPattern->webKeyEvent_.push_back(keyEvent);
655     }
656     int32_t keyCode = 1;
657     webPattern->ClearKeyEventByKeyCode(keyCode);
658 #endif
659 }
660 
661 /**
662  * @tc.name: WebOnKeyEvent_001
663  * @tc.desc: WebOnKeyEvent.
664  * @tc.type: FUNC
665  */
666 HWTEST_F(WebPatternFocusTestNg, WebOnKeyEvent_001, TestSize.Level1)
667 {
668 #ifdef OHOS_STANDARD_SYSTEM
669     auto* stack = ViewStackProcessor::GetInstance();
670     ASSERT_NE(stack, nullptr);
671     auto nodeId = stack->ClaimNodeId();
672     auto frameNode =
__anond9513bf51502() 673         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
674     stack->Push(frameNode);
675     auto webPattern = frameNode->GetPattern<WebPattern>();
676     ASSERT_NE(webPattern, nullptr);
677     webPattern->OnModifyDone();
678     ASSERT_NE(webPattern->delegate_, nullptr);
679     KeyEvent keyEvent;
680     webPattern->WebOnKeyEvent(keyEvent);
681 #endif
682 }
683 
684 /**
685  * @tc.name: WebOnKeyEvent_002
686  * @tc.desc: WebOnKeyEvent.
687  * @tc.type: FUNC
688  */
689 HWTEST_F(WebPatternFocusTestNg, WebOnKeyEvent_002, TestSize.Level1)
690 {
691 #ifdef OHOS_STANDARD_SYSTEM
692     auto* stack = ViewStackProcessor::GetInstance();
693     ASSERT_NE(stack, nullptr);
694     auto nodeId = stack->ClaimNodeId();
695     auto frameNode =
__anond9513bf51602() 696         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
697     stack->Push(frameNode);
698     auto webPattern = frameNode->GetPattern<WebPattern>();
699     ASSERT_NE(webPattern, nullptr);
700     webPattern->OnModifyDone();
701     KeyEvent keyEvent;
702     ASSERT_NE(webPattern->delegate_, nullptr);
703     for (int i = 0; i <= 1001; ++i) {
704         webPattern->webKeyEvent_.push_back(keyEvent);
705     }
706     webPattern->WebOnKeyEvent(keyEvent);
707 #endif
708 }
709 
710 /**
711  * @tc.name: BeforeSyncGeometryProperties_001
712  * @tc.desc: BeforeSyncGeometryProperties.
713  * @tc.type: FUNC
714  */
715 HWTEST_F(WebPatternFocusTestNg, BeforeSyncGeometryProperties_001, TestSize.Level1)
716 {
717 #ifdef OHOS_STANDARD_SYSTEM
718     auto* stack = ViewStackProcessor::GetInstance();
719     ASSERT_NE(stack, nullptr);
720     auto nodeId = stack->ClaimNodeId();
721     auto frameNode =
__anond9513bf51702() 722         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
723     stack->Push(frameNode);
724     auto webPattern = frameNode->GetPattern<WebPattern>();
725     ASSERT_NE(webPattern, nullptr);
726     webPattern->OnModifyDone();
727     ASSERT_NE(webPattern->delegate_, nullptr);
728     DirtySwapConfig dirtySwapConfig;
729     webPattern->BeforeSyncGeometryProperties(dirtySwapConfig);
730 #endif
731 }
732 
733 /**
734  * @tc.name: BeforeSyncGeometryProperties_002
735  * @tc.desc: BeforeSyncGeometryProperties.
736  * @tc.type: FUNC
737  */
738 HWTEST_F(WebPatternFocusTestNg, BeforeSyncGeometryProperties_002, TestSize.Level1)
739 {
740 #ifdef OHOS_STANDARD_SYSTEM
741     auto* stack = ViewStackProcessor::GetInstance();
742     ASSERT_NE(stack, nullptr);
743     auto nodeId = stack->ClaimNodeId();
744     auto frameNode =
__anond9513bf51802() 745         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
746     stack->Push(frameNode);
747     auto webPattern = frameNode->GetPattern<WebPattern>();
748     ASSERT_NE(webPattern, nullptr);
749     webPattern->OnModifyDone();
750     ASSERT_NE(webPattern->delegate_, nullptr);
751     webPattern->isInWindowDrag_ = true;
752     DirtySwapConfig dirtySwapConfig;
753     webPattern->BeforeSyncGeometryProperties(dirtySwapConfig);
754 #endif
755 }
756 
757 /**
758  * @tc.name: UpdateLayoutAfterKeyboardShow_001
759  * @tc.desc: UpdateLayoutAfterKeyboardShow.
760  * @tc.type: FUNC
761  */
762 HWTEST_F(WebPatternFocusTestNg, UpdateLayoutAfterKeyboardShow_001, TestSize.Level1)
763 {
764 #ifdef OHOS_STANDARD_SYSTEM
765     auto* stack = ViewStackProcessor::GetInstance();
766     ASSERT_NE(stack, nullptr);
767     auto nodeId = stack->ClaimNodeId();
768     auto frameNode =
__anond9513bf51902() 769         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
770     stack->Push(frameNode);
771     auto webPattern = frameNode->GetPattern<WebPattern>();
772     ASSERT_NE(webPattern, nullptr);
773     webPattern->OnModifyDone();
774     ASSERT_NE(webPattern->delegate_, nullptr);
775     webPattern->UpdateLayoutAfterKeyboardShow(500, 500, 20.2, 250.0);
776     ASSERT_NE(webPattern, nullptr);
777 #endif
778 }
779 
780 /**
781  * @tc.name: UpdateLayoutAfterKeyboardShow_002
782  * @tc.desc: UpdateLayoutAfterKeyboardShow.
783  * @tc.type: FUNC
784  */
785 HWTEST_F(WebPatternFocusTestNg, UpdateLayoutAfterKeyboardShow_002, TestSize.Level1)
786 {
787 #ifdef OHOS_STANDARD_SYSTEM
788     auto* stack = ViewStackProcessor::GetInstance();
789     ASSERT_NE(stack, nullptr);
790     auto nodeId = stack->ClaimNodeId();
791     auto frameNode =
__anond9513bf51a02() 792         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
793     stack->Push(frameNode);
794     auto webPattern = frameNode->GetPattern<WebPattern>();
795     ASSERT_NE(webPattern, nullptr);
796     webPattern->OnModifyDone();
797     ASSERT_NE(webPattern->delegate_, nullptr);
798     webPattern->keyBoardAvoidMode_ = WebKeyboardAvoidMode::RESIZE_VISUAL;
799     webPattern->UpdateLayoutAfterKeyboardShow(500, 500, 20.2, 250.0);
800     ASSERT_NE(webPattern, nullptr);
801 #endif
802 }
803 
804 /**
805  * @tc.name: UpdateLayoutAfterKeyboardShow_003
806  * @tc.desc: UpdateLayoutAfterKeyboardShow.
807  * @tc.type: FUNC
808  */
809 HWTEST_F(WebPatternFocusTestNg, UpdateLayoutAfterKeyboardShow_003, TestSize.Level1)
810 {
811 #ifdef OHOS_STANDARD_SYSTEM
812     auto* stack = ViewStackProcessor::GetInstance();
813     ASSERT_NE(stack, nullptr);
814     auto nodeId = stack->ClaimNodeId();
815     auto frameNode =
__anond9513bf51b02() 816         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
817     stack->Push(frameNode);
818     auto webPattern = frameNode->GetPattern<WebPattern>();
819     ASSERT_NE(webPattern, nullptr);
820     webPattern->OnModifyDone();
821     ASSERT_NE(webPattern->delegate_, nullptr);
822     webPattern->keyBoardAvoidMode_ = WebKeyboardAvoidMode::OVERLAYS_CONTENT;
823     webPattern->UpdateLayoutAfterKeyboardShow(500, 500, 20.2, 250.0);
824     ASSERT_NE(webPattern, nullptr);
825 #endif
826 }
827 
828 /**
829  * @tc.name: HandleTouchDownTest001
830  * @tc.desc: HandleTouchDown
831  * @tc.type: FUNC
832  */
833 
834 HWTEST_F(WebPatternFocusTestNg, HandleTouchDownTest001, TestSize.Level1)
835 {
836 #ifdef OHOS_STANDARD_SYSTEM
837     auto* stack = ViewStackProcessor::GetInstance();
838     EXPECT_NE(stack, nullptr);
839     auto nodeId = stack->ClaimNodeId();
840     auto frameNode =
__anond9513bf51c02() 841         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
842     EXPECT_NE(frameNode, nullptr);
843     stack->Push(frameNode);
844     auto webPattern = frameNode->GetPattern<WebPattern>();
845     webPattern->OnModifyDone();
846     EXPECT_NE(webPattern, nullptr);
847 
848     int32_t fingerId = 0;
849     TouchLocationInfo info("webtest", fingerId);
850     TouchEventInfo event("webtest");
851     webPattern->HandleTouchDown(event, true);
852 #endif
853 }
854 
855 /**
856  * @tc.name: HandleTouchDownTest002
857  * @tc.desc: HandleTouchDown
858  * @tc.type: FUNC
859  */
860 
861 HWTEST_F(WebPatternFocusTestNg, HandleTouchDownTest002, TestSize.Level1)
862 {
863 #ifdef OHOS_STANDARD_SYSTEM
864     auto* stack = ViewStackProcessor::GetInstance();
865     EXPECT_NE(stack, nullptr);
866     auto nodeId = stack->ClaimNodeId();
867     auto frameNode =
__anond9513bf51d02() 868         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
869     EXPECT_NE(frameNode, nullptr);
870     stack->Push(frameNode);
871     auto webPattern = frameNode->GetPattern<WebPattern>();
872     webPattern->OnModifyDone();
873     EXPECT_NE(webPattern, nullptr);
874 
875     int32_t fingerId = 0;
876     TouchLocationInfo info("webtest", fingerId);
877     TouchEventInfo event("webtest");
878     webPattern->overlayCreating_ = true;
879     event.AddTouchLocationInfo(std::move(info));
880     webPattern->HandleTouchDown(event, true);
881 #endif
882 }
883 
884 /**
885  * @tc.name: HandleTouchUpTest001
886  * @tc.desc: HandleTouchUp
887  * @tc.type: FUNC
888  */
889 
890 HWTEST_F(WebPatternFocusTestNg, HandleTouchUpTest001, TestSize.Level1)
891 {
892 #ifdef OHOS_STANDARD_SYSTEM
893     auto* stack = ViewStackProcessor::GetInstance();
894     EXPECT_NE(stack, nullptr);
895     auto nodeId = stack->ClaimNodeId();
896     auto frameNode =
__anond9513bf51e02() 897         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
898     EXPECT_NE(frameNode, nullptr);
899     stack->Push(frameNode);
900     auto webPattern = frameNode->GetPattern<WebPattern>();
901     webPattern->OnModifyDone();
902     EXPECT_NE(webPattern, nullptr);
903 
904     int32_t fingerId = 0;
905     TouchLocationInfo info("webtest", fingerId);
906     TouchEventInfo event("webtest");
907     webPattern->HandleTouchUp(event, true);
908 #endif
909 }
910 
911 /**
912  * @tc.name: HandleTouchUpTest002
913  * @tc.desc: HandleTouchUp
914  * @tc.type: FUNC
915  */
916 
917 HWTEST_F(WebPatternFocusTestNg, HandleTouchUpTest002, TestSize.Level1)
918 {
919 #ifdef OHOS_STANDARD_SYSTEM
920     auto* stack = ViewStackProcessor::GetInstance();
921     EXPECT_NE(stack, nullptr);
922     auto nodeId = stack->ClaimNodeId();
923     auto frameNode =
__anond9513bf51f02() 924         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
925     EXPECT_NE(frameNode, nullptr);
926     stack->Push(frameNode);
927     auto webPattern = frameNode->GetPattern<WebPattern>();
928     webPattern->OnModifyDone();
929     EXPECT_NE(webPattern, nullptr);
930 
931     int32_t fingerId = 0;
932     TouchLocationInfo info("webtest", fingerId);
933     TouchEventInfo event("webtest");
934     webPattern->isReceivedArkDrag_ = true;
935     webPattern->overlayCreating_ = true;
936     event.AddTouchLocationInfo(std::move(info));
937     webPattern->HandleTouchUp(event, true);
938 #endif
939 }
940 
941 /**
942  * @tc.name: HandleTouchMoveTest001
943  * @tc.desc: HandleTouchMove
944  * @tc.type: FUNC
945  */
946 
947 HWTEST_F(WebPatternFocusTestNg, HandleTouchMoveTest001, TestSize.Level1)
948 {
949 #ifdef OHOS_STANDARD_SYSTEM
950     auto* stack = ViewStackProcessor::GetInstance();
951     EXPECT_NE(stack, nullptr);
952     auto nodeId = stack->ClaimNodeId();
953     auto frameNode =
__anond9513bf52002() 954         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
955     EXPECT_NE(frameNode, nullptr);
956     stack->Push(frameNode);
957     auto webPattern = frameNode->GetPattern<WebPattern>();
958     webPattern->OnModifyDone();
959     EXPECT_NE(webPattern, nullptr);
960 
961     int32_t fingerId = 0;
962     TouchLocationInfo info("webtest", fingerId);
963     TouchEventInfo event("webtest");
964     webPattern->HandleTouchMove(event, true);
965 #endif
966 }
967 
968 /**
969  * @tc.name: HandleTouchMoveTest002
970  * @tc.desc: HandleTouchMove
971  * @tc.type: FUNC
972  */
973 
974 HWTEST_F(WebPatternFocusTestNg, HandleTouchMoveTest002, TestSize.Level1)
975 {
976 #ifdef OHOS_STANDARD_SYSTEM
977     auto* stack = ViewStackProcessor::GetInstance();
978     EXPECT_NE(stack, nullptr);
979     auto nodeId = stack->ClaimNodeId();
980     auto frameNode =
__anond9513bf52102() 981         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
982     EXPECT_NE(frameNode, nullptr);
983     stack->Push(frameNode);
984     auto webPattern = frameNode->GetPattern<WebPattern>();
985     webPattern->OnModifyDone();
986     EXPECT_NE(webPattern, nullptr);
987 
988     int32_t fingerId = 0;
989     TouchLocationInfo info("webtest", fingerId);
990     TouchEventInfo event("webtest");
991     webPattern->isReceivedArkDrag_ = true;
992     event.AddTouchLocationInfo(std::move(info));
993     webPattern->HandleTouchMove(event, true);
994 #endif
995 }
996 
997 /**
998  * @tc.name: HandleTouchMoveTest003
999  * @tc.desc: HandleTouchMove
1000  * @tc.type: FUNC
1001  */
1002 
1003 HWTEST_F(WebPatternFocusTestNg, HandleTouchMoveTest003, TestSize.Level1)
1004 {
1005 #ifdef OHOS_STANDARD_SYSTEM
1006     auto* stack = ViewStackProcessor::GetInstance();
1007     EXPECT_NE(stack, nullptr);
1008     auto nodeId = stack->ClaimNodeId();
1009     auto frameNode =
__anond9513bf52202() 1010         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1011     EXPECT_NE(frameNode, nullptr);
1012     stack->Push(frameNode);
1013     auto webPattern = frameNode->GetPattern<WebPattern>();
1014     webPattern->OnModifyDone();
1015     EXPECT_NE(webPattern, nullptr);
1016 
1017     int32_t fingerId = 0;
1018     TouchLocationInfo info("webtest", fingerId);
1019     TouchEventInfo event("webtest");
1020     webPattern->isReceivedArkDrag_ = true;
1021     event.AddTouchLocationInfo(std::move(info));
1022     webPattern->overlayCreating_ = true;
1023     webPattern->HandleTouchMove(event, true);
1024 #endif
1025 }
1026 
1027 /**
1028  * @tc.name: HandleTouchMoveTest004
1029  * @tc.desc: HandleTouchMove
1030  * @tc.type: FUNC
1031  */
1032 
1033 HWTEST_F(WebPatternFocusTestNg, HandleTouchMoveTest004, TestSize.Level1)
1034 {
1035 #ifdef OHOS_STANDARD_SYSTEM
1036     auto* stack = ViewStackProcessor::GetInstance();
1037     EXPECT_NE(stack, nullptr);
1038     auto nodeId = stack->ClaimNodeId();
1039     auto frameNode =
__anond9513bf52302() 1040         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1041     EXPECT_NE(frameNode, nullptr);
1042     stack->Push(frameNode);
1043     auto webPattern = frameNode->GetPattern<WebPattern>();
1044     webPattern->OnModifyDone();
1045     EXPECT_NE(webPattern, nullptr);
1046 
1047     int32_t fingerId = 0;
1048     TouchLocationInfo info("webtest", fingerId);
1049     TouchEventInfo event("webtest");
1050     webPattern->isReceivedArkDrag_ = true;
1051     event.AddTouchLocationInfo(std::move(info));
1052     webPattern->overlayCreating_ = true;
1053     webPattern->isDragging_ = true;
1054     webPattern->HandleTouchMove(event, true);
1055 #endif
1056 }
1057 
1058 /**
1059  * @tc.name: HandleTouchCancelTest001
1060  * @tc.desc: HandleTouchCancel
1061  * @tc.type: FUNC
1062  */
1063 
1064 HWTEST_F(WebPatternFocusTestNg, HandleTouchCancelTest001, TestSize.Level1)
1065 {
1066 #ifdef OHOS_STANDARD_SYSTEM
1067     auto* stack = ViewStackProcessor::GetInstance();
1068     EXPECT_NE(stack, nullptr);
1069     auto nodeId = stack->ClaimNodeId();
1070     auto frameNode =
__anond9513bf52402() 1071         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1072     EXPECT_NE(frameNode, nullptr);
1073     stack->Push(frameNode);
1074     auto webPattern = frameNode->GetPattern<WebPattern>();
1075     webPattern->OnModifyDone();
1076     EXPECT_NE(webPattern, nullptr);
1077 
1078     int32_t fingerId = 0;
1079     TouchLocationInfo info("webtest", fingerId);
1080     TouchEventInfo event("webtest");
1081     webPattern->HandleTouchCancel(event);
1082 #endif
1083 }
1084 
1085 /**
1086  * @tc.name: HandleTouchCancelTest002
1087  * @tc.desc: HandleTouchCancel
1088  * @tc.type: FUNC
1089  */
1090 
1091 HWTEST_F(WebPatternFocusTestNg, HandleTouchCancelTest002, TestSize.Level1)
1092 {
1093 #ifdef OHOS_STANDARD_SYSTEM
1094     auto* stack = ViewStackProcessor::GetInstance();
1095     EXPECT_NE(stack, nullptr);
1096     auto nodeId = stack->ClaimNodeId();
1097     auto frameNode =
__anond9513bf52502() 1098         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1099     EXPECT_NE(frameNode, nullptr);
1100     stack->Push(frameNode);
1101     auto webPattern = frameNode->GetPattern<WebPattern>();
1102     webPattern->OnModifyDone();
1103     EXPECT_NE(webPattern, nullptr);
1104 
1105     int32_t fingerId = 0;
1106     TouchLocationInfo info("webtest", fingerId);
1107     TouchEventInfo event("webtest");
1108     event.AddTouchLocationInfo(std::move(info));
1109     webPattern->overlayCreating_ = true;
1110     webPattern->HandleTouchCancel(event);
1111 #endif
1112 }
1113 
1114 /**
1115  * @tc.name: ParseTouchInfoTest001
1116  * @tc.desc: ParseTouchInfo
1117  * @tc.type: FUNC
1118  */
1119 
1120 HWTEST_F(WebPatternFocusTestNg, ParseTouchInfoTest001, TestSize.Level1)
1121 {
1122 #ifdef OHOS_STANDARD_SYSTEM
1123     auto* stack = ViewStackProcessor::GetInstance();
1124     auto nodeId = stack->ClaimNodeId();
1125     auto frameNode =
__anond9513bf52602() 1126         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1127     stack->Push(frameNode);
1128     auto g_webPattern = frameNode->GetPattern<WebPattern>();
1129     EXPECT_NE(g_webPattern, nullptr);
1130     TouchEventInfo info("touch");
1131     info.changedTouches_.clear();
1132     std::list<OHOS::Ace::NG::WebPattern::TouchInfo> touchInfos;
1133     EXPECT_FALSE(g_webPattern->ParseTouchInfo(info, touchInfos));
1134 #endif
1135 }
1136 
1137 /**
1138  * @tc.name: RequestFullScreenTest
1139  * @tc.desc: RequestFullScreen
1140  * @tc.type: FUNC
1141  */
1142 
1143 HWTEST_F(WebPatternFocusTestNg, RequestFullScreenTest, TestSize.Level1)
1144 {
1145 #ifdef OHOS_STANDARD_SYSTEM
1146     auto* stack = ViewStackProcessor::GetInstance();
1147     EXPECT_NE(stack, nullptr);
1148     auto nodeId = stack->ClaimNodeId();
1149     auto frameNode =
__anond9513bf52702() 1150         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1151     EXPECT_NE(frameNode, nullptr);
1152     stack->Push(frameNode);
1153     auto webPattern = frameNode->GetPattern<WebPattern>();
1154     webPattern->RequestFullScreen();
1155     EXPECT_EQ(webPattern->isFullScreen_, true);
1156 #endif
1157 }
1158 
1159 /**
1160  * @tc.name: ExitFullScreenTest
1161  * @tc.desc: ExitFullScreen
1162  * @tc.type: FUNC
1163  */
1164 
1165 HWTEST_F(WebPatternFocusTestNg, ExitFullScreenTest, TestSize.Level1)
1166 {
1167 #ifdef OHOS_STANDARD_SYSTEM
1168     auto* stack = ViewStackProcessor::GetInstance();
1169     EXPECT_NE(stack, nullptr);
1170     auto nodeId = stack->ClaimNodeId();
1171     auto frameNode =
__anond9513bf52802() 1172         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1173     EXPECT_NE(frameNode, nullptr);
1174     stack->Push(frameNode);
1175     auto webPattern = frameNode->GetPattern<WebPattern>();
1176     webPattern->ExitFullScreen();
1177     EXPECT_EQ(webPattern->isFullScreen_, false);
1178 #endif
1179 }
1180 
1181 /**
1182  * @tc.name: IsTouchHandleValidTest
1183  * @tc.desc: IsTouchHandleValid
1184  * @tc.type: FUNC
1185  */
1186 
1187 HWTEST_F(WebPatternFocusTestNg, IsTouchHandleValidTest, TestSize.Level1)
1188 {
1189 #ifdef OHOS_STANDARD_SYSTEM
1190     auto* stack = ViewStackProcessor::GetInstance();
1191     EXPECT_NE(stack, nullptr);
1192     auto nodeId = stack->ClaimNodeId();
1193     auto frameNode =
__anond9513bf52902() 1194         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1195     EXPECT_NE(frameNode, nullptr);
1196     stack->Push(frameNode);
1197     auto webPattern = frameNode->GetPattern<WebPattern>();
1198     std::shared_ptr<OHOS::NWeb::NWebTouchHandleState> handle = nullptr;
1199     auto expect = webPattern->IsTouchHandleValid(handle);
1200     EXPECT_EQ(expect, false);
1201 #endif
1202 }
1203 
1204 /**
1205  * @tc.name: CheckHandlesTest001
1206  * @tc.desc: CheckHandles
1207  * @tc.type: FUNC
1208  */
1209 
1210 HWTEST_F(WebPatternFocusTestNg, CheckHandlesTest001, TestSize.Level1)
1211 {
1212 #ifdef OHOS_STANDARD_SYSTEM
1213     auto* stack = ViewStackProcessor::GetInstance();
1214     auto nodeId = stack->ClaimNodeId();
1215     auto frameNode =
__anond9513bf52a02() 1216         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1217     stack->Push(frameNode);
1218     auto webPattern = frameNode->GetPattern<WebPattern>();
1219     EXPECT_NE(webPattern, nullptr);
1220 
1221     auto handle = std::make_shared<NWeb::CustomNWebTouchHandleState>();
1222     handle->SetAlpha(0.5);
1223     handle->SetY(10);
1224     handle->SetEdgeHeight(5);
1225 
1226     SelectHandleInfo handleInfo;
1227     webPattern->CheckHandles(handleInfo, handle);
1228 
1229     EXPECT_TRUE(handleInfo.isShow);
1230 #endif
1231 }
1232 
1233 /**
1234  * @tc.name: CheckHandlesTest002
1235  * @tc.desc: CheckHandles
1236  * @tc.type: FUNC
1237  */
1238 
1239 HWTEST_F(WebPatternFocusTestNg, CheckHandlesTest002, TestSize.Level1)
1240 {
1241 #ifdef OHOS_STANDARD_SYSTEM
1242     auto* stack = ViewStackProcessor::GetInstance();
1243     auto nodeId = stack->ClaimNodeId();
1244     auto frameNode =
__anond9513bf52b02() 1245         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1246     stack->Push(frameNode);
1247     auto webPattern = frameNode->GetPattern<WebPattern>();
1248     EXPECT_NE(webPattern, nullptr);
1249 
1250     auto handle = std::make_shared<NWeb::CustomNWebTouchHandleState>();
1251     handle->SetAlpha(0.5);
1252     handle->SetY(10);
1253     handle->SetEdgeHeight(5);
1254 
1255     SelectHandleInfo handleInfo;
1256     handle->SetEdgeHeight(0);
1257     webPattern->CheckHandles(handleInfo, handle);
1258 #endif
1259 }
1260 
1261 /**
1262  * @tc.name: GetCoordinatePointTest001
1263  * @tc.desc: GetCoordinatePoint
1264  * @tc.type: FUNC
1265  */
1266 
1267 HWTEST_F(WebPatternFocusTestNg, GetCoordinatePointTest001, TestSize.Level1)
1268 {
1269 #ifdef OHOS_STANDARD_SYSTEM
1270     auto* stack = ViewStackProcessor::GetInstance();
1271     EXPECT_NE(stack, nullptr);
1272     auto nodeId = stack->ClaimNodeId();
1273     auto frameNode =
__anond9513bf52c02() 1274         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1275     stack->Push(frameNode);
1276     auto webPattern = frameNode->GetPattern<WebPattern>();
1277     EXPECT_NE(webPattern, nullptr);
1278 
1279     auto coordinatePoint = webPattern->GetCoordinatePoint();
1280     EXPECT_NE(coordinatePoint, std::nullopt);
1281 #endif
1282 }
1283 
1284 /**
1285  * @tc.name: GetCoordinatePointTest002
1286  * @tc.desc: GetCoordinatePoint
1287  * @tc.type: FUNC
1288  */
1289 
1290 HWTEST_F(WebPatternFocusTestNg, GetCoordinatePointTest002, TestSize.Level1)
1291 {
1292 #ifdef OHOS_STANDARD_SYSTEM
1293     auto* stack = ViewStackProcessor::GetInstance();
1294     EXPECT_NE(stack, nullptr);
1295     auto nodeId = stack->ClaimNodeId();
1296     auto frameNode =
__anond9513bf52d02() 1297         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1298     stack->Push(frameNode);
1299     auto webPattern = frameNode->GetPattern<WebPattern>();
1300     EXPECT_NE(webPattern, nullptr);
1301 
__anond9513bf52e02() 1302     auto host = FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, 1, []() { return AceType::MakeRefPtr<WebPattern>(); });
1303     host->GetGeometryNode()->SetFrameOffset(OffsetF(0, 0));
1304 
1305     auto coordinatePoint = webPattern->GetCoordinatePoint();
1306     EXPECT_NE(coordinatePoint, std::nullopt);
1307     EXPECT_FLOAT_EQ(coordinatePoint->GetX(), 0);
1308     EXPECT_FLOAT_EQ(coordinatePoint->GetY(), 0);
1309 #endif
1310 }
1311 
1312 /**
1313  * @tc.name: CloseSelectOverlayTest001
1314  * @tc.desc: CloseSelectOverlay
1315  * @tc.type: FUNC
1316  */
1317 
1318 HWTEST_F(WebPatternFocusTestNg, CloseSelectOverlayTest001, TestSize.Level1)
1319 {
1320 #ifdef OHOS_STANDARD_SYSTEM
1321     auto* stack = ViewStackProcessor::GetInstance();
1322     auto nodeId = stack->ClaimNodeId();
1323     auto frameNode =
__anond9513bf52f02() 1324         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1325     stack->Push(frameNode);
1326     auto g_webPattern = frameNode->GetPattern<WebPattern>();
1327     EXPECT_NE(g_webPattern, nullptr);
1328 
1329     g_webPattern->selectOverlayProxy_ = nullptr;
1330     g_webPattern->CloseSelectOverlay();
1331     EXPECT_FALSE(g_webPattern->selectOverlayProxy_);
1332 #endif
1333 }
1334 
1335 /**
1336  * @tc.name: CloseSelectOverlayTest002
1337  * @tc.desc: CloseSelectOverlay
1338  * @tc.type: FUNC
1339  */
1340 
1341 HWTEST_F(WebPatternFocusTestNg, CloseSelectOverlayTest002, TestSize.Level1)
1342 {
1343 #ifdef OHOS_STANDARD_SYSTEM
1344     auto* stack = ViewStackProcessor::GetInstance();
1345     auto nodeId = stack->ClaimNodeId();
1346     auto frameNode =
__anond9513bf53002() 1347         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1348     stack->Push(frameNode);
1349     auto g_webPattern = frameNode->GetPattern<WebPattern>();
1350     EXPECT_NE(g_webPattern, nullptr);
1351 
1352     g_webPattern->selectOverlayProxy_ = nullptr;
1353     g_webPattern->CloseSelectOverlay();
1354     EXPECT_FALSE(g_webPattern->selectOverlayProxy_);
1355 
1356     int32_t selectOverlayId = 1;
1357     g_webPattern->selectOverlayProxy_ = new SelectOverlayProxy(selectOverlayId);
1358     g_webPattern->CloseSelectOverlay();
1359     EXPECT_FALSE(g_webPattern->selectOverlayProxy_->IsMenuShow());
1360     EXPECT_EQ(g_webPattern->selectOverlayProxy_->GetSelectOverlayId(), 1);
1361     EXPECT_TRUE(g_webPattern->touchOverlayInfo_.empty());
1362     EXPECT_EQ(g_webPattern->insertHandle_, nullptr);
1363     EXPECT_EQ(g_webPattern->startSelectionHandle_, nullptr);
1364     EXPECT_EQ(g_webPattern->endSelectionHandle_, nullptr);
1365 #endif
1366 }
1367 
1368 /**
1369  * @tc.name: WebPatternOnParentScrollStartOrEndCallbackTest001
1370  * @tc.desc: OnParentScrollStartOrEndCallback
1371  * @tc.type: FUNC
1372  */
1373 
1374 HWTEST_F(WebPatternFocusTestNg, WebPatternOnParentScrollStartOrEndCallbackTest001, TestSize.Level1)
1375 {
1376 #ifdef OHOS_STANDARD_SYSTEM
1377     auto* stack = ViewStackProcessor::GetInstance();
1378     auto nodeId = stack->ClaimNodeId();
1379     auto frameNode =
__anond9513bf53102() 1380         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1381     stack->Push(frameNode);
1382     auto g_webPattern = frameNode->GetPattern<WebPattern>();
1383     EXPECT_NE(g_webPattern, nullptr);
1384 
1385     g_webPattern->selectOverlayProxy_ = nullptr;
1386     g_webPattern->OnParentScrollStartOrEndCallback(false);
1387 #endif
1388 }
1389 
1390 /**
1391  * @tc.name: WebPatternOnParentScrollStartOrEndCallbackTest002
1392  * @tc.desc: OnParentScrollStartOrEndCallback
1393  * @tc.type: FUNC
1394  */
1395 
1396 HWTEST_F(WebPatternFocusTestNg, WebPatternOnParentScrollStartOrEndCallbackTest002, TestSize.Level1)
1397 {
1398 #ifdef OHOS_STANDARD_SYSTEM
1399     auto* stack = ViewStackProcessor::GetInstance();
1400     auto nodeId = stack->ClaimNodeId();
1401     auto frameNode =
__anond9513bf53202() 1402         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1403     stack->Push(frameNode);
1404     auto g_webPattern = frameNode->GetPattern<WebPattern>();
1405     EXPECT_NE(g_webPattern, nullptr);
1406 
1407     g_webPattern->selectOverlayProxy_ = new SelectOverlayProxy(1);
1408     g_webPattern->OnParentScrollStartOrEndCallback(false);
1409 #endif
1410 }
1411 
1412 /**
1413  * @tc.name: RegisterSelectOverlayParentScrollCallbackTest001
1414  * @tc.desc: RegisterSelectOverlayParentScrollCallback
1415  * @tc.type: FUNC
1416  */
1417 
1418 HWTEST_F(WebPatternFocusTestNg, RegisterSelectOverlayParentScrollCallbackTest001, TestSize.Level1)
1419 {
1420 #ifdef OHOS_STANDARD_SYSTEM
1421     auto* stack = ViewStackProcessor::GetInstance();
1422     auto nodeId = stack->ClaimNodeId();
1423     auto frameNode =
__anond9513bf53302() 1424         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1425     stack->Push(frameNode);
1426     auto webPattern = frameNode->GetPattern<WebPattern>();
1427     EXPECT_NE(webPattern, nullptr);
1428 
1429     int32_t parentId = 1;
1430     int32_t callbackId = 2;
1431     webPattern->RegisterSelectOverlayParentScrollCallback(parentId, callbackId);
1432 #endif
1433 }
1434 
1435 /**
1436  * @tc.name: RegisterSelectOverlayParentScrollCallbackTest002
1437  * @tc.desc: RegisterSelectOverlayParentScrollCallback
1438  * @tc.type: FUNC
1439  */
1440 
1441 HWTEST_F(WebPatternFocusTestNg, RegisterSelectOverlayParentScrollCallbackTest002, TestSize.Level1)
1442 {
1443 #ifdef OHOS_STANDARD_SYSTEM
1444     auto* stack = ViewStackProcessor::GetInstance();
1445     auto nodeId = stack->ClaimNodeId();
1446     auto frameNode =
__anond9513bf53402() 1447         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1448     stack->Push(frameNode);
1449     auto webPattern = frameNode->GetPattern<WebPattern>();
1450     EXPECT_NE(webPattern, nullptr);
1451 
1452     int32_t callbackId = 2;
1453     int32_t nonExistentParentId = 999;
1454     webPattern->RegisterSelectOverlayParentScrollCallback(nonExistentParentId, callbackId);
1455 #endif
1456 }
1457 
1458 /**
1459  * @tc.name: RegisterSelectOverlayParentScrollCallbackTest003
1460  * @tc.desc: RegisterSelectOverlayParentScrollCallback
1461  * @tc.type: FUNC
1462  */
1463 
1464 HWTEST_F(WebPatternFocusTestNg, RegisterSelectOverlayParentScrollCallbackTest003, TestSize.Level1)
1465 {
1466 #ifdef OHOS_STANDARD_SYSTEM
1467     auto* stack = ViewStackProcessor::GetInstance();
1468     auto nodeId = stack->ClaimNodeId();
1469     auto frameNode =
__anond9513bf53502() 1470         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1471     stack->Push(frameNode);
1472     auto webPattern = frameNode->GetPattern<WebPattern>();
1473     EXPECT_NE(webPattern, nullptr);
1474 
1475     int32_t anotherParentId = 3;
1476     int32_t anotherCallbackId = 4;
1477     webPattern->RegisterSelectOverlayParentScrollCallback(anotherParentId, anotherCallbackId);
1478 #endif
1479 }
1480 
1481 /**
1482  * @tc.name: ComputeTouchHandleRectTest
1483  * @tc.desc: ComputeTouchHandleRect
1484  * @tc.type: FUNC
1485  */
1486 
1487 HWTEST_F(WebPatternFocusTestNg, ComputeTouchHandleRectTest, TestSize.Level1)
1488 {
1489 #ifdef OHOS_STANDARD_SYSTEM
1490     auto* stack = ViewStackProcessor::GetInstance();
1491     EXPECT_NE(stack, nullptr);
1492     auto nodeId = stack->ClaimNodeId();
1493     auto frameNode =
__anond9513bf53602() 1494         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1495     stack->Push(frameNode);
1496     auto webPattern = frameNode->GetPattern<WebPattern>();
1497     EXPECT_NE(webPattern, nullptr);
1498 
1499     auto touchHandle = std::make_shared<NWeb::CustomNWebTouchHandleState>();
1500     touchHandle->SetX(10.0);
1501     touchHandle->SetY(20.0);
1502     touchHandle->SetEdgeHeight(5.0);
1503 
1504     RectF paintRect = webPattern->ComputeTouchHandleRect(touchHandle);
1505 
1506     EXPECT_FLOAT_EQ(paintRect.Width(), SelectHandleInfo::GetDefaultLineWidth().ConvertToPx());
1507     EXPECT_FLOAT_EQ(paintRect.Height(), 5);
1508 #endif
1509 }
1510 
1511 /**
1512  * @tc.name: DelTouchOverlayInfoByTouchIdTest001
1513  * @tc.desc: DelTouchOverlayInfoByTouchId
1514  * @tc.type: FUNC
1515  */
1516 
1517 HWTEST_F(WebPatternFocusTestNg, DelTouchOverlayInfoByTouchIdTest001, TestSize.Level1)
1518 {
1519 #ifdef OHOS_STANDARD_SYSTEM
1520     auto* stack = ViewStackProcessor::GetInstance();
1521     EXPECT_NE(stack, nullptr);
1522     auto nodeId = stack->ClaimNodeId();
1523     auto frameNode =
__anond9513bf53702() 1524         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1525     stack->Push(frameNode);
1526     auto webPattern = frameNode->GetPattern<WebPattern>();
1527     EXPECT_NE(webPattern, nullptr);
1528 
1529     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 1, 10.0, 1 });
1530     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 2, 30.0, 2 });
1531     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 3, 50.0, 3 });
1532 
1533     webPattern->DelTouchOverlayInfoByTouchId(2);
1534     EXPECT_EQ(webPattern->touchOverlayInfo_.size(), 2);
1535 #endif
1536 }
1537 
1538 /**
1539  * @tc.name: DelTouchOverlayInfoByTouchIdTest002
1540  * @tc.desc: DelTouchOverlayInfoByTouchId
1541  * @tc.type: FUNC
1542  */
1543 
1544 HWTEST_F(WebPatternFocusTestNg, DelTouchOverlayInfoByTouchIdTest002, TestSize.Level1)
1545 {
1546 #ifdef OHOS_STANDARD_SYSTEM
1547     auto* stack = ViewStackProcessor::GetInstance();
1548     EXPECT_NE(stack, nullptr);
1549     auto nodeId = stack->ClaimNodeId();
1550     auto frameNode =
__anond9513bf53802() 1551         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1552     stack->Push(frameNode);
1553     auto webPattern = frameNode->GetPattern<WebPattern>();
1554     EXPECT_NE(webPattern, nullptr);
1555 
1556     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 1, 10.0, 1 });
1557     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 2, 30.0, 2 });
1558     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 3, 50.0, 3 });
1559 
1560     webPattern->DelTouchOverlayInfoByTouchId(4);
1561     EXPECT_EQ(webPattern->touchOverlayInfo_.size(), 3);
1562 #endif
1563 }
1564 
1565 /**
1566  * @tc.name: DelTouchOverlayInfoByTouchIdTest003
1567  * @tc.desc: DelTouchOverlayInfoByTouchId
1568  * @tc.type: FUNC
1569  */
1570 
1571 HWTEST_F(WebPatternFocusTestNg, DelTouchOverlayInfoByTouchIdTest003, TestSize.Level1)
1572 {
1573 #ifdef OHOS_STANDARD_SYSTEM
1574     auto* stack = ViewStackProcessor::GetInstance();
1575     EXPECT_NE(stack, nullptr);
1576     auto nodeId = stack->ClaimNodeId();
1577     auto frameNode =
__anond9513bf53902() 1578         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1579     stack->Push(frameNode);
1580     auto webPattern = frameNode->GetPattern<WebPattern>();
1581     EXPECT_NE(webPattern, nullptr);
1582 
1583     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 3, 50.0, 3 });
1584     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 4, 70.0, 4 });
1585     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 5, 90.0, 5 });
1586     webPattern->DelTouchOverlayInfoByTouchId(3);
1587     webPattern->DelTouchOverlayInfoByTouchId(4);
1588     webPattern->DelTouchOverlayInfoByTouchId(5);
1589     EXPECT_EQ(webPattern->touchOverlayInfo_.size(), 0);
1590 #endif
1591 }
1592 
1593 /**
1594  * @tc.name: StartListenSelectOverlayParentScrollTest001
1595  * @tc.desc: StartListenSelectOverlayParentScroll
1596  * @tc.type: FUNC
1597  */
1598 
1599 HWTEST_F(WebPatternFocusTestNg, StartListenSelectOverlayParentScrollTest001, TestSize.Level1)
1600 {
1601 #ifdef OHOS_STANDARD_SYSTEM
1602     auto* stack = ViewStackProcessor::GetInstance();
1603     auto nodeId = stack->ClaimNodeId();
1604     auto frameNode =
__anond9513bf53a02() 1605         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1606     stack->Push(frameNode);
1607     auto webPattern = frameNode->GetPattern<WebPattern>();
1608     EXPECT_NE(webPattern, nullptr);
1609 
1610     webPattern->StartListenSelectOverlayParentScroll(frameNode);
1611     EXPECT_TRUE(webPattern->scrollableParentInfo_.hasParent);
1612     EXPECT_TRUE(webPattern->scrollableParentInfo_.parentIds.empty());
1613 #endif
1614 }
1615 
1616 /**
1617  * @tc.name: StartListenSelectOverlayParentScrollTest002
1618  * @tc.desc: StartListenSelectOverlayParentScroll
1619  * @tc.type: FUNC
1620  */
1621 
1622 HWTEST_F(WebPatternFocusTestNg, StartListenSelectOverlayParentScrollTest002, TestSize.Level1)
1623 {
1624 #ifdef OHOS_STANDARD_SYSTEM
1625     auto* stack = ViewStackProcessor::GetInstance();
1626     auto nodeId = stack->ClaimNodeId();
1627     auto frameNode =
__anond9513bf53b02() 1628         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1629     stack->Push(frameNode);
1630     auto webPattern = frameNode->GetPattern<WebPattern>();
1631     EXPECT_NE(webPattern, nullptr);
1632 
1633     RefPtr<FrameNode> parentNode = FrameNode::GetOrCreateFrameNode(
__anond9513bf53c02() 1634         V2::PAGE_ETS_TAG, nodeId + 1, []() { return AceType::MakeRefPtr<WebPattern>(); });
1635     auto parentPattern = parentNode->GetPattern<ScrollablePattern>();
1636     if (parentPattern) {
1637         webPattern->scrollableParentInfo_.hasParent = true;
1638         webPattern->scrollableParentInfo_.parentIds.emplace_back(AceType::DynamicCast<UINode>(parentNode));
1639     }
1640     webPattern->StartListenSelectOverlayParentScroll(frameNode);
1641     EXPECT_TRUE(webPattern->scrollableParentInfo_.hasParent);
1642 #endif
1643 }
1644 } // namespace OHOS::Ace::NG
1645