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 "scroll_test_ng.h"
17 
18 namespace OHOS::Ace::NG {
19 namespace {} // namespace
20 
21 class ScrolleInnerTestNg : public ScrollTestNg {
22 public:
23 };
24 
25 /**
26  * @tc.name: SetMainModeSize001
27  * @tc.desc: Test SetMainModeSize
28  * @tc.type: FUNC
29  */
30 HWTEST_F(ScrolleInnerTestNg, SetMainModeSize001, TestSize.Level1)
31 {
32     /**
33      * @tc.steps: step1. Create scrollBarOverlayModifier, set positionMode_ is BOTTOM
34      * @tc.expected: modifer's barWidth_ is equal to the width of size
35      */
36     ScrollBarOverlayModifier modifer;
37     modifer.SetPositionMode(PositionMode::BOTTOM);
38     auto width = 1.0;
39     auto hight = 1.0;
40     modifer.SetMainModeSize(Size(width, hight));
41     EXPECT_EQ(modifer.barWidth_, width);
42 }
43 
44 /**
45  * @tc.name: SetCrossModeSize001
46  * @tc.desc: Test SetCrossModeSize
47  * @tc.type: FUNC
48  */
49 HWTEST_F(ScrolleInnerTestNg, SetCrossModeSize001, TestSize.Level1)
50 {
51     /**
52      * @tc.steps: step1. Create scrollBarOverlayModifier, set positionMode_ is BOTTOM
53      * @tc.expected: modifer's barHeight_ is equal to the hight of size
54      */
55     ScrollBarOverlayModifier modifer;
56     modifer.SetPositionMode(PositionMode::BOTTOM);
57     auto width = 1.0;
58     auto hight = 1.0;
59     modifer.SetCrossModeSize(Size(width, hight));
60     EXPECT_EQ(modifer.barHeight_, hight);
61 }
62 
63 /**
64  * @tc.name: SetCrossModeSize002
65  * @tc.desc: Test SetCrossModeSize
66  * @tc.type: FUNC
67  */
68 HWTEST_F(ScrolleInnerTestNg, SetCrossModeSize002, TestSize.Level1)
69 {
70     /**
71      * @tc.steps: step1. Create scrollBarOverlayModifier, set positionMode_ is not BOTTOM
72      * @tc.expected: modifer's barWidth_ is equal to the width of size
73      */
74     auto width = 1.0;
75     auto hight = 1.0;
76     ScrollBarOverlayModifier modifer;
77     modifer.SetPositionMode(PositionMode::LEFT);
78     modifer.SetCrossModeSize(Size(width, hight));
79     EXPECT_EQ(modifer.barWidth_, width);
80 }
81 
82 /**
83  * @tc.name: SetMainModeOffset001
84  * @tc.desc: Test SetMainModeOffset
85  * @tc.type: FUNC
86  */
87 HWTEST_F(ScrolleInnerTestNg, SetMainModeOffset001, TestSize.Level1)
88 {
89     /**
90      * @tc.steps: step1. Create scrollBarOverlayModifier, set positionMode_ is BOTTOM
91      * @tc.expected: modifer's barX_ is equal to the width of x
92      */
93     auto x = 1.f;
94     auto y = 2.f;
95     ScrollBarOverlayModifier modifer;
96     modifer.SetPositionMode(PositionMode::BOTTOM);
97     modifer.SetMainModeOffset(Offset(x, y));
98     EXPECT_EQ(modifer.barX_, x);
99 }
100 
101 /**
102  * @tc.name: SetCrossModeOffset001
103  * @tc.desc: Test SetCrossModeOffset
104  * @tc.type: FUNC
105  */
106 HWTEST_F(ScrolleInnerTestNg, SetCrossModeOffset001, TestSize.Level1)
107 {
108     /**
109      * @tc.steps: step1. Create scrollBarOverlayModifier, set positionMode_ is BOTTOM
110      * @tc.expected: modifer's barY_ is equal to the y of Offset
111      */
112     auto x = 1.f;
113     auto y = 1.f;
114     ScrollBarOverlayModifier modifer;
115     modifer.SetPositionMode(PositionMode::BOTTOM);
116     modifer.SetCrossModeOffset(Offset(x, y));
117     EXPECT_EQ(modifer.barY_, y);
118 }
119 
120 /**
121  * @tc.name: GetHoverOffset001
122  * @tc.desc: Test GetHoverOffset
123  * @tc.type: FUNC
124  */
125 HWTEST_F(ScrolleInnerTestNg, GetHoverOffset001, TestSize.Level1)
126 {
127     /**
128      * @tc.steps: step1. Create scrollBarOverlayModifier, set positionMode_ is RIGHT
129      * @tc.expected: modifer's Offset is assigned a correlation value
130      */
131     auto width = 1.0;
132     auto hight = 1.0;
133     ScrollBarOverlayModifier modifer;
134     modifer.SetPositionMode(PositionMode::RIGHT);
135     auto offsetResult = width - modifer.barWidth_->Get();
136     EXPECT_EQ(modifer.GetHoverOffset(Size(width, hight)), Offset(offsetResult, 0.f));
137 
138     /**
139      * @tc.steps: step2. Create scrollBarOverlayModifier, set positionMode_ is BOTTOM
140      * @tc.expected: modifer's Offset is assigned a correlation value
141      */
142     modifer.SetPositionMode(PositionMode::BOTTOM);
143     modifer.GetHoverOffset(Size(width, hight));
144     offsetResult = hight - modifer.barHeight_->Get();
145     EXPECT_EQ(modifer.GetHoverOffset(Size(width, hight)), Offset(0.f, offsetResult));
146 
147     /**
148      * @tc.steps: step3. Create scrollBarOverlayModifier, set positionMode_ is LEFT
149      * @tc.expected: modifer's Offset is assigned a correlation value
150      */
151     modifer.SetPositionMode(PositionMode::LEFT);
152     modifer.GetHoverOffset(Size(width, hight));
153     EXPECT_EQ(modifer.GetHoverOffset(Size(width, hight)), Offset::Zero());
154 }
155 } // namespace OHOS::Ace::NG
156