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_double_ripple_shader_mask.h"
19 #include "ge_radial_gradient_shader_mask.h"
20 #include "ge_ripple_shader_mask.h"
21 #include "ge_visual_effect_impl.h"
22 #include "ge_wave_gradient_shader_mask.h"
23 #include "utils/rect.h"
24
25 using namespace testing;
26 using namespace testing::ext;
27
28 namespace OHOS {
29 namespace GraphicsEffectEngine {
30
31 using namespace Rosen;
32
33 class GEVisualEffectImplTest : public testing::Test {
34 public:
35 static void SetUpTestCase();
36 static void TearDownTestCase();
37 void SetUp() override;
38 void TearDown() override;
39 };
40
SetUpTestCase(void)41 void GEVisualEffectImplTest::SetUpTestCase(void) {}
42
TearDownTestCase(void)43 void GEVisualEffectImplTest::TearDownTestCase(void) {}
44
SetUp()45 void GEVisualEffectImplTest::SetUp() {}
46
TearDown()47 void GEVisualEffectImplTest::TearDown() {}
48
49 /**
50 * @tc.name: GetFilterType_001
51 * @tc.desc: Verify function GetFilterType
52 * @tc.type:FUNC
53 */
54 HWTEST_F(GEVisualEffectImplTest, GetFilterType_001, TestSize.Level2)
55 {
56 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_KAWASE_BLUR);
57 EXPECT_EQ(geVisualEffectImpl1.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::KAWASE_BLUR);
58
59 Drawing::GEVisualEffectImpl geVisualEffectImpl2(Drawing::GE_FILTER_GREY);
60 EXPECT_EQ(geVisualEffectImpl2.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::GREY);
61
62 Drawing::GEVisualEffectImpl geVisualEffectImpl3(Drawing::GE_FILTER_AI_BAR);
63 EXPECT_EQ(geVisualEffectImpl3.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::AIBAR);
64
65 Drawing::GEVisualEffectImpl geVisualEffectImpl4(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
66 EXPECT_EQ(geVisualEffectImpl4.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
67
68 Drawing::GEVisualEffectImpl geVisualEffectImplMESA(Drawing::GE_FILTER_MESA_BLUR);
69 EXPECT_EQ(geVisualEffectImplMESA.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::MESA_BLUR);
70
71 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
72 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::WATER_RIPPLE);
73
74 Drawing::GEVisualEffectImpl geVisualEffectImplSound(Drawing::GE_FILTER_SOUND_WAVE);
75 EXPECT_EQ(geVisualEffectImplSound.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::SOUND_WAVE);
76
77 Drawing::GEVisualEffectImpl geVisualEffectImplEdgeLight(Drawing::GE_FILTER_EDGE_LIGHT);
78 EXPECT_EQ(geVisualEffectImplEdgeLight.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::EDGE_LIGHT);
79
80 Drawing::GEVisualEffectImpl geVisualEffectImplDispersion(Drawing::GE_FILTER_DISPERSION);
81 EXPECT_EQ(geVisualEffectImplDispersion.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::DISPERSION);
82
83 Drawing::GEVisualEffectImpl geVisualEffectImplLightCave(Drawing::GEX_SHADER_LIGHT_CAVE);
84 EXPECT_EQ(geVisualEffectImplLightCave.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::LIGHT_CAVE);
85 }
86
87 /**
88 * @tc.name: SetParam_001
89 * @tc.desc: Verify function SetParam
90 * @tc.type:FUNC
91 */
92 HWTEST_F(GEVisualEffectImplTest, SetParam_001, TestSize.Level2)
93 {
94 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_KAWASE_BLUR);
95
96 // 1 set for Kawase blur RADIUS, linear gradient blur DIRECTION
97 int32_t paramInt32 { 1 };
98 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_KAWASE_BLUR_RADIUS, paramInt32);
99 ASSERT_NE(geVisualEffectImpl1.GetKawaseParams(), nullptr);
100 EXPECT_EQ(geVisualEffectImpl1.GetKawaseParams()->radius, paramInt32);
101
102 Drawing::GEVisualEffectImpl geVisualEffectImpl2(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
103 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_DIRECTION, paramInt32);
104 ASSERT_NE(geVisualEffectImpl2.GetLinearGradientBlurParams(), nullptr);
105 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->direction, paramInt32);
106
107 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_IS_OFF_SCREEN, true);
108 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->isOffscreenCanvas, true);
109
110 // 1.f is linear gradient blur params:blurRadius,geoWidth,geoHeight,tranX,tranY
111 float paramfloat { 1.f };
112 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_RADIUS, paramfloat);
113 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_GEO_WIDTH, paramfloat);
114 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_GEO_HEIGHT, paramfloat);
115 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_TRAN_X, paramfloat);
116 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_TRAN_Y, paramfloat);
117 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->blurRadius, paramfloat);
118 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->geoWidth, paramfloat);
119 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->geoHeight, paramfloat);
120 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->tranX, paramfloat);
121 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->tranY, paramfloat);
122
123 auto image = std::make_shared<Drawing::Image>();
124 auto colorFilter = std::make_shared<Drawing::ColorFilter>(Drawing::ColorFilter::FilterType::NO_TYPE);
125 Drawing::Matrix mat;
126 int64_t paramInt64 { 1 }; // 1 is linear gradient blur params:CANVAS_MAT
127 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_CANVAS_MAT, paramInt64);
128 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR, image);
129 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR, colorFilter);
130
131 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_CANVAS_MAT, mat);
132 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->mat, mat);
133
134 // 0.1f, 0.1f is linear gradient blur params: FRACTION_STOPS
135 std::vector<std::pair<float, float>> expectFraStops { { 0.1f, 0.1f } };
136 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_FRACTION_STOPS, expectFraStops);
137 EXPECT_EQ(geVisualEffectImpl2.GetLinearGradientBlurParams()->fractionStops, expectFraStops);
138 }
139
140 /**
141 * @tc.name: SetParam_002
142 * @tc.desc: Verify function SetParam
143 * @tc.type:FUNC
144 */
145 HWTEST_F(GEVisualEffectImplTest, SetParam_002, TestSize.Level1)
146 {
147 // 1.0f is params of AI Bar blur, Grey blur
148 float paramfloat { 1.0f };
149 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_AI_BAR);
150 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_LOW, paramfloat);
151 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_HIGH, paramfloat);
152 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_THRESHOLD, paramfloat);
153 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_OPACITY, paramfloat);
154 geVisualEffectImpl1.SetParam(Drawing::GE_FILTER_AI_BAR_SATURATION, paramfloat);
155 ASSERT_NE(geVisualEffectImpl1.GetAIBarParams(), nullptr);
156 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarLow, paramfloat);
157 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarHigh, paramfloat);
158 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarThreshold, paramfloat);
159 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarOpacity, paramfloat);
160 EXPECT_EQ(geVisualEffectImpl1.GetAIBarParams()->aiBarSaturation, paramfloat);
161
162 Drawing::GEVisualEffectImpl geVisualEffectImpl2(Drawing::GE_FILTER_GREY);
163 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_GREY_COEF_1, paramfloat);
164 geVisualEffectImpl2.SetParam(Drawing::GE_FILTER_GREY_COEF_2, paramfloat);
165 ASSERT_NE(geVisualEffectImpl2.GetGreyParams(), nullptr);
166 EXPECT_EQ(geVisualEffectImpl2.GetGreyParams()->greyCoef1, paramfloat);
167 EXPECT_EQ(geVisualEffectImpl2.GetGreyParams()->greyCoef2, paramfloat);
168 }
169
170 /**
171 * @tc.name: SetParam_003
172 * @tc.desc: Verify function SetParam no filter type
173 * @tc.type:FUNC
174 */
175 HWTEST_F(GEVisualEffectImplTest, SetParam_003, TestSize.Level1)
176 {
177 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
178 geVisualEffectImpl.SetParam("", 0); // 0 invalid params
179 geVisualEffectImpl.SetParam("", false);
180 geVisualEffectImpl.SetParam("", 1.0f); // 1.0f invalid params
181 geVisualEffectImpl.SetParam("", 1.0f); // 1.0f invalid params
182 Drawing::Matrix blurMat;
183 geVisualEffectImpl.SetParam("", blurMat);
184 std::vector<std::pair<float, float>> blurFractionStops;
185 geVisualEffectImpl.SetParam("", blurFractionStops);
186 geVisualEffectImpl.SetAIBarParams("", 1.0f); // 1.0f invalid params
187 geVisualEffectImpl.SetGreyParams("", 1.0f); // 1.0f invalid params
188 geVisualEffectImpl.SetLinearGradientBlurParams("", 1.0f); // 1.0f invalid params
189 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::NONE);
190 }
191
192 /**
193 * @tc.name: SetParam_004
194 * @tc.desc: Verify function SetParam for param is nullptr when filtertype is NONE
195 * @tc.type:FUNC
196 */
197 HWTEST_F(GEVisualEffectImplTest, SetParam_004, TestSize.Level1)
198 {
199 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
200 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::KAWASE_BLUR);
201 geVisualEffectImpl.SetParam("", 0); // 0 invalid params
202
203 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
204 geVisualEffectImpl.SetParam("", 0); // 0 invalid params
205 geVisualEffectImpl.SetParam("", false);
206 Drawing::Matrix blurMat;
207 geVisualEffectImpl.SetParam("", blurMat);
208 std::vector<std::pair<float, float>> blurFractionStops;
209 geVisualEffectImpl.SetParam("", blurFractionStops);
210
211 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
212 }
213
214 /**
215 * @tc.name: SetParam_005
216 * @tc.desc: Verify function SetParam for tag is invalid
217 * @tc.type:FUNC
218 */
219 HWTEST_F(GEVisualEffectImplTest, SetParam_005, TestSize.Level1)
220 {
221 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_KAWASE_BLUR);
222 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_KAWASE_BLUR_RADIUS, 2); // 2 blur radius
223 EXPECT_EQ(geVisualEffectImpl.GetKawaseParams()->radius, 2);
224 geVisualEffectImpl.SetParam("", 3); // 3 blur radius, but invalid
225 EXPECT_NE(geVisualEffectImpl.GetKawaseParams()->radius, 3);
226 }
227
228 /**
229 * @tc.name: SetParam_006
230 * @tc.desc: Verify function SetParam for tag is invalid
231 * @tc.type:FUNC
232 */
233 HWTEST_F(GEVisualEffectImplTest, SetParam_006, TestSize.Level1)
234 {
235 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
236 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_DIRECTION, 2); // 2 blur direction
237 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->direction, 2);
238 geVisualEffectImpl.SetParam("", 3); // 3 blur direction, but invalid
239 EXPECT_NE(geVisualEffectImpl.GetLinearGradientBlurParams()->direction, 3);
240
241 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_IS_OFF_SCREEN, true);
242 EXPECT_TRUE(geVisualEffectImpl.GetLinearGradientBlurParams()->isOffscreenCanvas);
243 geVisualEffectImpl.SetParam("", false);
244 EXPECT_TRUE(geVisualEffectImpl.GetLinearGradientBlurParams()->isOffscreenCanvas);
245
246 Drawing::Matrix blurMat;
247 blurMat.Set(Drawing::Matrix::SKEW_X, 0.002f); // 0.002f skew x
248 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_CANVAS_MAT, blurMat);
249 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->mat, blurMat);
250 Drawing::Matrix mat;
251 mat.Set(Drawing::Matrix::SKEW_X, 0.005f); // 0.005f skew x
252 geVisualEffectImpl.SetParam("", mat);
253 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->mat, blurMat);
254
255 std::vector<std::pair<float, float>> blurFractionStops { { 0.1f, 0.1f } };
256 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_FRACTION_STOPS, blurFractionStops);
257 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->fractionStops, blurFractionStops);
258 std::vector<std::pair<float, float>> expectFractionStops { { 0.2f, 0.2f } };
259 geVisualEffectImpl.SetParam("", expectFractionStops);
260 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->fractionStops, blurFractionStops);
261 }
262
263 /**
264 * @tc.name: SetParam_007
265 * @tc.desc: Verify function SetParam for action is invalid
266 * @tc.type:FUNC
267 */
268 HWTEST_F(GEVisualEffectImplTest, SetParam_007, TestSize.Level1)
269 {
270 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_AI_BAR);
271 geVisualEffectImpl.SetAIBarParams(Drawing::GE_FILTER_AI_BAR_LOW, 1.0f);
272 EXPECT_EQ(geVisualEffectImpl.GetAIBarParams()->aiBarLow, 1.0f);
273 geVisualEffectImpl.SetAIBarParams("", 2.0f);
274 EXPECT_NE(geVisualEffectImpl.GetAIBarParams()->aiBarLow, 2.0f);
275 }
276
277 /**
278 * @tc.name: SetParam_008
279 * @tc.desc: Verify function SetParam for action is invalid
280 * @tc.type:FUNC
281 */
282 HWTEST_F(GEVisualEffectImplTest, SetParam_008, TestSize.Level1)
283 {
284 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_GREY);
285 geVisualEffectImpl.SetGreyParams(Drawing::GE_FILTER_GREY_COEF_1, 1.0f);
286 EXPECT_EQ(geVisualEffectImpl.GetGreyParams()->greyCoef1, 1.0f);
287 geVisualEffectImpl.SetGreyParams("", 2.0f);
288 EXPECT_NE(geVisualEffectImpl.GetGreyParams()->greyCoef1, 2.0f);
289 }
290
291 /**
292 * @tc.name: SetParam_009
293 * @tc.desc: Verify function SetParam for action is invalid
294 * @tc.type:FUNC
295 */
296 HWTEST_F(GEVisualEffectImplTest, SetParam_009, TestSize.Level1)
297 {
298 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR);
299 geVisualEffectImpl.SetLinearGradientBlurParams(Drawing::GE_FILTER_LINEAR_GRADIENT_BLUR_RADIUS, 1.0f);
300 EXPECT_EQ(geVisualEffectImpl.GetLinearGradientBlurParams()->blurRadius, 1.0f);
301 geVisualEffectImpl.SetLinearGradientBlurParams("", 2.0f);
302 EXPECT_NE(geVisualEffectImpl.GetLinearGradientBlurParams()->blurRadius, 2.0f);
303 }
304
305 /**
306 * @tc.name: SetParam_010
307 * @tc.desc: Verify function SetParam for action is invalid
308 * @tc.type:FUNC
309 */
310 HWTEST_F(GEVisualEffectImplTest, SetParam_010, TestSize.Level1)
311 {
312 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
313 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_PROGRESS, 0.5f);
314 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->progress, 0.5f);
315 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_X, 0.5f);
316 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterX, 0.5f);
317 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_Y, 0.5f);
318 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterY, 0.5f);
319 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_MODE, 1.0f);
320 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleMode, 1.0f);
321 }
322
323 /**
324 * @tc.name: SetParam_011
325 * @tc.desc: Verify function SetParam for action is invalid
326 * @tc.type:FUNC
327 */
328 HWTEST_F(GEVisualEffectImplTest, SetParam_011, TestSize.Level1)
329 {
330 Drawing::GEVisualEffectImpl geVisualEffectImplWaterRipple(Drawing::GE_FILTER_WATER_RIPPLE);
331 Drawing::GEVisualEffectImpl geVisualEffectImplKawaseBulr(Drawing::GE_FILTER_KAWASE_BLUR);
332
333 // test invalid params setting
334 geVisualEffectImplWaterRipple.SetParam(Drawing::GE_FILTER_WATER_RIPPLE_PROGRESS, 0.5);
335 EXPECT_NE(geVisualEffectImplWaterRipple.GetWaterRippleParams()->progress, 0.5);
336
337 // test invalid params setting
338 uint32_t paramUint32 { 1 };
339 geVisualEffectImplKawaseBulr.SetParam("GE_FILTER_KAWASE_BLUR_RADIUS", paramUint32);
340 ASSERT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams(), nullptr);
341 EXPECT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams()->radius, paramUint32);
342
343 geVisualEffectImplKawaseBulr.SetParam("GE_FILTER_KAWASE_BLUR_RADIUS", "1");
344 ASSERT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams(), nullptr);
345 EXPECT_NE(geVisualEffectImplKawaseBulr.GetKawaseParams()->radius, paramUint32);
346 }
347
348 /**
349 * @tc.name: SetParam_026
350 * @tc.desc: Verify function SetParam for action is invalid
351 * @tc.type: FUNC
352 */
353 HWTEST_F(GEVisualEffectImplTest, SetParam_026, TestSize.Level1)
354 {
355 float paramFloat = 1.0f;
356 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GEX_SHADER_COLOR_GRADIENT_EFFECT);
357 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_COLOR_GRADIENT_EFFECT_COLOR_NUMBER, paramFloat);
358
359 Vector4f c4 = {0.0f, 0.0f, 0.0f, 0.0f};
360 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_COLOR_GRADIENT_EFFECT_COLOR0, c4);
361
362 std::pair<float, float> p2 = {0.0f, 0.0f};
363 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_COLOR_GRADIENT_EFFECT_POS0, p2);
364
365 ASSERT_NE(geVisualEffectImpl.GetColorGradientEffectParams(), nullptr);
366 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->colorNum_, paramFloat);
367 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->colors_[0].redF_, c4[0]);
368 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->colors_[0].greenF_, c4[1]);
369 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->colors_[0].blueF_, c4[2]);
370 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->colors_[0].alphaF_, c4[3]);
371
372 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->positions_[0].GetX(), p2.first);
373 EXPECT_EQ(geVisualEffectImpl.GetColorGradientEffectParams()->positions_[0].GetY(), p2.second);
374 }
375
376 /**
377 * @tc.name: SetSoundWaveParams001
378 * @tc.desc: Verify function SetSoundWaveParams for float
379 * @tc.type:FUNC
380 */
381 HWTEST_F(GEVisualEffectImplTest, SetSoundWaveParams001, TestSize.Level1)
382 {
383 Drawing::GEVisualEffectImpl geVisualEffectImplSoundWave(Drawing::GE_FILTER_SOUND_WAVE);
384 float colorProgress = 0.5f;
385 geVisualEffectImplSoundWave.SetParam(Drawing::GE_FILTER_SOUND_WAVE_COLORPROGRESS, colorProgress);
386 EXPECT_NE(geVisualEffectImplSoundWave.GetSoundWaveParams(), nullptr);
387
388 // test valid sound wave params setting
389 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_COLORPROGRESS, 0.5f);
390 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->colorProgress, 0.5f);
391 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_SOUNDINTENSITY, 1.0f);
392 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->soundIntensity, 1.0f);
393 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_SHOCKWAVEALPHA_A, 0.6f);
394 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->shockWaveAlphaA, 0.6f);
395 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_SHOCKWAVEALPHA_B, 1.0f);
396 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->shockWaveAlphaB, 1.0f);
397 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_SHOCKWAVEPROGRESS_A, 1.0f);
398 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->shockWaveProgressA, 1.0f);
399 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_SHOCKWAVEPROGRESS_B, 1.0f);
400 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->shockWaveProgressB, 1.0f);
401 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_TOTAL_ALPHA, 0.5f);
402 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams()->shockWaveTotalAlpha, 0.5f);
403 }
404
405 /**
406 * @tc.name: SetSoundWaveParam002
407 * @tc.desc: Verify function SetSoundWaveParams
408 * @tc.type:FUNC
409 */
410 HWTEST_F(GEVisualEffectImplTest, SetSoundWaveParam002, TestSize.Level1)
411 {
412 Drawing::GEVisualEffectImpl geVisualEffectImplSoundWave("");
413 float param = 1.2f;
414
415 // test invalid params setting
416 geVisualEffectImplSoundWave.SetSoundWaveParams(Drawing::GE_FILTER_SOUND_WAVE_COLORPROGRESS, param);
417 EXPECT_EQ(geVisualEffectImplSoundWave.GetSoundWaveParams(), nullptr);
418
419 Drawing::GEVisualEffectImpl geVisualEffectImplSoundWave1(Drawing::GE_FILTER_SOUND_WAVE);
420 EXPECT_NE(geVisualEffectImplSoundWave1.GetSoundWaveParams(), nullptr);
421
422 geVisualEffectImplSoundWave1.SetSoundWaveParams("", param);
423 EXPECT_NE(geVisualEffectImplSoundWave1.GetSoundWaveParams()->shockWaveProgressB, param);
424 }
425
426 /**
427 * @tc.name: SetParam_013
428 * @tc.desc: Verify function SetParam for action is invalid
429 * @tc.type:FUNC
430 */
431 HWTEST_F(GEVisualEffectImplTest, SetParam_013, TestSize.Level1)
432 {
433 Drawing::GEVisualEffectImpl geVisualEffectImplRippleMask(Drawing::GE_MASK_RIPPLE);
434 geVisualEffectImplRippleMask.filterType_ = Drawing::GEVisualEffectImpl::FilterType::RIPPLE_MASK;
435 geVisualEffectImplRippleMask.rippleMaskParams_ = std::make_shared<Drawing::GERippleShaderMaskParams>();
436
437 // test invalid params setting
438 float rippleRadius = 0.5f;
439 geVisualEffectImplRippleMask.SetParam("RippleMask_Radius", rippleRadius);
440 EXPECT_EQ(geVisualEffectImplRippleMask.rippleMaskParams_->radius_, rippleRadius);
441
442 float rippleWidth = 0.6f;
443 geVisualEffectImplRippleMask.SetParam("RippleMask_Width", rippleWidth);
444 EXPECT_EQ(geVisualEffectImplRippleMask.rippleMaskParams_->width_, rippleWidth);
445
446 float centerOffset = 0.7f;
447 geVisualEffectImplRippleMask.SetParam("RippleMask_Offset", centerOffset);
448 EXPECT_EQ(geVisualEffectImplRippleMask.rippleMaskParams_->widthCenterOffset_, centerOffset);
449 }
450
451 /**
452 * @tc.name: SetParam_014
453 * @tc.desc: Verify function SetParam for action is invalid
454 * @tc.type:FUNC
455 */
456 HWTEST_F(GEVisualEffectImplTest, SetParam_014, TestSize.Level1)
457 {
458 Drawing::GEVisualEffectImpl geVisualEffectImplRippleMask(Drawing::GE_MASK_RIPPLE);
459 geVisualEffectImplRippleMask.filterType_ = Drawing::GEVisualEffectImpl::FilterType::RIPPLE_MASK;
460 geVisualEffectImplRippleMask.rippleMaskParams_ = std::make_shared<Drawing::GERippleShaderMaskParams>();
461
462 std::pair<float, float> center = {0.5f, 0.5f};
463 geVisualEffectImplRippleMask.SetParam("RippleMask_Center", center);
464 EXPECT_EQ(geVisualEffectImplRippleMask.rippleMaskParams_->center_, center);
465
466
467 std::pair<float, float> factor = {0.5f, 0.5f};
468 Drawing::GEVisualEffectImpl geVisualEffectImplDisplaceDistort(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
469 geVisualEffectImplDisplaceDistort.filterType_ =
470 Drawing::GEVisualEffectImpl::FilterType::DISPLACEMENT_DISTORT_FILTER;
471 geVisualEffectImplDisplaceDistort.displacementDistortParams_ =
472 std::make_shared<Drawing::GEDisplacementDistortFilterParams>();
473 geVisualEffectImplDisplaceDistort.SetParam("DispDistort_Factor", factor);
474 EXPECT_EQ(geVisualEffectImplDisplaceDistort.displacementDistortParams_->factor_, factor);
475 }
476
477 /**
478 * @tc.name: SetParam_015
479 * @tc.desc: Verify function SetParam for action is invalid
480 * @tc.type:FUNC
481 */
482 HWTEST_F(GEVisualEffectImplTest, SetParam_015, TestSize.Level1)
483 {
484 Drawing::GERippleShaderMaskParams param;
485 auto geRippleShaderMask = std::make_shared<Drawing::GERippleShaderMask>(param);
486 auto shaderMask = std::static_pointer_cast<Drawing::GEShaderMask>(geRippleShaderMask);
487 Drawing::GEVisualEffectImpl geVisualEffectImplDisplaceDistort(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
488 geVisualEffectImplDisplaceDistort.filterType_ =
489 Drawing::GEVisualEffectImpl::FilterType::DISPLACEMENT_DISTORT_FILTER;
490 geVisualEffectImplDisplaceDistort.displacementDistortParams_ =
491 std::make_shared<Drawing::GEDisplacementDistortFilterParams>();
492 geVisualEffectImplDisplaceDistort.SetParam("DispDistort_Mask", shaderMask);
493 EXPECT_EQ(geVisualEffectImplDisplaceDistort.displacementDistortParams_->mask_, shaderMask);
494 }
495
496 /**
497 * @tc.name: SetParam_016
498 * @tc.desc: Verify function SetParam for action is invalid
499 * @tc.type:FUNC
500 */
501 HWTEST_F(GEVisualEffectImplTest, SetParam_016, TestSize.Level1)
502 {
503 constexpr size_t BEZIER_WARP_POINT_NUM = 12; // 12 anchor points of a patch
504 std::array<Drawing::Point, BEZIER_WARP_POINT_NUM> points = {{
505 {1.0f, 2.0f},
506 {3.0f, 4.0f},
507 {5.0f, 6.0f},
508 {7.0f, 8.0f},
509 {9.0f, 10.0f},
510 {11.0f, 12.0f},
511 {13.0f, 14.0f},
512 {15.0f, 16.0f},
513 {17.0f, 18.0f},
514 {19.0f, 20.0f},
515 {21.0f, 22.0f},
516 {23.0f, 24.0f}
517 }};
518 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_BEZIER_WARP);
519 geVisualEffectImpl.MakeBezierWarpParams();
520 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_BEZIER_WARP_DESTINATION_PATCH, points);
521 EXPECT_EQ(geVisualEffectImpl.bezierWarpParams_->destinationPatch, points);
522 }
523
524 /**
525 * @tc.name: SetParamEdgelight_001
526 * @tc.desc: Verify function SetParam for action is invalid
527 * @tc.type:FUNC
528 */
529 HWTEST_F(GEVisualEffectImplTest, SetParamEdgelight_001, TestSize.Level1)
530 {
531 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_EDGE_LIGHT);
532
533 geVisualEffectImpl.SetEdgeLightParams(Drawing::GE_FILTER_EDGE_LIGHT_ALPHA, 0.5f);
534 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->alpha, 0.5f);
535
536 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_EDGE_LIGHT_BLOOM, true);
537 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->bloom, true);
538
539 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_EDGE_LIGHT_BLOOM, false);
540 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->bloom, false);
541
542 Vector4f color = Vector4f{0.2f, 0.7f, 0.1f, 0.0f};
543 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_EDGE_LIGHT_COLOR, color);
544 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->color, color);
545
546 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_EDGE_LIGHT_USE_RAW_COLOR, true);
547 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->useRawColor, true);
548
549 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_EDGE_LIGHT_USE_RAW_COLOR, false);
550 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->useRawColor, false);
551
552 Drawing::GERadialGradientShaderMaskParams param;
553 auto geRadialGradientShaderMask = std::make_shared<Drawing::GERadialGradientShaderMask>(param);
554 auto shaderMask = std::static_pointer_cast<Drawing::GEShaderMask>(geRadialGradientShaderMask);
555 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_EDGE_LIGHT_MASK, shaderMask);
556 EXPECT_EQ(geVisualEffectImpl.GetEdgeLightParams()->mask, shaderMask);
557 }
558
559 /**
560 * @tc.name: SetParamBezierWarpTest_001
561 * @tc.desc: Verify function SetParam for action is valid, bezier filter adapt ng filter
562 * @tc.type:FUNC
563 */
564 HWTEST_F(GEVisualEffectImplTest, SetParamBezierWarpTest_001, TestSize.Level1)
565 {
566 constexpr size_t BEZIER_WARP_POINT_NUM = 12; // 12 anchor points of a patch
567 std::array<Drawing::Point, BEZIER_WARP_POINT_NUM> points = {{
568 {0.0f, 0.0f},
569 {0.0f, 0.0f},
570 {0.0f, 0.0f},
571 {0.0f, 0.0f},
572 {0.0f, 0.0f},
573 {0.0f, 0.0f},
574 {0.0f, 0.0f},
575 {0.0f, 0.0f},
576 {0.0f, 0.0f},
577 {0.0f, 0.0f},
578 {0.0f, 0.0f},
579 {0.0f, 0.0f}
580 }};
581 Drawing::GEVisualEffectImpl geVisualEffectImplTest(Drawing::GE_FILTER_EDGE_LIGHT);
582 EXPECT_EQ(geVisualEffectImplTest.bezierWarpParams_, nullptr);
583
584 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_BEZIER_WARP);
585 geVisualEffectImpl.MakeBezierWarpParams();
586 EXPECT_NE(geVisualEffectImpl.bezierWarpParams_, nullptr);
587
588 geVisualEffectImpl.SetBezierWarpParams(Drawing::GE_FILTER_BEZIER_WARP_CONTROL_POINT0, std::make_pair(0.5f, 0.5f));
589 EXPECT_FLOAT_EQ(geVisualEffectImpl.GetBezierWarpParams()->destinationPatch[0].GetX(), 0.5f);
590
591 geVisualEffectImpl.SetBezierWarpParams(Drawing::GE_FILTER_BEZIER_WARP_CONTROL_POINT11, std::make_pair(1.f, 1.f));
592 EXPECT_FLOAT_EQ(geVisualEffectImpl.GetBezierWarpParams()->destinationPatch[11].GetY(), 1.f);
593 }
594
595 /**
596 * @tc.name: SetParamDispersion_001
597 * @tc.desc: Verify function SetParam for action is invalid
598 * @tc.type:FUNC
599 */
600 HWTEST_F(GEVisualEffectImplTest, SetParamDispersion_001, TestSize.Level1)
601 {
602 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_DISPERSION);
603 geVisualEffectImpl.SetDispersionParams(Drawing::GE_FILTER_DISPERSION_OPACITY, 0.5f);
604 EXPECT_EQ(geVisualEffectImpl.GetDispersionParams()->opacity, 0.5f);
605 geVisualEffectImpl.SetDispersionParams(Drawing::GE_FILTER_DISPERSION_RED_OFFSET, std::make_pair(0.5f, 0.5f));
606 EXPECT_EQ(geVisualEffectImpl.GetDispersionParams()->redOffset, std::make_pair(0.5f, 0.5f));
607 geVisualEffectImpl.SetDispersionParams(Drawing::GE_FILTER_DISPERSION_GREEN_OFFSET, std::make_pair(0.5f, 0.5f));
608 EXPECT_EQ(geVisualEffectImpl.GetDispersionParams()->greenOffset, std::make_pair(0.5f, 0.5f));
609 geVisualEffectImpl.SetDispersionParams(Drawing::GE_FILTER_DISPERSION_BLUE_OFFSET, std::make_pair(0.5f, 0.5f));
610 EXPECT_EQ(geVisualEffectImpl.GetDispersionParams()->blueOffset, std::make_pair(0.5f, 0.5f));
611 }
612
613 /**
614 * @tc.name: SetWaterRippleParams_001
615 * @tc.desc: Verify function SetWaterRippleParams is invalid
616 * @tc.type:FUNC
617 */
618 HWTEST_F(GEVisualEffectImplTest, SetWaterRippleParams_001, TestSize.Level1)
619 {
620 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
621 ASSERT_NE(geVisualEffectImpl.waterRippleParams_, nullptr);
622 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_PROGRESS, 0.5f);
623 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->progress, 0.5f);
624 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_X, 0.5f);
625 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterX, 0.5f);
626 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_CENTER_Y, 0.5f);
627 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleCenterY, 0.5f);
628 geVisualEffectImpl.SetWaterRippleParams(Drawing::GE_FILTER_WATER_RIPPLE_RIPPLE_MODE, 1.0f);
629 EXPECT_EQ(geVisualEffectImpl.GetWaterRippleParams()->rippleMode, 1.0f);
630 }
631
632 /**
633 * @tc.name: SetWaterRippleParams_002
634 * @tc.desc: Verify function SetWaterRippleParams
635 * @tc.type:FUNC
636 */
637 HWTEST_F(GEVisualEffectImplTest, SetWaterRippleParams_002, TestSize.Level1)
638 {
639 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_WATER_RIPPLE);
640
641 // test invalid params setting
642 geVisualEffectImpl.SetWaterRippleParams("GE_FILTER_WATER_RIPPLE_PROGRESS", 0.5f);
643 EXPECT_NE(geVisualEffectImpl.GetWaterRippleParams()->progress, 0.5f);
644 }
645
646 /**
647 * @tc.name: MakeWaterRippleParams_001
648 * @tc.desc: Verify function MakeWaterRippleParams is invalid
649 * @tc.type:FUNC
650 */
651 HWTEST_F(GEVisualEffectImplTest, MakeWaterRippleParams_001, TestSize.Level1)
652 {
653 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
654 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::WATER_RIPPLE);
655 ASSERT_EQ(geVisualEffectImpl.GetWaterRippleParams(), nullptr);
656 geVisualEffectImpl.MakeWaterRippleParams();
657 ASSERT_NE(geVisualEffectImpl.GetWaterRippleParams(), nullptr);
658 }
659
660 /**
661 * @tc.name: GetMESAParams_001
662 * @tc.desc: Verify function GetMESAParams
663 * @tc.type:FUNC
664 */
665 HWTEST_F(GEVisualEffectImplTest, GetMESAParams_001, TestSize.Level1)
666 {
667 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_MESA_BLUR);
668 // 0.0f, 1, 1.0f: mesa blur params
669 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_RADIUS, 1);
670 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_GREY_COEF_1, 1.0f);
671 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_GREY_COEF_2, 1.0f);
672 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_X, 0.0f);
673 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_Y, 0.0f);
674 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_Z, 0.0f);
675 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_OFFSET_W, 0.0f);
676 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_TILE_MODE, 0);
677 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_WIDTH, 0.0f);
678 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_MESA_BLUR_STRETCH_HEIGHT, 0.0f);
679 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->radius, 1);
680 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->greyCoef1, 1.0f);
681 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->greyCoef1, 1.0f);
682 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetX, 0.0f);
683 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetY, 0.0f);
684 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetZ, 0.0f);
685 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->offsetW, 0.0f);
686 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->tileMode, 0);
687 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->width, 0.0f);
688 EXPECT_EQ(geVisualEffectImpl.GetMESAParams()->height, 0.0f);
689 }
690
691 /**
692 * @tc.name: SetParam_012
693 * @tc.desc: Verify function SetParam for param is nullptr
694 * @tc.type:FUNC
695 */
696 HWTEST_F(GEVisualEffectImplTest, SetParam_012, TestSize.Level1)
697 {
698 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
699 int32_t paramInt32 { 0 }; // 0 invalid params
700 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::KAWASE_BLUR);
701 geVisualEffectImpl.SetParam("", paramInt32);
702
703 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::MESA_BLUR);
704 geVisualEffectImpl.SetParam("", paramInt32);
705
706 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::MAGNIFIER);
707 geVisualEffectImpl.SetParam("", paramInt32);
708
709 uint32_t paramUint32 { 0 }; // 0 invalid params
710 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::WATER_RIPPLE);
711 geVisualEffectImpl.SetParam("", paramUint32);
712
713 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
714 geVisualEffectImpl.SetParam("", paramInt32);
715
716 EXPECT_EQ(geVisualEffectImpl.GetFilterType(), Drawing::GEVisualEffectImpl::FilterType::LINEAR_GRADIENT_BLUR);
717 }
718
719 /**
720 * @tc.name: SetParam_017
721 * @tc.desc: Verify function SetParam for param is nullptr
722 * @tc.type:FUNC
723 */
724 HWTEST_F(GEVisualEffectImplTest, SetParam_017, TestSize.Level1)
725 {
726 Drawing::GEVisualEffectImpl geVisualEffectImplTest("");
727 Drawing::Color4f colorTestA = {0.0, 1.0, 1.0, 1.0};
728 Drawing::Color4f colorTestB = {1.0, 0.0, 1.0, 1.0};
729 Drawing::Color4f colorTestC = {1.0, 1.0, 0.0, 1.0};
730 geVisualEffectImplTest.SetParam(Drawing::GE_FILTER_SOUND_WAVE_COLOR_A, colorTestA);
731 EXPECT_EQ(geVisualEffectImplTest.GetSoundWaveParams(), nullptr);
732
733 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_SOUND_WAVE);
734 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::SOUND_WAVE);
735 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_SOUND_WAVE_COLOR_A, colorTestA);
736 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_SOUND_WAVE_COLOR_B, colorTestB);
737 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_SOUND_WAVE_COLOR_C, colorTestC);
738 EXPECT_EQ(geVisualEffectImpl.GetSoundWaveParams()->colorA.redF_, 0.0f);
739 EXPECT_EQ(geVisualEffectImpl.GetSoundWaveParams()->colorB.greenF_, 0.0f);
740 EXPECT_EQ(geVisualEffectImpl.GetSoundWaveParams()->colorC.blueF_, 0.0f);
741 }
742
743 /**
744 * @tc.name: SetParam_020
745 * @tc.desc: Verify function SetParam for param is content light
746 * @tc.type: FUNC
747 */
748 HWTEST_F(GEVisualEffectImplTest, SetParam_020, TestSize.Level1)
749 {
750 Drawing::GEVisualEffectImpl geVisualEffectImplTest("");
751 float lightIntensity = 0.5f;
752 geVisualEffectImplTest.SetParam(Drawing::GE_FILTER_CONTENT_LIGHT_INTENSITY, lightIntensity);
753 EXPECT_EQ(geVisualEffectImplTest.GetContentLightParams(), nullptr);
754
755 Drawing::GEVisualEffectImpl geVisualEffectImpl(Drawing::GE_FILTER_CONTENT_LIGHT);
756 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::CONTENT_LIGHT);
757
758 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_CONTENT_LIGHT_INTENSITY, lightIntensity);
759 EXPECT_EQ(geVisualEffectImpl.GetContentLightParams()->intensity, lightIntensity);
760
761 Vector3f lightPosition = Vector3f(0.0f, 0.0f, 0.0f);
762 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_CONTENT_LIGHT_POSITION, lightPosition);
763 EXPECT_EQ(geVisualEffectImpl.GetContentLightParams()->position, lightPosition);
764
765 Vector4f lightColor = Vector4f(0.3f, 0.6f, 0.9f, 0.0f);
766 geVisualEffectImpl.SetParam(Drawing::GE_FILTER_CONTENT_LIGHT_COLOR, lightColor);
767 EXPECT_EQ(geVisualEffectImpl.GetContentLightParams()->color, lightColor);
768 }
769
770 /**
771 * @tc.name: SetParam_021
772 * @tc.desc: Verify function SetParam for pixelMapMask params
773 * @tc.type: FUNC
774 */
775 HWTEST_F(GEVisualEffectImplTest, SetParam_021, TestSize.Level1)
776 {
777 Drawing::GEVisualEffectImpl geVisualEffectImplPixelMapMask(Drawing::GE_MASK_PIXEL_MAP);
778 geVisualEffectImplPixelMapMask.filterType_ = Drawing::GEVisualEffectImpl::FilterType::PIXEL_MAP_MASK;
779 geVisualEffectImplPixelMapMask.pixelMapMaskParams_ = std::make_shared<Drawing::GEPixelMapMaskParams>();
780
781 Drawing::RectF srcRect = Drawing::RectF(0.0f, 0.0f, 100.0f, 100.0f);
782 geVisualEffectImplPixelMapMask.SetParam("PixelMapMask_Src", srcRect);
783 EXPECT_EQ(geVisualEffectImplPixelMapMask.pixelMapMaskParams_->src, srcRect);
784
785 Drawing::RectF dstRect = Drawing::RectF(0.0f, 0.0f, 200.0f, 200.0f);
786 geVisualEffectImplPixelMapMask.SetParam("PixelMapMask_Dst", dstRect);
787 EXPECT_EQ(geVisualEffectImplPixelMapMask.pixelMapMaskParams_->dst, dstRect);
788
789 Vector4f fillColor = Vector4f(1.0f, 0.5f, 0.2f, 0.8f);
790 geVisualEffectImplPixelMapMask.SetParam("PixelMapMask_FillColor", fillColor);
791 EXPECT_EQ(geVisualEffectImplPixelMapMask.pixelMapMaskParams_->fillColor, fillColor);
792
793 auto testImage = std::make_shared<Drawing::Image>();
794 geVisualEffectImplPixelMapMask.SetParam("PixelMapMask_Image", testImage);
795 EXPECT_EQ(geVisualEffectImplPixelMapMask.pixelMapMaskParams_->image, testImage);
796 }
797
798 /**
799 * @tc.name: SetParam_022
800 * @tc.desc: Verify function SetParam for action is invalid
801 * @tc.type: FUNC
802 */
803 HWTEST_F(GEVisualEffectImplTest, SetParam_022, TestSize.Level1)
804 {
805 Drawing::GEVisualEffectImpl geVisualEffectImplWaveGradientMask(Drawing::GE_MASK_WAVE_GRADIENT);
806 geVisualEffectImplWaveGradientMask.filterType_ = Drawing::GEVisualEffectImpl::FilterType::WAVE_GRADIENT_MASK;
807 geVisualEffectImplWaveGradientMask.waveGradientMaskParams_ =
808 std::make_shared<Drawing::GEWaveGradientShaderMaskParams>();
809
810 // test invalid params setting
811 float width = 0.5f;
812 geVisualEffectImplWaveGradientMask.SetParam("WaveGradientMask_WaveWidth", width);
813 EXPECT_EQ(geVisualEffectImplWaveGradientMask.waveGradientMaskParams_->width_, width);
814
815 float turbulenceStrength = 0.5f;
816 geVisualEffectImplWaveGradientMask.SetParam("WaveGradientMask_TurbulenceStrength", turbulenceStrength);
817 EXPECT_EQ(geVisualEffectImplWaveGradientMask.waveGradientMaskParams_->turbulenceStrength_, turbulenceStrength);
818
819 float blurRadius = 0.5f;
820 geVisualEffectImplWaveGradientMask.SetParam("WaveGradientMask_BlurRadius", blurRadius);
821 EXPECT_EQ(geVisualEffectImplWaveGradientMask.waveGradientMaskParams_->blurRadius_, blurRadius);
822
823 float propagationRadius = 0.5f;
824 geVisualEffectImplWaveGradientMask.SetParam("WaveGradientMask_PropagationRadius", propagationRadius);
825 EXPECT_EQ(geVisualEffectImplWaveGradientMask.waveGradientMaskParams_->propagationRadius_, propagationRadius);
826
827 std::pair<float, float> center = {-2.5f, -2.5f};
828 geVisualEffectImplWaveGradientMask.SetParam("WaveGradientMask_WaveCenter", center);
829 EXPECT_EQ(geVisualEffectImplWaveGradientMask.waveGradientMaskParams_->center_, center);
830 }
831
832 /**
833 * @tc.name: SetParam_023
834 * @tc.desc: Verify function SetParam for action is invalid
835 * @tc.type: FUNC
836 */
837 HWTEST_F(GEVisualEffectImplTest, SetParam_023, TestSize.Level1)
838 {
839 Drawing::GEWaveGradientShaderMaskParams param;
840 auto geWaveGradientShaderMask = std::make_shared<Drawing::GEWaveGradientShaderMask>(param);
841 auto shaderMask = std::static_pointer_cast<Drawing::GEShaderMask>(geWaveGradientShaderMask);
842
843 Drawing::GEVisualEffectImpl geVisualEffectImplDisplaceDistort(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
844 geVisualEffectImplDisplaceDistort.filterType_ =
845 Drawing::GEVisualEffectImpl::FilterType::DISPLACEMENT_DISTORT_FILTER;
846 geVisualEffectImplDisplaceDistort.displacementDistortParams_ =
847 std::make_shared<Drawing::GEDisplacementDistortFilterParams>();
848 geVisualEffectImplDisplaceDistort.SetParam("DispDistort_Mask", shaderMask);
849 EXPECT_EQ(geVisualEffectImplDisplaceDistort.displacementDistortParams_->mask_, shaderMask);
850 }
851
852 /**
853 * @tc.name: SetParam_024
854 * @tc.desc: Verify function SetParam for DoubleRippleMask is invalid
855 * @tc.type: FUNC
856 */
857 HWTEST_F(GEVisualEffectImplTest, SetParam_024, TestSize.Level1)
858 {
859 Drawing::GEVisualEffectImpl geVisualEffectImplDoubleRippleMask(Drawing::GE_MASK_DOUBLE_RIPPLE);
860 geVisualEffectImplDoubleRippleMask.filterType_ = Drawing::GEVisualEffectImpl::FilterType::DOUBLE_RIPPLE_MASK;
861 geVisualEffectImplDoubleRippleMask.doubleRippleMaskParams_ =
862 std::make_shared<Drawing::GEDoubleRippleShaderMaskParams>();
863
864 // test invalid params setting
865 std::pair<float, float> center1 = {-2.5f, -2.5f};
866 geVisualEffectImplDoubleRippleMask.SetParam("DoubleRippleMask_Center1", center1);
867 EXPECT_EQ(geVisualEffectImplDoubleRippleMask.doubleRippleMaskParams_->center1_, center1);
868
869 std::pair<float, float> center2 = {2.5f, 2.5f};
870 geVisualEffectImplDoubleRippleMask.SetParam("DoubleRippleMask_Center2", center2);
871 EXPECT_EQ(geVisualEffectImplDoubleRippleMask.doubleRippleMaskParams_->center2_, center2);
872
873 float radius = 0.5f;
874 geVisualEffectImplDoubleRippleMask.SetParam("DoubleRippleMask_Radius", radius);
875 EXPECT_EQ(geVisualEffectImplDoubleRippleMask.doubleRippleMaskParams_->radius_, radius);
876
877 float width = 0.5f;
878 geVisualEffectImplDoubleRippleMask.SetParam("DoubleRippleMask_Width", width);
879 EXPECT_EQ(geVisualEffectImplDoubleRippleMask.doubleRippleMaskParams_->width_, width);
880
881 float turbulence = 0.5f;
882 geVisualEffectImplDoubleRippleMask.SetParam("DoubleRippleMask_Turbulence", turbulence);
883 EXPECT_EQ(geVisualEffectImplDoubleRippleMask.doubleRippleMaskParams_->turbulence_, turbulence);
884 }
885
886 /**
887 * @tc.name: SetParam_025
888 * @tc.desc: Verify function SetParam for DoubleRippleMask is invalid
889 * @tc.type: FUNC
890 */
891 HWTEST_F(GEVisualEffectImplTest, SetParam_025, TestSize.Level1)
892 {
893 Drawing::GEDoubleRippleShaderMaskParams param;
894 auto geDoubleRippleShaderMask = std::make_shared<Drawing::GEDoubleRippleShaderMask>(param);
895 auto shaderMask = std::static_pointer_cast<Drawing::GEShaderMask>(geDoubleRippleShaderMask);
896
897 Drawing::GEVisualEffectImpl geVisualEffectImplDisplaceDistort(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
898 geVisualEffectImplDisplaceDistort.filterType_ =
899 Drawing::GEVisualEffectImpl::FilterType::DISPLACEMENT_DISTORT_FILTER;
900 geVisualEffectImplDisplaceDistort.displacementDistortParams_ =
901 std::make_shared<Drawing::GEDisplacementDistortFilterParams>();
902 geVisualEffectImplDisplaceDistort.SetParam("DispDistort_Mask", shaderMask);
903 EXPECT_EQ(geVisualEffectImplDisplaceDistort.displacementDistortParams_->mask_, shaderMask);
904 }
905
906 /**
907 * @tc.name: MakeDoubleRippleMaskParams_001
908 * @tc.desc: Verify function DoubleRippleMaskParams
909 * @tc.type: FUNC
910 */
911 HWTEST_F(GEVisualEffectImplTest, DoubleRippleMaskParams_001, TestSize.Level1)
912 {
913 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
914 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::DOUBLE_RIPPLE_MASK);
915 EXPECT_EQ(geVisualEffectImpl.GetDoubleRippleMaskParams(), nullptr);
916
917 geVisualEffectImpl.MakeDoubleRippleMaskParams();
918 EXPECT_NE(geVisualEffectImpl.GetDoubleRippleMaskParams(), nullptr);
919 }
920
921 /**
922 * @tc.name: MakeWaveGradientMaskParams_001
923 * @tc.desc: Verify function WaveGradientMaskParams
924 * @tc.type: FUNC
925 */
926 HWTEST_F(GEVisualEffectImplTest, WaveGradientMaskParams_001, TestSize.Level1)
927 {
928 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
929 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::WAVE_GRADIENT_MASK);
930 EXPECT_EQ(geVisualEffectImpl.GetWaveGradientMaskParams(), nullptr);
931
932 geVisualEffectImpl.MakeWaveGradientMaskParams();
933 EXPECT_NE(geVisualEffectImpl.GetWaveGradientMaskParams(), nullptr);
934 }
935
936 /**
937 * @tc.name: MakePixelMapMaskParams_001
938 * @tc.desc: Verify function MakePixelMapMaskParams is invalid
939 * @tc.type: FUNC
940 */
941 HWTEST_F(GEVisualEffectImplTest, MakePixelMapMaskParams_001, TestSize.Level1)
942 {
943 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
944 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::PIXEL_MAP_MASK);
945 ASSERT_EQ(geVisualEffectImpl.GetPixelMapMaskParams(), nullptr);
946
947 geVisualEffectImpl.MakePixelMapMaskParams();
948 ASSERT_NE(geVisualEffectImpl.GetPixelMapMaskParams(), nullptr);
949 }
950
951 /**
952 * @tc.name: SetAllParam_001
953 * @tc.desc: Verify function Set All Param for param is nullptr
954 * @tc.type: FUNC
955 */
956 HWTEST_F(GEVisualEffectImplTest, SetAllParam_001, TestSize.Level1)
957 {
958 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
959 uint32_t paramUint32 { 0 };
960 float paramFloat { 1.0f };
961 EXPECT_EQ(geVisualEffectImpl.GetMESAParams(), nullptr);
962
963 geVisualEffectImpl.SetMESABlurParams("", paramFloat);
964 geVisualEffectImpl.SetMagnifierParamsFloat("", paramFloat);
965 geVisualEffectImpl.SetMagnifierParamsUint32("", paramUint32);
966 geVisualEffectImpl.SetWaterRippleParams("", paramFloat);
967 geVisualEffectImpl.SetRippleMaskParamsFloat("", paramFloat);
968 geVisualEffectImpl.SetWaveGradientMaskParamsFloat("", paramFloat);
969 geVisualEffectImpl.SetDoubleRippleMaskParamsFloat("", paramFloat);
970 }
971
972 /**
973 * @tc.name: SetAllParam_002
974 * @tc.desc: Verify function Set XXX Param for param is not nullptr and tag is invalid
975 * @tc.type:FUNC
976 */
977 HWTEST_F(GEVisualEffectImplTest, SetAllParam_002, TestSize.Level1)
978 {
979 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
980 uint32_t paramUint32 { 0 };
981 float paramFloat { 1.0f };
982
983 geVisualEffectImpl.MakeMESAParams();
984 EXPECT_NE(geVisualEffectImpl.GetMESAParams(), nullptr);
985 geVisualEffectImpl.SetMESABlurParams("", paramFloat);
986
987 geVisualEffectImpl.MakeMagnifierParams();
988 EXPECT_NE(geVisualEffectImpl.GetMagnifierParams(), nullptr);
989 geVisualEffectImpl.SetMagnifierParamsFloat("", paramFloat);
990 geVisualEffectImpl.SetMagnifierParamsUint32("", paramUint32);
991
992 int32_t paramInt32 { 0 };
993 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::MAGNIFIER);
994 geVisualEffectImpl.SetParam("", paramInt32);
995 }
996
997 /**
998 * @tc.name: SetColorGradientParam_001
999 * @tc.desc: Verify function Set ColorGradient Param
1000 * @tc.type:FUNC
1001 */
1002 HWTEST_F(GEVisualEffectImplTest, SetColorGradientParam_001, TestSize.Level1)
1003 {
1004 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
1005
1006 geVisualEffectImpl.SetParam("", nullptr);
1007 EXPECT_EQ(geVisualEffectImpl.GetColorGradientParams(), nullptr);
1008
1009 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
1010 geVisualEffectImpl.SetParam("", nullptr);
1011 EXPECT_EQ(geVisualEffectImpl1.GetColorGradientParams(), nullptr);
1012 }
1013
1014 /**
1015 * @tc.name: SetColorGradientParam_002
1016 * @tc.desc: Verify function Set ColorGradient Param
1017 * @tc.type:FUNC
1018 */
1019 HWTEST_F(GEVisualEffectImplTest, SetColorGradientParam_002, TestSize.Level1)
1020 {
1021 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
1022 std::vector<float> param;
1023 geVisualEffectImpl.SetParam("", param);
1024 EXPECT_EQ(geVisualEffectImpl.GetColorGradientParams(), nullptr);
1025
1026 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
1027 geVisualEffectImpl.SetParam("", param);
1028 EXPECT_EQ(geVisualEffectImpl1.GetColorGradientParams(), nullptr);
1029
1030 geVisualEffectImpl1.MakeColorGradientParams();
1031 param = {0.1f, 0.5f}; // 0.1f, 0.5f is param of ColorGradient
1032 geVisualEffectImpl.SetParam("", param);
1033 EXPECT_NE(geVisualEffectImpl1.GetColorGradientParams(), nullptr);
1034 EXPECT_TRUE(geVisualEffectImpl1.GetColorGradientParams()->colors.empty());
1035 }
1036
1037 /**
1038 * @tc.name: SetContentLightParams_001
1039 * @tc.desc: Verify function Set ContentLight Param
1040 * @tc.type:FUNC
1041 */
1042 HWTEST_F(GEVisualEffectImplTest, SetContentLightParams_001, TestSize.Level1)
1043 {
1044 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
1045 float param = 0.5f;
1046 geVisualEffectImpl.SetParam("", param);
1047 EXPECT_EQ(geVisualEffectImpl.GetContentLightParams(), nullptr);
1048
1049 Drawing::GEVisualEffectImpl geVisualEffectImpl1(Drawing::GE_FILTER_DISPLACEMENT_DISTORT);
1050 geVisualEffectImpl.SetParam("", param);
1051 EXPECT_EQ(geVisualEffectImpl1.GetContentLightParams(), nullptr);
1052
1053 geVisualEffectImpl1.MakeContentLightParams();
1054 geVisualEffectImpl.SetParam("", param);
1055 EXPECT_NE(geVisualEffectImpl1.GetContentLightParams(), nullptr);
1056 }
1057
1058 /**
1059 * @tc.name: SetLightCaveParamsTest
1060 * @tc.desc: Verify function Set LightCave Param
1061 * @tc.type:FUNC
1062 */
1063 HWTEST_F(GEVisualEffectImplTest, SetLightCaveParamsTest, TestSize.Level1)
1064 {
1065 Drawing::GEVisualEffectImpl geVisualEffectImpl("");
1066 geVisualEffectImpl.SetFilterType(Drawing::GEVisualEffectImpl::FilterType::LIGHT_CAVE);
1067 EXPECT_EQ(geVisualEffectImpl.GetLightCaveParams(), nullptr);
1068
1069 // init param data
1070 Vector4f color = Vector4f(0.5f, 0.5f, 0.5f, 1.0f); // 0.5f, 0.5f, 0.5f, 1.0f is RGBA
1071 std::pair<float, float> position = {0.5f, 0.5f}; // 0.5f, 0.5f is random number
1072 std::pair<float, float> randerXY = {0.6f, 0.7f}; // 0.6f, 0.7f is random number
1073 float progress = 0.5f; // 0.5f is random number
1074
1075 geVisualEffectImpl.SetLightCaveParams("", color);
1076 geVisualEffectImpl.SetLightCaveParams("", position);
1077 geVisualEffectImpl.SetLightCaveParams("", progress);
1078 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_, nullptr);
1079
1080 geVisualEffectImpl.MakeLightCaveParams();
1081 ASSERT_NE(geVisualEffectImpl.GetLightCaveParams(), nullptr);
1082
1083 geVisualEffectImpl.SetParam("", color);
1084 EXPECT_NE(geVisualEffectImpl.lightCaveShaderParams_->colorA, color);
1085
1086 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_LIGHT_CAVE_COLORA, color);
1087 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_->colorA, color);
1088
1089 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_LIGHT_CAVE_COLORB, color);
1090 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_->colorB, color);
1091
1092 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_LIGHT_CAVE_COLORC, color);
1093 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_->colorC, color);
1094
1095 geVisualEffectImpl.SetParam("", position);
1096 EXPECT_NE(geVisualEffectImpl.lightCaveShaderParams_->position, Vector2f(position.first, position.second));
1097
1098 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_LIGHT_CAVE_POSITION, position);
1099 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_->position, Vector2f(position.first, position.second));
1100
1101 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_LIGHT_CAVE_RADIUSXY, randerXY);
1102 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_->radiusXY, Vector2f(randerXY.first, randerXY.second));
1103
1104 geVisualEffectImpl.SetParam("", progress);
1105 EXPECT_NE(geVisualEffectImpl.lightCaveShaderParams_->progress, progress);
1106
1107 geVisualEffectImpl.SetParam(Drawing::GEX_SHADER_LIGHT_CAVE_PROGRESS, progress);
1108 EXPECT_EQ(geVisualEffectImpl.lightCaveShaderParams_->progress, progress);
1109 }
1110 } // namespace GraphicsEffectEngine
1111 } // namespace OHOS
1112