diff --git a/test/unittest/core/pattern/indexer/indexer_select_test_ng.cpp b/test/unittest/core/pattern/indexer/indexer_select_test_ng.cpp index d3355899c43d6d73a24d3052502fddaf63ce95e1..01c32ab49d22a0c1f17442831a670c34ee059d14 100644 --- a/test/unittest/core/pattern/indexer/indexer_select_test_ng.cpp +++ b/test/unittest/core/pattern/indexer/indexer_select_test_ng.cpp @@ -299,6 +299,49 @@ HWTEST_F(IndexerSelectTestNg, SelectByPanEvent006, TestSize.Level1) EXPECT_EQ(creatChangeSelected, -1); } +/** + * @tc.name: SelectByPanEvent007 + * @tc.desc: Test MoveIndexByOffset in collapse mode, trigger event + * @tc.type: FUNC + */ +HWTEST_F(IndexerSelectTestNg, SelectByPanEvent007, TestSize.Level1) +{ + int32_t selected = -1; + int32_t changeSelected = -1; + int32_t creatChangeSelected = -1; + OnSelectedEvent onSelected = [&selected](int32_t selectedIndex) { selected = selectedIndex; }; + OnSelectedEvent changeEvent = [&changeSelected](int32_t selectedIndex) { changeSelected = selectedIndex; }; + OnSelectedEvent creatChangeEvent = [&creatChangeSelected]( + int32_t selectedIndex) { creatChangeSelected = selectedIndex; }; + IndexerModelNG model = CreateIndexer(GetLongArrayValue(), 0); + model.SetOnSelected(std::move(onSelected)); + model.SetChangeEvent(std::move(changeEvent)); + model.SetCreatChangeEvent(std::move(creatChangeEvent)); + CreateDone(); + + /** + * @tc.steps: step1. Move up + * @tc.expected: Selected unchanged, not trigger event + */ + GestureEvent gestureEvent; + gestureEvent.SetInputEventType(InputEventType::AXIS); + gestureEvent.SetMainDelta(1.f); + MoveIndex(gestureEvent); + EXPECT_EQ(selected, -1); + EXPECT_EQ(changeSelected, -1); + EXPECT_EQ(creatChangeSelected, -1); + + /** + * @tc.steps: step2. Move down + * @tc.expected: Selected changed, trigger event + */ + gestureEvent.SetMainDelta(-1.f); + MoveIndex(gestureEvent); + EXPECT_EQ(selected, 1); + EXPECT_EQ(changeSelected, 1); + EXPECT_EQ(creatChangeSelected, 1); +} + /** * @tc.name: Hover001 * @tc.desc: Test Hover diff --git a/test/unittest/core/pattern/scroll/scroll_nested_test_ng.cpp b/test/unittest/core/pattern/scroll/scroll_nested_test_ng.cpp index 0e64a8a2d2482727c4bc40c9c3017cddb717c774..1cb5c3dfd69dadb941d93618f344a1c30daf7ac1 100644 --- a/test/unittest/core/pattern/scroll/scroll_nested_test_ng.cpp +++ b/test/unittest/core/pattern/scroll/scroll_nested_test_ng.cpp @@ -997,4 +997,48 @@ HWTEST_F(ScrollNestedTestNg, NestTest015, TestSize.Level1) FlushUITasks(); EXPECT_TRUE(nestPattern_->GetCanOverScroll()); } + +/** + * @tc.name: NestTest016 + * @tc.desc: Test onScrollFrameBegin in nested scroll + * @tc.type: FUNC + */ +HWTEST_F(ScrollNestedTestNg, NestTest016, TestSize.Level1) +{ + /** + * @tc.steps: step1. create scroll and the nest scroll + */ + NestedScrollOptions nestedOpt = { + .forward = NestedScrollMode::PARALLEL, + .backward = NestedScrollMode::PARALLEL, + }; + ScrollModelNG model = CreateScroll(); + model.SetEnablePaging(true); + CreateContent(TOP_CONTENT_MAIN_SIZE + HEIGHT); + CreateContent(TOP_CONTENT_MAIN_SIZE); + ViewStackProcessor::GetInstance()->Pop(); + ScrollModelNG nestModel = CreateNestScroll(); + nestModel.SetNestedScroll(nestedOpt); + nestModel.SetEnablePaging(true); + CreateContent(); + CreateScrollDone(); + + /** + * @tc.steps: step2. Drag up the scroll and Drag down the nest + * @tc.expected: CanOverScroll is false + */ + GestureEvent info; + auto dragDelta = -100.f; + info.SetMainDelta(dragDelta); + auto scrollable = pattern_->GetScrollableEvent()->GetScrollable(); + scrollable->HandleDragStart(info); + scrollable->HandleDragEnd(info); + info.SetMainDelta(-dragDelta / 2); + auto nestScrollable = nestPattern_->GetScrollableEvent()->GetScrollable(); + nestScrollable->HandleDragStart(info); + nestScrollable->HandleDragEnd(info); + FlushUITasks(); + EXPECT_FALSE(nestPattern_->GetCanOverScroll()); +} + } // namespace OHOS::Ace::NG