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