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 <gtest/gtest.h>
17
18 #include "ge_visual_effect_impl.h"
19
20 using namespace testing;
21 using namespace testing::ext;
22
23 namespace OHOS {
24 namespace GraphicsEffectEngine {
25
26 using namespace Rosen;
27
28 class GEVisualEffectImplTest : public testing::Test {
29 public:
30 static void SetUpTestCase();
31 static void TearDownTestCase();
32 void SetUp() override;
33 void TearDown() override;
34 };
35
SetUpTestCase(void)36 void GEVisualEffectImplTest::SetUpTestCase(void) {}
TearDownTestCase(void)37 void GEVisualEffectImplTest::TearDownTestCase(void) {}
38
SetUp()39 void GEVisualEffectImplTest::SetUp() {}
40
TearDown()41 void GEVisualEffectImplTest::TearDown() {}
42
43 /**
44 * @tc.name: GetFilterType001
45 * @tc.desc: Verify function GetFilterType
46 * @tc.type:FUNC
47 */
48 HWTEST_F(GEVisualEffectImplTest, GetFilterType001, TestSize.Level1)
49 {
50 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_KAWASE_BLUR);
51 EXPECT_EQ(geVisualEffectImpl1.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::KAWASE_BLUR);
52
53 Drawing::GEVisualEffectImpl geVisualEffectImpl2(Drawing::GE_FILTER_GREY);
54 EXPECT_EQ(geVisualEffectImpl2.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::GREY);
55
56 Drawing::GEVisualEffectImpl geVisualEffectImpl3(Drawing::GE_FILTER_AI_BAR);
57 EXPECT_EQ(geVisualEffectImpl3.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::AIBAR);
58
59 Drawing::GEVisualEffectImpl geVisualEffectImpl4(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
60 EXPECT_EQ(geVisualEffectImpl4.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
61
62 Drawing::GEVisualEffectImpl geVisualEffectImplMESA(Drawing::GE_FILTER_MESA_BLUR);
63 EXPECT_EQ(geVisualEffectImplMESA.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::MESA_BLUR);
64
65 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
66 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::WATER_RIPPLE);
67 }
68
69 /**
70 * @tc.name: SetParam001
71 * @tc.desc: Verify function SetParam
72 * @tc.type:FUNC
73 */
74 HWTEST_F(GEVisualEffectImplTest, SetParam001, TestSize.Level1)
75 {
76 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_KAWASE_BLUR);
77
78 // 1 set for Kawase blur RADIUS, linear gradient blur DIRECTION
79 int32_t paramInt32{1};
80 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_KAWASE_BLUR_RADIUS, paramInt32);
81 ASSERT_NE(geVisualEffectImpl1.GetKawaseParams(), nullptr);
82 EXPECT_EQ(geVisualEffectImpl1.GetKawaseParams()->radius, paramInt32);
83
84 Drawing::GEVisualEffectImpl geVisualEffectImpl2(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
85 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_DIRECTION, paramInt32);
86 ASSERT_NE(geVisualEffectImpl2.GetLinearGradientBlurParams(), nullptr);
87 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->direction, paramInt32);
88
89 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_IS_OFF_SCREEN, true);
90 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->isOffscreenCanvas, true);
91
92 // 1.f is linear gradient blur params:blurRadius,geoWidth,geoHeight,tranX,tranY
93 float paramfloat{1.f};
94 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_RADIUS, paramfloat);
95 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_GEO_WIDTH, paramfloat);
96 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_GEO_HEIGHT, paramfloat);
97 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_TRAN_X, paramfloat);
98 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_TRAN_Y, paramfloat);
99 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->blurRadius, paramfloat);
100 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->geoWidth, paramfloat);
101 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->geoHeight, paramfloat);
102 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->tranX, paramfloat);
103 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->tranY, paramfloat);
104
105 auto image = std::make_shared<Drawing::Image>();
106 auto colorFilter = std::make_shared<Drawing::ColorFilter>(Drawing::ColorFilter::FilterType::NO_TYPE);
107 Drawing::Matrix mat;
108 int64_t paramInt64{1}; // 1 is linear gradient blur params:CANVAS_MAT
109 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_CANVAS_MAT, paramInt64);
110 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR, image);
111 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR, colorFilter);
112
113 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_CANVAS_MAT, mat);
114 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->mat, mat);
115
116 // 0.1f, 0.1f is linear gradient blur params: FRACTION_STOPS
117 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_FRACTION_STOPS, {{0.1f, 0.1f}});
118 std::vector<std::pair<float, float>> expectFraStops {{0.1f, 0.1f}};
119 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->fractionStops, expectFraStops);
120 }
121
122 /**
123 * @tc.name: SetParam002
124 * @tc.desc: Verify function SetParam
125 * @tc.type:FUNC
126 */
127 HWTEST_F(GEVisualEffectImplTest, SetParam002, TestSize.Level1)
128 {
129 // 1.0f is params of AI Bar blur, Grey blur
130 float paramfloat { 1.0f };
131 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_AI_BAR);
132 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_LOW, paramfloat);
133 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_HIGH, paramfloat);
134 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_THRESHOLD, paramfloat);
135 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_OPACITY, paramfloat);
136 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_SATURATION, paramfloat);
137 ASSERT_NE(geVisualEffectImpl1.GetAIBarParams(), nullptr);
138 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarLow, paramfloat);
139 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarHigh, paramfloat);
140 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarThreshold, paramfloat);
141 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarOpacity, paramfloat);
142 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarSaturation, paramfloat);
143
144 Drawing::GEVisualEffectImpl geVisualEffectImpl2(Drawing::GE_FILTER_GREY);
145 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_GREY_COEF_1, paramfloat);
146 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_GREY_COEF_2, paramfloat);
147 ASSERT_NE(geVisualEffectImpl2.GetGreyParams(), nullptr);
148 EXPECT_EQ(geVisualEffectImpl2.GetGreyParams()->greyCoef1, paramfloat);
149 EXPECT_EQ(geVisualEffectImpl2.GetGreyParams()->greyCoef2, paramfloat);
150 }
151
152 /**
153 * @tc.name: SetParam003
154 * @tc.desc: Verify function SetParam no filter type
155 * @tc.type:FUNC
156 */
157 HWTEST_F(GEVisualEffectImplTest, SetParam003, TestSize.Level1)
158 {
159 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
160 geVisualEffectImpl.SetParam("", 0); // 0 invalid params
161 geVisualEffectImpl.SetParam("", false);
162 geVisualEffectImpl.SetParam("", 1.0f); // 1.0f invalid params
163 geVisualEffectImpl.SetParam("", 1.0f); // 1.0f invalid params
164 Drawing::Matrix blurMat;
165 geVisualEffectImpl.SetParam("", blurMat);
166 std::vector<std::pair<float, float>> blurFractionStops;
167 geVisualEffectImpl.SetParam("", blurFractionStops);
168 geVisualEffectImpl.SetAIBarParams("", 1.0f); // 1.0f invalid params
169 geVisualEffectImpl.SetGreyParams("", 1.0f); // 1.0f invalid params
170 geVisualEffectImpl.SetLinearGradientBlurParams("", 1.0f); // 1.0f invalid params
171 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::NONE);
172 }
173
174 /**
175 * @tc.name: SetParam004
176 * @tc.desc: Verify function SetParam for param is nullptr when filtertype is NONE
177 * @tc.type:FUNC
178 */
179 HWTEST_F(GEVisualEffectImplTest, SetParam004, TestSize.Level1)
180 {
181 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
182 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::KAWASE_BLUR);
183 geVisualEffectImpl.SetParam("", 0); // 0 invalid params
184
185 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
186 geVisualEffectImpl.SetParam("", 0); // 0 invalid params
187 geVisualEffectImpl.SetParam("", false);
188 Drawing::Matrix blurMat;
189 geVisualEffectImpl.SetParam("", blurMat);
190 std::vector<std::pair<float, float>> blurFractionStops;
191 geVisualEffectImpl.SetParam("", blurFractionStops);
192
193 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
194 }
195
196 /**
197 * @tc.name: SetParam005
198 * @tc.desc: Verify function SetParam for tag is invalid
199 * @tc.type:FUNC
200 */
201 HWTEST_F(GEVisualEffectImplTest, SetParam005, TestSize.Level1)
202 {
203 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_KAWASE_BLUR);
204 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_KAWASE_BLUR_RADIUS, 2); // 2 blur radius
205 EXPECT_EQ(geVisualEffectImpl.GetKawaseParams()->radius, 2);
206 geVisualEffectImpl.SetParam("", 3); // 3 blur radius, but invalid
207 EXPECT_NE(geVisualEffectImpl.GetKawaseParams()->radius, 3);
208 }
209
210 /**
211 * @tc.name: SetParam006
212 * @tc.desc: Verify function SetParam for tag is invalid
213 * @tc.type:FUNC
214 */
215 HWTEST_F(GEVisualEffectImplTest, SetParam006, TestSize.Level1)
216 {
217 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
218 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_DIRECTION, 2); // 2 blur direction
219 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->direction, 2);
220 geVisualEffectImpl.SetParam("", 3); // 3 blur direction, but invalid
221 EXPECT_NE(geVisualEffectImpl.GetLinearGradientBlurParams()->direction, 3);
222
223 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_IS_OFF_SCREEN, true);
224 EXPECT_TRUE(geVisualEffectImpl.GetLinearGradientBlurParams()->isOffscreenCanvas);
225 geVisualEffectImpl.SetParam("", false);
226 EXPECT_TRUE(geVisualEffectImpl.GetLinearGradientBlurParams()->isOffscreenCanvas);
227
228 Drawing::Matrix blurMat;
229 blurMat.Set(Drawing::Matrix::SKEW_X, 0.002f); // 0.002f skew x
230 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_CANVAS_MAT, blurMat);
231 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->mat, blurMat);
232 Drawing::Matrix mat;
233 mat.Set(Drawing::Matrix::SKEW_X, 0.005f); // 0.005f skew x
234 geVisualEffectImpl.SetParam("", mat);
235 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->mat, blurMat);
236
237 std::vector<std::pair<float, float>> blurFractionStops {{0.1f, 0.1f}};
238 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_FRACTION_STOPS, blurFractionStops);
239 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->fractionStops, blurFractionStops);
240 std::vector<std::pair<float, float>> expectFractionStops {{0.2f, 0.2f}};
241 geVisualEffectImpl.SetParam("", expectFractionStops);
242 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->fractionStops, blurFractionStops);
243 }
244
245 /**
246 * @tc.name: SetParam007
247 * @tc.desc: Verify function SetParam for action is invalid
248 * @tc.type:FUNC
249 */
250 HWTEST_F(GEVisualEffectImplTest, SetParam007, TestSize.Level1)
251 {
252 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_AI_BAR);
253 geVisualEffectImpl.SetAIBarParams(Drawing::GE_FILTER_AI_BAR_LOW, 1.0f);
254 EXPECT_EQ(geVisualEffectImpl.GetAIBarParams()->aiBarLow, 1.0f);
255 geVisualEffectImpl.SetAIBarParams("", 2.0f);
256 EXPECT_NE(geVisualEffectImpl.GetAIBarParams()->aiBarLow, 2.0f);
257 }
258
259 /**
260 * @tc.name: SetParam008
261 * @tc.desc: Verify function SetParam for action is invalid
262 * @tc.type:FUNC
263 */
264 HWTEST_F(GEVisualEffectImplTest, SetParam008, TestSize.Level1)
265 {
266 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_GREY);
267 geVisualEffectImpl.SetGreyParams(Drawing::GE_FILTER_GREY_COEF_1, 1.0f);
268 EXPECT_EQ(geVisualEffectImpl.GetGreyParams()->greyCoef1, 1.0f);
269 geVisualEffectImpl.SetGreyParams("", 2.0f);
270 EXPECT_NE(geVisualEffectImpl.GetGreyParams()->greyCoef1, 2.0f);
271 }
272
273 /**
274 * @tc.name: SetParam009
275 * @tc.desc: Verify function SetParam for action is invalid
276 * @tc.type:FUNC
277 */
278 HWTEST_F(GEVisualEffectImplTest, SetParam009, TestSize.Level1)
279 {
280 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
281 geVisualEffectImpl.SetLinearGradientBlurParams(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_RADIUS, 1.0f);
282 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->blurRadius, 1.0f);
283 geVisualEffectImpl.SetLinearGradientBlurParams("", 2.0f);
284 EXPECT_NE(geVisualEffectImpl.GetLinearGradientBlurParams()->blurRadius, 2.0f);
285 }
286
287 /**
288 * @tc.name: SetParam010
289 * @tc.desc: Verify function SetParam for action is invalid
290 * @tc.type:FUNC
291 */
292 HWTEST_F(GEVisualEffectImplTest, SetParam010, TestSize.Level1)
293 {
294 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
295 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_PROGRESS, 0.5f);
296 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->progress, 0.5f);
297 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_X, 0.5f);
298 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterX, 0.5f);
299 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_Y, 0.5f);
300 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterY, 0.5f);
301 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_MODE, 1.0f);
302 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleMode, 1.0f);
303 }
304
305 /**
306 * @tc.name: SetParam011
307 * @tc.desc: Verify function SetParam for action is invalid
308 * @tc.type:FUNC
309 */
310 HWTEST_F(GEVisualEffectImplTest, SetParam011, TestSize.Level1)
311 {
312 Drawing::GEVisualEffectImpl geVisualEffectImplWaterRipple(Drawing::GE_FILTER_WATER_RIPPLE);
313 Drawing::GEVisualEffectImpl geVisualEffectImplKawaseBulr(Drawing::GE_FILTER_KAWASE_BLUR);
314
315 // test invalid params setting
316 geVisualEffectImplWaterRipple.SetParam(Drawing::GE_FILTER_WATER_RIPPLE_PROGRESS, 0.5);
317 EXPECT_NE(geVisualEffectImplWaterRipple.GetWaterRippleParams()->progress, 0.5);
318
319 // test invalid params setting
320 uint32_t paramUint32{1};
321 geVisualEffectImplKawaseBulr.SetParam("GE_FILTER_KAWASE_BLUR_RADIUS", paramUint32);
322 ASSERT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams(), nullptr);
323 EXPECT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams()->radius, paramUint32);
324
325 geVisualEffectImplKawaseBulr.SetParam("GE_FILTER_KAWASE_BLUR_RADIUS", "1");
326 ASSERT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams(), nullptr);
327 EXPECT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams()->radius, paramUint32);
328 }
329
330 /**
331 * @tc.name: SetWaterRippleParams001
332 * @tc.desc: Verify function SetWaterRippleParams is invalid
333 * @tc.type:FUNC
334 */
335 HWTEST_F(GEVisualEffectImplTest, SetWaterRippleParams001, TestSize.Level1)
336 {
337 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
338 ASSERT_NE(geVisualEffectImpl.waterRippleParams_, nullptr);
339 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_PROGRESS, 0.5f);
340 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->progress, 0.5f);
341 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_X, 0.5f);
342 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterX, 0.5f);
343 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_Y, 0.5f);
344 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterY, 0.5f);
345 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_MODE, 1.0f);
346 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleMode, 1.0f);
347 }
348
349 /**
350 * @tc.name: SetWaterRippleParams002
351 * @tc.desc: Verify function SetWaterRippleParams
352 * @tc.type:FUNC
353 */
354 HWTEST_F(GEVisualEffectImplTest, SetWaterRippleParams002, TestSize.Level1)
355 {
356 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
357
358 // test invalid params setting
359 geVisualEffectImpl.SetWaterRippleParams("GE_FILTER_WATER_RIPPLE_PROGRESS", 0.5f);
360 EXPECT_NE(geVisualEffectImpl.GetWaterRippleParams()->progress, 0.5f);
361 }
362
363 /**
364 * @tc.name: MakeWaterRippleParams001
365 * @tc.desc: Verify function MakeWaterRippleParams is invalid
366 * @tc.type:FUNC
367 */
368 HWTEST_F(GEVisualEffectImplTest, MakeWaterRippleParams001, TestSize.Level1)
369 {
370 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
371 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::WATER_RIPPLE);
372 ASSERT_EQ(geVisualEffectImpl.GetWaterRippleParams(), nullptr);
373 geVisualEffectImpl.MakeWaterRippleParams();
374 ASSERT_NE(geVisualEffectImpl.GetWaterRippleParams(), nullptr);
375 }
376
377 /**
378 * @tc.name: GetMESAParams001
379 * @tc.desc: Verify function GetMESAParams
380 * @tc.type:FUNC
381 */
382 HWTEST_F(GEVisualEffectImplTest, GetMESAParams001, TestSize.Level1)
383 {
384 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_MESA_BLUR);
385 // 0.0f, 1, 1.0f: mesa blur params
386 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_RADIUS, 1);
387 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_GREY_COEF_1, 1.0f);
388 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_GREY_COEF_2, 1.0f);
389 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_X, 0.0f);
390 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_Y, 0.0f);
391 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_Z, 0.0f);
392 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_W, 0.0f);
393 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_TILE_MODE, 0);
394 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_WIDTH, 0.0f);
395 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_HEIGHT, 0.0f);
396 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->radius, 1);
397 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->greyCoef1, 1.0f);
398 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->greyCoef1, 1.0f);
399 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetX, 0.0f);
400 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetY, 0.0f);
401 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetZ, 0.0f);
402 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetW, 0.0f);
403 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->tileMode, 0);
404 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->width, 0.0f);
405 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->height, 0.0f);
406 }
407 } // namespace GraphicsEffectEngine
408 } // namespace OHOS
409