• 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 =
__anon0ad2d4370102() 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 =
__anon0ad2d4370202() 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 =
__anon0ad2d4370302() 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 =
__anon0ad2d4370402() 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 
__anon0ad2d4370502(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 =
__anon0ad2d4370602() 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 =
__anon0ad2d4370702() 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 =
__anon0ad2d4370802() 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 =
__anon0ad2d4370902() 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 =
__anon0ad2d4370a02() 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 =
__anon0ad2d4370b02() 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 =
__anon0ad2d4370c02() 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 =
__anon0ad2d4370d02() 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 =
__anon0ad2d4370e02() 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 =
__anon0ad2d4370f02() 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 =
__anon0ad2d4371002() 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 =
__anon0ad2d4371102() 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 =
__anon0ad2d4371202() 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 =
__anon0ad2d4371302() 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 =
__anon0ad2d4371402() 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 =
__anon0ad2d4371502() 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 =
__anon0ad2d4371602() 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 =
__anon0ad2d4371702() 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 =
__anon0ad2d4371802() 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 =
__anon0ad2d4371902() 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 =
__anon0ad2d4371a02() 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 =
__anon0ad2d4371b02() 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 =
__anon0ad2d4371c02() 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 =
__anon0ad2d4371d02() 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 =
__anon0ad2d4371e02() 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 =
__anon0ad2d4371f02() 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 =
__anon0ad2d4372002() 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 =
__anon0ad2d4372102() 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 =
__anon0ad2d4372202() 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 =
__anon0ad2d4372302() 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 =
__anon0ad2d4372402() 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 =
__anon0ad2d4372502() 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 =
__anon0ad2d4372602() 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 =
__anon0ad2d4372702() 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 =
__anon0ad2d4372802() 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: GetCoordinatePointTest001
1183  * @tc.desc: GetCoordinatePoint
1184  * @tc.type: FUNC
1185  */
1186 
1187 HWTEST_F(WebPatternFocusTestNg, GetCoordinatePointTest001, 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 =
__anon0ad2d4372902() 1194         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1195     stack->Push(frameNode);
1196     auto webPattern = frameNode->GetPattern<WebPattern>();
1197     EXPECT_NE(webPattern, nullptr);
1198 
1199     auto coordinatePoint = webPattern->GetCoordinatePoint();
1200     EXPECT_NE(coordinatePoint, std::nullopt);
1201 #endif
1202 }
1203 
1204 /**
1205  * @tc.name: GetCoordinatePointTest002
1206  * @tc.desc: GetCoordinatePoint
1207  * @tc.type: FUNC
1208  */
1209 
1210 HWTEST_F(WebPatternFocusTestNg, GetCoordinatePointTest002, TestSize.Level1)
1211 {
1212 #ifdef OHOS_STANDARD_SYSTEM
1213     auto* stack = ViewStackProcessor::GetInstance();
1214     EXPECT_NE(stack, nullptr);
1215     auto nodeId = stack->ClaimNodeId();
1216     auto frameNode =
__anon0ad2d4372a02() 1217         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1218     stack->Push(frameNode);
1219     auto webPattern = frameNode->GetPattern<WebPattern>();
1220     EXPECT_NE(webPattern, nullptr);
1221 
__anon0ad2d4372b02() 1222     auto host = FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, 1, []() { return AceType::MakeRefPtr<WebPattern>(); });
1223     host->GetGeometryNode()->SetFrameOffset(OffsetF(0, 0));
1224 
1225     auto coordinatePoint = webPattern->GetCoordinatePoint();
1226     EXPECT_NE(coordinatePoint, std::nullopt);
1227     EXPECT_FLOAT_EQ(coordinatePoint->GetX(), 0);
1228     EXPECT_FLOAT_EQ(coordinatePoint->GetY(), 0);
1229 #endif
1230 }
1231 
1232 /**
1233  * @tc.name: DelTouchOverlayInfoByTouchIdTest001
1234  * @tc.desc: DelTouchOverlayInfoByTouchId
1235  * @tc.type: FUNC
1236  */
1237 
1238 HWTEST_F(WebPatternFocusTestNg, DelTouchOverlayInfoByTouchIdTest001, TestSize.Level1)
1239 {
1240 #ifdef OHOS_STANDARD_SYSTEM
1241     auto* stack = ViewStackProcessor::GetInstance();
1242     EXPECT_NE(stack, nullptr);
1243     auto nodeId = stack->ClaimNodeId();
1244     auto frameNode =
__anon0ad2d4372c02() 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     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 1, 10.0, 1 });
1251     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 2, 30.0, 2 });
1252     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 3, 50.0, 3 });
1253 
1254     webPattern->DelTouchOverlayInfoByTouchId(2);
1255     EXPECT_EQ(webPattern->touchOverlayInfo_.size(), 2);
1256 #endif
1257 }
1258 
1259 /**
1260  * @tc.name: DelTouchOverlayInfoByTouchIdTest002
1261  * @tc.desc: DelTouchOverlayInfoByTouchId
1262  * @tc.type: FUNC
1263  */
1264 
1265 HWTEST_F(WebPatternFocusTestNg, DelTouchOverlayInfoByTouchIdTest002, TestSize.Level1)
1266 {
1267 #ifdef OHOS_STANDARD_SYSTEM
1268     auto* stack = ViewStackProcessor::GetInstance();
1269     EXPECT_NE(stack, nullptr);
1270     auto nodeId = stack->ClaimNodeId();
1271     auto frameNode =
__anon0ad2d4372d02() 1272         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1273     stack->Push(frameNode);
1274     auto webPattern = frameNode->GetPattern<WebPattern>();
1275     EXPECT_NE(webPattern, nullptr);
1276 
1277     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 1, 10.0, 1 });
1278     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 2, 30.0, 2 });
1279     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 3, 50.0, 3 });
1280 
1281     webPattern->DelTouchOverlayInfoByTouchId(4);
1282     EXPECT_EQ(webPattern->touchOverlayInfo_.size(), 3);
1283 #endif
1284 }
1285 
1286 /**
1287  * @tc.name: DelTouchOverlayInfoByTouchIdTest003
1288  * @tc.desc: DelTouchOverlayInfoByTouchId
1289  * @tc.type: FUNC
1290  */
1291 
1292 HWTEST_F(WebPatternFocusTestNg, DelTouchOverlayInfoByTouchIdTest003, TestSize.Level1)
1293 {
1294 #ifdef OHOS_STANDARD_SYSTEM
1295     auto* stack = ViewStackProcessor::GetInstance();
1296     EXPECT_NE(stack, nullptr);
1297     auto nodeId = stack->ClaimNodeId();
1298     auto frameNode =
__anon0ad2d4372e02() 1299         FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<WebPattern>(); });
1300     stack->Push(frameNode);
1301     auto webPattern = frameNode->GetPattern<WebPattern>();
1302     EXPECT_NE(webPattern, nullptr);
1303 
1304     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 3, 50.0, 3 });
1305     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 4, 70.0, 4 });
1306     webPattern->touchOverlayInfo_.push_back(WebPattern::TouchInfo { 5, 90.0, 5 });
1307     webPattern->DelTouchOverlayInfoByTouchId(3);
1308     webPattern->DelTouchOverlayInfoByTouchId(4);
1309     webPattern->DelTouchOverlayInfoByTouchId(5);
1310     EXPECT_EQ(webPattern->touchOverlayInfo_.size(), 0);
1311 #endif
1312 }
1313 } // namespace OHOS::Ace::NG
1314