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