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 "image_effect_capi_unittest.h"
17 #include "image_effect.h"
18 #include "image_effect_filter.h"
19 #include "pixelmap_native_impl.h"
20 #include "efilter_factory.h"
21 #include "brightness_efilter.h"
22 #include "contrast_efilter.h"
23 #include "test_common.h"
24 #include "native_window.h"
25 #include "external_loader.h"
26 #include "crop_efilter.h"
27 #include "test_pixel_map_utils.h"
28 
29 #define MAX_TEST_ADD_EFILTE_NUMS 120
30 
31 using namespace testing::ext;
32 using ::testing::A;
33 using ::testing::InSequence;
34 using ::testing::Mock;
35 using namespace OHOS::Media::Effect::Test;
36 
37 static std::string g_jpgHdrPath;
38 
39 namespace {
40     constexpr uint32_t CROP_FACTOR = 2;
41 }
42 
43 namespace OHOS {
44 namespace Media {
45 namespace Effect {
SetUpTestCase()46 void ImageEffectCApiUnittest::SetUpTestCase()
47 {
48     g_jpgHdrPath = std::string("/data/test/resource/image_effect_hdr_test1.jpg");
49     consumerSurface_ = Surface::CreateSurfaceAsConsumer("UnitTest");
50     sptr<IBufferProducer> producer = consumerSurface_->GetProducer();
51     ohSurface_ = Surface::CreateSurfaceAsProducer(producer);
52     nativeWindow_ = CreateNativeWindowFromSurface(&ohSurface_);
53 }
54 
TearDownTestCase()55 void ImageEffectCApiUnittest::TearDownTestCase()
56 {
57     if (nativeWindow_ != nullptr) {
58         DestoryNativeWindow(nativeWindow_);
59         nativeWindow_ = nullptr;
60     }
61     consumerSurface_ = nullptr;
62     ohSurface_ = nullptr;
63 }
64 
SetUp()65 void ImageEffectCApiUnittest::SetUp()
66 {
67     mockPixelMap_ = std::make_shared<MockPixelMap>();
68     pixelmapNative_ = new OH_PixelmapNative(mockPixelMap_);
69     ExternLoader::Instance()->InitExt();
70     EFilterFactory::Instance()->functions_.clear();
71     EFilterFactory::Instance()->RegisterEFilter<BrightnessEFilter>(BRIGHTNESS_EFILTER);
72     EFilterFactory::Instance()->RegisterEFilter<ContrastEFilter>(CONTRAST_EFILTER);
73     EFilterFactory::Instance()->RegisterEFilter<CropEFilter>(CROP_EFILTER);
74     EFilterFactory::Instance()->delegates_.clear();
75     filterInfo_ = OH_EffectFilterInfo_Create();
76     OH_EffectFilterInfo_SetFilterName(filterInfo_, BRIGHTNESS_EFILTER);
77     ImageEffect_BufferType bufferTypes[] = { ImageEffect_BufferType::EFFECT_BUFFER_TYPE_PIXEL };
78     OH_EffectFilterInfo_SetSupportedBufferTypes(filterInfo_, sizeof(bufferTypes) / sizeof(ImageEffect_BufferType),
79         bufferTypes);
80     ImageEffect_Format formats[] = { ImageEffect_Format::EFFECT_PIXEL_FORMAT_RGBA8888,
81         ImageEffect_Format::EFFECT_PIXEL_FORMAT_NV12, ImageEffect_Format::EFFECT_PIXEL_FORMAT_NV21};
82     OH_EffectFilterInfo_SetSupportedFormats(filterInfo_, sizeof(formats) / sizeof(ImageEffect_Format), formats);
83 }
84 
TearDown()85 void ImageEffectCApiUnittest::TearDown()
86 {
87     delete pixelmapNative_;
88     pixelmapNative_ = nullptr;
89     mockPixelMap_ = nullptr;
90     if (filterInfo_ != nullptr) {
91         OH_EffectFilterInfo_Release(filterInfo_);
92         filterInfo_ = nullptr;
93     }
94 }
95 
96 /**
97  * Feature: ImageEffect
98  * Function: Test image_effect capi unittest example
99  * SubFunction: NA
100  * FunctionPoints: NA
101  * EnvConditions: NA
102  * CaseDescription: Test image_effect capi unittest example
103  */
104 HWTEST_F(ImageEffectCApiUnittest, Image_effect_capi_unittest_001, TestSize.Level1)
105 {
106     InSequence s;
107 
108     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
109     ASSERT_NE(imageEffect, nullptr);
110 
111     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
112     ASSERT_NE(filter, nullptr);
113 
114     ImageEffect_Any value;
115     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
116     value.dataValue.floatValue = 100.f;
117     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
118     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
119 
120     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
121     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
122 
123     errorCode = OH_ImageEffect_Start(imageEffect);
124     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
125 
126     errorCode = OH_ImageEffect_Release(imageEffect);
127     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
128 }
129 
130 /**
131  * Feature: ImageEffect
132  * Function: Test OH_ImageEffect_Create with normal parameter
133  * SubFunction: NA
134  * FunctionPoints: NA
135  * EnvConditions: NA
136  * CaseDescription: Test OH_ImageEffect_Create with normal parameter
137  */
138 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectCreate001, TestSize.Level1)
139 {
140     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectCreate001 start";
141 
142     OH_ImageEffect *nativeImageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
143     ASSERT_NE(nativeImageEffect, nullptr) << "OH_ImageEffect_Create failed";
144 
145     GTEST_LOG_(INFO) << "OHImageEffectCreate001 success! result: " << nativeImageEffect;
146     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectCreate001 END";
147 }
148 
149 /**
150  * Feature: ImageEffect
151  * Function: Test OH_ImageEffect_Create with empty parameter
152  * SubFunction: NA
153  * FunctionPoints: NA
154  * EnvConditions: NA
155  * CaseDescription: Test OH_ImageEffect_Create with empty parameter
156  */
157 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectCreate002, TestSize.Level1)
158 {
159     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectCreate002 start";
160 
161     OH_ImageEffect *nativeImageEffect = OH_ImageEffect_Create(nullptr);
162     ASSERT_NE(nativeImageEffect, nullptr) << "OH_ImageEffect_Create failed";
163 
164     GTEST_LOG_(INFO) << "OHImageEffectCreate002 success! result: " << nativeImageEffect;
165     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectCreate002 END";
166 }
167 
168 /**
169  * Feature: ImageEffect
170  * Function: Test OH_ImageEffect_Configure with normal parameter
171  * SubFunction: NA
172  * FunctionPoints: NA
173  * EnvConditions: NA
174  * CaseDescription: Test OH_ImageEffect_Configure with normal parameter
175  */
176 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectConfigure001, TestSize.Level1)
177 {
178     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectConfigure001 start";
179 
180     OH_ImageEffect *nativeImageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
181     const char *key = "runningType";
182     ImageEffect_Any value;
183     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_INT32;
184     value.dataValue.int32Value = 2;
185     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Configure(nativeImageEffect, key, &value);
186     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Configure failed";
187 
188     GTEST_LOG_(INFO) << "OHImageEffectConfigure001 success! result: " << errorCode;
189     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectConfigure001 END";
190 }
191 
192 /**
193  * Feature: ImageEffect
194  * Function: Test OH_ImageEffect_Configure with all empty parameter
195  * SubFunction: NA
196  * FunctionPoints: NA
197  * EnvConditions: NA
198  * CaseDescription: Test OH_ImageEffect_Configure with all empty parameter
199  */
200 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectConfigure002, TestSize.Level1)
201 {
202     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectConfigure002 start";
203 
204     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Configure(nullptr, nullptr, nullptr);
205     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Configure failed";
206 
207     GTEST_LOG_(INFO) << "OHImageEffectConfigure002 success! result: " << errorCode;
208     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectConfigure002 END";
209 }
210 
211 /**
212  * Feature: ImageEffect
213  * Function: Test OH_ImageEffect_Configure with empty OH_ImageEffect
214  * SubFunction: NA
215  * FunctionPoints: NA
216  * EnvConditions: NA
217  * CaseDescription: Test OH_ImageEffect_Configure with empty OH_ImageEffect
218  */
219 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectConfigure003, TestSize.Level1)
220 {
221     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectConfigure003 start";
222 
223     const char *key = KEY_FILTER_INTENSITY;
224     ImageEffect_Any value;
225     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_INT32;
226     value.dataValue.int32Value = 1;
227     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Configure(nullptr, key, &value);
228     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Configure failed";
229 
230     GTEST_LOG_(INFO) << "OHImageEffectConfigure003 success! result: " << errorCode;
231     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectConfigure003 END";
232 }
233 
234 /**
235  * Feature: ImageEffect
236  * Function: Test OH_EffectFilter_Create with normal parameter
237  * SubFunction: NA
238  * FunctionPoints: NA
239  * EnvConditions: NA
240  * CaseDescription: Test OH_EffectFilter_Create with normal parameter
241  */
242 HWTEST_F(ImageEffectCApiUnittest, OHEFilterCreate001, TestSize.Level1)
243 {
244     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterCreate001 start";
245 
246     OH_EffectFilter *nativeEFilter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
247     ASSERT_NE(nativeEFilter, nullptr) << "OH_EffectFilter_Create failed";
248 
249     GTEST_LOG_(INFO) << "OHEFilterCreate001 success! result: " << nativeEFilter;
250     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterCreate001 END";
251 }
252 
253 /**
254  * Feature: ImageEffect
255  * Function: Test OH_EffectFilter_Create with not exist parameter
256  * SubFunction: NA
257  * FunctionPoints: NA
258  * EnvConditions: NA
259  * CaseDescription: Test OH_EffectFilter_Create with not exist parameter
260  */
261 HWTEST_F(ImageEffectCApiUnittest, OHEFilterCreate002, TestSize.Level1)
262 {
263     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterCreate002 start";
264 
265     OH_EffectFilter *nativeEFilter = OH_EffectFilter_Create("TestEFilter");
266     ASSERT_EQ(nativeEFilter, nullptr) << "OH_EffectFilter_Create failed";
267 
268     GTEST_LOG_(INFO) << "OHEFilterCreate002 success! result: " << nativeEFilter;
269     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterCreate002 END";
270 }
271 
272 /**
273  * Feature: ImageEffect
274  * Function: Test OH_EffectFilter_Create with empty parameter
275  * SubFunction: NA
276  * FunctionPoints: NA
277  * EnvConditions: NA
278  * CaseDescription: Test OH_EffectFilter_Create with empty parameter
279  */
280 HWTEST_F(ImageEffectCApiUnittest, OHEFilterCreate003, TestSize.Level1)
281 {
282     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterCreate003 start";
283 
284     OH_EffectFilter *nativeEFilter = OH_EffectFilter_Create(nullptr);
285     ASSERT_EQ(nativeEFilter, nullptr) << "OH_EffectFilter_Create failed";
286 
287     GTEST_LOG_(INFO) << "OHEFilterCreate003 success! result: " << nativeEFilter;
288     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterCreate003 END";
289 }
290 
291 /**
292  * Feature: ImageEffect
293  * Function: Test OH_ImageEffect_AddFilter with normal parameter
294  * SubFunction: NA
295  * FunctionPoints: NA
296  * EnvConditions: NA
297  * CaseDescription: Test OH_ImageEffect_AddFilter with normal parameter
298  */
299 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectAddFilter001, TestSize.Level1)
300 {
301     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter001 start";
302 
303     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
304     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
305     ASSERT_NE(filter, nullptr) << "OH_ImageEffect_AddFilter failed";
306 
307     GTEST_LOG_(INFO) << "OHImageEffectAddFilter001 success! result: " << filter;
308     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter001 END";
309 }
310 
311 /**
312  * Feature: ImageEffect
313  * Function: Test OH_ImageEffect_AddFilter with all empty parameter
314  * SubFunction: NA
315  * FunctionPoints: NA
316  * EnvConditions: NA
317  * CaseDescription: Test OH_ImageEffect_AddFilter with all empty parameter
318  */
319 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectAddFilter002, TestSize.Level1)
320 {
321     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter002 start";
322 
323     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(nullptr, nullptr);
324     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_AddFilter failed";
325 
326     GTEST_LOG_(INFO) << "OHImageEffectAddFilter002 success! result: " << filter;
327     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter002 END";
328 }
329 
330 /**
331  * Feature: ImageEffect
332  * Function: Test OH_ImageEffect_AddFilter with empty OH_ImageEffect parameter
333  * SubFunction: NA
334  * FunctionPoints: NA
335  * EnvConditions: NA
336  * CaseDescription: Test OH_ImageEffect_AddFilter with empty OH_ImageEffect parameter
337  */
338 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectAddFilter003, TestSize.Level1)
339 {
340     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter003 start";
341 
342     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(nullptr, BRIGHTNESS_EFILTER);
343     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_AddFilter failed";
344 
345     GTEST_LOG_(INFO) << "OHImageEffectAddFilter003 success! result: " << filter;
346     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter003 END";
347 }
348 
349 /**
350  * Feature: ImageEffect
351  * Function: Test OH_ImageEffect_AddFilter with empty OH_EffectFilter parameter
352  * SubFunction: NA
353  * FunctionPoints: NA
354  * EnvConditions: NA
355  * CaseDescription: Test OH_ImageEffect_AddFilter with empty OH_EffectFilter parameter
356  */
357 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectAddFilter004, TestSize.Level1)
358 {
359     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter004 start";
360 
361     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
362     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, nullptr);
363     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_AddFilter failed";
364 
365     GTEST_LOG_(INFO) << "OHImageEffectAddFilter004 success! result: " << filter;
366     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter004 END";
367 }
368 
369 /**
370  * Feature: ImageEffect
371  * Function: Test OH_ImageEffect_AddFilter with not exist OH_EffectFilter parameter
372  * SubFunction: NA
373  * FunctionPoints: NA
374  * EnvConditions: NA
375  * CaseDescription: Test OH_ImageEffect_AddFilter with not exist OH_EffectFilter parameter
376  */
377 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectAddFilter005, TestSize.Level1)
378 {
379     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter005 start";
380 
381     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
382     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, "TestEFilter");
383     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_AddFilter failed";
384 
385     GTEST_LOG_(INFO) << "OHImageEffectAddFilter005 success! result: " << filter;
386     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter005 END";
387 }
388 
389 /**
390  * Feature: ImageEffect
391  * Function: Test OH_ImageEffect_AddFilter out of max nums
392  * SubFunction: NA
393  * FunctionPoints: NA
394  * EnvConditions: NA
395  * CaseDescription: Test OH_ImageEffect_AddFilter out of max nums
396  */
397 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectAddFilter006, TestSize.Level1)
398 {
399     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter006 start";
400 
401     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
402     OH_EffectFilter *filter = nullptr;
403     for (int i = 0; i < MAX_TEST_ADD_EFILTE_NUMS; i++) {
404         filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
405     }
406     filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
407     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_AddFilter failed";
408 
409     GTEST_LOG_(INFO) << "OHImageEffectAddFilter006 success! result: " << filter;
410     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectAddFilter006 END";
411 }
412 
413 /**
414  * Feature: ImageEffect
415  * Function: Test OH_ImageEffect_RemoveFilter with normal parameter
416  * SubFunction: NA
417  * FunctionPoints: NA
418  * EnvConditions: NA
419  * CaseDescription: Test OH_ImageEffect_RemoveFilter with normal parameter
420  */
421 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRemoveFilter001, TestSize.Level1)
422 {
423     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter001 start";
424 
425     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
426     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
427     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter001 OH_ImageEffect_AddFilter success! filter: " << filter;
428     int32_t result = OH_ImageEffect_RemoveFilter(imageEffect, BRIGHTNESS_EFILTER);
429     ASSERT_EQ(result, 1) << "OH_ImageEffect_RemoveFilter failed";
430 
431     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter001 success! result: " << result;
432     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter001 END";
433 }
434 
435 /**
436  * Feature: ImageEffect
437  * Function: Test OH_ImageEffect_RemoveFilter with all empty parameter
438  * SubFunction: NA
439  * FunctionPoints: NA
440  * EnvConditions: NA
441  * CaseDescription: Test OH_ImageEffect_RemoveFilter with all empty parameter
442  */
443 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRemoveFilter002, TestSize.Level1)
444 {
445     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter002 start";
446 
447     int32_t result = OH_ImageEffect_RemoveFilter(nullptr, nullptr);
448     ASSERT_EQ(result, 0) << "OH_ImageEffect_RemoveFilter failed";
449 
450     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter002 success! result: " << result;
451     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter002 END";
452 }
453 
454 /**
455  * Feature: ImageEffect
456  * Function: Test OH_ImageEffect_RemoveFilter with empty OH_ImageEffect parameter
457  * SubFunction: NA
458  * FunctionPoints: NA
459  * EnvConditions: NA
460  * CaseDescription: Test OH_ImageEffect_RemoveFilter with empty OH_ImageEffect parameter
461  */
462 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRemoveFilter003, TestSize.Level1)
463 {
464     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter003 start";
465 
466     int32_t result = OH_ImageEffect_RemoveFilter(nullptr, BRIGHTNESS_EFILTER);
467     ASSERT_EQ(result, 0) << "OH_ImageEffect_RemoveFilter failed";
468 
469     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter003 success! result: " << result;
470     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter003 END";
471 }
472 
473 /**
474  * Feature: ImageEffect
475  * Function: Test OH_ImageEffect_RemoveFilter with empty OH_EffectFilter parameter
476  * SubFunction: NA
477  * FunctionPoints: NA
478  * EnvConditions: NA
479  * CaseDescription: Test OH_ImageEffect_RemoveFilter with empty OH_EffectFilter parameter
480  */
481 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRemoveFilter004, TestSize.Level1)
482 {
483     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter004 start";
484 
485     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
486     int32_t result = OH_ImageEffect_RemoveFilter(imageEffect, nullptr);
487     ASSERT_EQ(result, 0) << "OH_ImageEffect_RemoveFilter failed";
488 
489     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter004 success! result: " << result;
490     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter004 END";
491 }
492 
493 /**
494  * Feature: ImageEffect
495  * Function: Test OH_ImageEffect_RemoveFilter with not exist OH_EffectFilter parameter
496  * SubFunction: NA
497  * FunctionPoints: NA
498  * EnvConditions: NA
499  * CaseDescription: Test OH_ImageEffect_RemoveFilter with not exist OH_EffectFilter parameter
500  */
501 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRemoveFilter005, TestSize.Level1)
502 {
503     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter005 start";
504 
505     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
506     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
507     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter005 OH_ImageEffect_AddFilter success! filter: " << filter;
508     int32_t result = OH_ImageEffect_RemoveFilter(imageEffect, "TestEFilter");
509     ASSERT_EQ(result, 0) << "OH_ImageEffect_RemoveFilter failed";
510 
511     GTEST_LOG_(INFO) << "OHImageEffectRemoveFilter005 success! result: " << result;
512     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRemoveFilter005 END";
513 }
514 
515 /**
516  * Feature: ImageEffect
517  * Function: Test Add Remove Replace Filter
518  * SubFunction: NA
519  * FunctionPoints: NA
520  * EnvConditions: NA
521  * CaseDescription: Test Add Remove Replace Filter
522  */
523 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectCRUDFilter001, TestSize.Level1)
524 {
525     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
526     ASSERT_NE(imageEffect, nullptr);
527 
528     OH_EffectFilter *contrastFilter = OH_EffectFilter_Create(CONTRAST_EFILTER);
529     ASSERT_NE(contrastFilter, nullptr);
530     OH_EffectFilter *brightnessFilter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
531     ASSERT_NE(brightnessFilter, nullptr);
532 
533     // 0: contrastFilter, 1: brightnessFilter, 2: cropFilter
534     ImageEffect_ErrorCode errorCode = OH_ImageEffect_AddFilterByFilter(imageEffect, contrastFilter);
535     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
536     OH_EffectFilter *cropFilter = OH_ImageEffect_InsertFilter(imageEffect, 1, CROP_EFILTER);
537     ASSERT_NE(cropFilter, nullptr);
538     errorCode = OH_ImageEffect_InsertFilterByFilter(imageEffect, 1, brightnessFilter);
539     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
540     int32_t filterCnt = OH_ImageEffect_GetFilterCount(imageEffect);
541     ASSERT_EQ(filterCnt, 3);
542 
543     // 0: brightnessFilter1, 1: brightnessFilter, 2: cropFilter
544     OH_EffectFilter *brightnessFilter1 = OH_ImageEffect_ReplaceFilter(imageEffect, 0, BRIGHTNESS_EFILTER);
545     ASSERT_NE(brightnessFilter1, nullptr);
546     filterCnt = OH_ImageEffect_GetFilterCount(imageEffect);
547     ASSERT_EQ(filterCnt, 3);
548 
549     // 0: brightnessFilter, 1: contrastFilter, 2: cropFilter
550     errorCode = OH_ImageEffect_ReplaceFilterByFilter(imageEffect, 1, contrastFilter);
551     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
552     errorCode = OH_ImageEffect_ReplaceFilterByFilter(imageEffect, 0, brightnessFilter);
553     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
554     filterCnt = OH_ImageEffect_GetFilterCount(imageEffect);
555     ASSERT_EQ(filterCnt, 3);
556 
557     // 0: contrastFilter
558     int32_t removeNum = OH_ImageEffect_RemoveFilter(imageEffect, BRIGHTNESS_EFILTER);
559     ASSERT_EQ(removeNum, 1);
560     errorCode = OH_ImageEffect_RemoveFilterByIndex(imageEffect, 2);
561     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
562     errorCode = OH_ImageEffect_RemoveFilterByIndex(imageEffect, 1);
563     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
564     filterCnt = OH_ImageEffect_GetFilterCount(imageEffect);
565     ASSERT_EQ(filterCnt, 1);
566 
567     errorCode = OH_ImageEffect_Release(imageEffect);
568     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
569 
570     errorCode = OH_EffectFilter_Release(contrastFilter);
571     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
572     errorCode = OH_EffectFilter_Release(brightnessFilter);
573     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
574 }
575 
576 /**
577  * Feature: ImageEffect
578  * Function: Test OH_EffectFilter_SetValue with normal parameter
579  * SubFunction: NA
580  * FunctionPoints: NA
581  * EnvConditions: NA
582  * CaseDescription: Test OH_EffectFilter_SetValue with normal parameter
583  */
584 HWTEST_F(ImageEffectCApiUnittest, OHEFilterSetValue001, TestSize.Level1)
585 {
586     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue001 start";
587     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
588     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
589     const char *key = KEY_FILTER_INTENSITY;
590     ImageEffect_Any value;
591     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
592     value.dataValue.floatValue = static_cast<float>(12);
593     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
594     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_SetValue failed";
595 
596     GTEST_LOG_(INFO) << "OHEFilterSetValue001 success! result: " << errorCode;
597     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue001 END";
598 }
599 
600 /**
601  * Feature: ImageEffect
602  * Function: Test OH_EffectFilter_SetValue with all empty parameter
603  * SubFunction: NA
604  * FunctionPoints: NA
605  * EnvConditions: NA
606  * CaseDescription: Test OH_EffectFilter_SetValue with all empty parameter
607  */
608 HWTEST_F(ImageEffectCApiUnittest, OHEFilterSetValue002, TestSize.Level1)
609 {
610     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue002 start";
611 
612     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(nullptr, nullptr, nullptr);
613     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_SetValue failed";
614 
615     GTEST_LOG_(INFO) << "OHEFilterSetValue002 success! result: " << errorCode;
616     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue002 END";
617 }
618 
619 /**
620  * Feature: ImageEffect
621  * Function: Test OH_EffectFilter_SetValue with unexpected ImageEffect_Any.dataType parameter
622  * SubFunction: NA
623  * FunctionPoints: NA
624  * EnvConditions: NA
625  * CaseDescription: Test OH_EffectFilter_SetValue with unexpected ImageEffect_Any.dataType parameter
626  */
627 HWTEST_F(ImageEffectCApiUnittest, OHEFilterSetValue003, TestSize.Level1)
628 {
629     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue003 start";
630 
631     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
632     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
633     const char *key = KEY_FILTER_INTENSITY;
634     ImageEffect_Any value;
635     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_UNKNOWN;
636     value.dataValue.charValue = 'A';
637     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
638     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_SetValue failed";
639 
640     GTEST_LOG_(INFO) << "OHEFilterSetValue003 success! result: " << errorCode;
641     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue003 END";
642 }
643 
644 /**
645  * Feature: ImageEffect
646  * Function: Test OH_EffectFilter_SetValue with not exist key parameter
647  * SubFunction: NA
648  * FunctionPoints: NA
649  * EnvConditions: NA
650  * CaseDescription: Test OH_EffectFilter_SetValue with not exist key parameter
651  */
652 HWTEST_F(ImageEffectCApiUnittest, OHEFilterSetValue004, TestSize.Level1)
653 {
654     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue004 start";
655 
656     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
657     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
658     const char *key = "test";
659     ImageEffect_Any value;
660     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
661     value.dataValue.floatValue = static_cast<float>(12);
662     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
663     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_SetValue failed";
664 
665     GTEST_LOG_(INFO) << "OHEFilterSetValue004 success! result: " << errorCode;
666     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue004 END";
667 }
668 
669 /**
670  * Feature: ImageEffect
671  * Function: Test OH_EffectFilter_SetValue with empty key parameter
672  * SubFunction: NA
673  * FunctionPoints: NA
674  * EnvConditions: NA
675  * CaseDescription: Test OH_EffectFilter_SetValue with empty key parameter
676  */
677 HWTEST_F(ImageEffectCApiUnittest, OHEFilterSetValue005, TestSize.Level1)
678 {
679     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue005 start";
680 
681     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
682     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
683     ImageEffect_Any value;
684     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
685     value.dataValue.floatValue = static_cast<float>(12);
686     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, nullptr, &value);
687     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_SetValue failed";
688 
689     GTEST_LOG_(INFO) << "OHEFilterSetValue005 success! result: " << errorCode;
690     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue005 END";
691 }
692 
693 /**
694  * Feature: ImageEffect
695  * Function: Test OH_EffectFilter_SetValue with empty ImageEffect_Any parameter
696  * SubFunction: NA
697  * FunctionPoints: NA
698  * EnvConditions: NA
699  * CaseDescription: Test OH_EffectFilter_SetValue with empty ImageEffect_Any parameter
700  */
701 HWTEST_F(ImageEffectCApiUnittest, OHEFilterSetValue006, TestSize.Level1)
702 {
703     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue006 start";
704 
705     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
706     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
707     const char *key = KEY_FILTER_INTENSITY;
708     ImageEffect_Any value;
709     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
710     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_SetValue failed";
711 
712     GTEST_LOG_(INFO) << "OHEFilterSetValue006 success! result: " << errorCode;
713     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterSetValue006 END";
714 }
715 
716 /**
717  * Feature: ImageEffect
718  * Function: Test OH_EffectFilter_GetValue with normal parameter
719  * SubFunction: NA
720  * FunctionPoints: NA
721  * EnvConditions: NA
722  * CaseDescription: Test OH_EffectFilter_GetValue with normal parameter
723  */
724 HWTEST_F(ImageEffectCApiUnittest, OHEFilterGetValue001, TestSize.Level1)
725 {
726     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue001 start";
727 
728     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
729     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
730     const char *key = KEY_FILTER_INTENSITY;
731     ImageEffect_Any value;
732     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
733     value.dataValue.floatValue = static_cast<float>(12);
734     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
735     ImageEffect_Any result;
736     errorCode = OH_EffectFilter_GetValue(filter, key, &result);
737     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
738     ASSERT_EQ(result.dataValue.floatValue, static_cast<float>(12)) << "OH_EffectFilter_GetValue failed";
739 
740     GTEST_LOG_(INFO) << "OHEFilterGetValue001 success! result: " << errorCode;
741     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue001 END";
742 }
743 
744 /**
745  * Feature: ImageEffect
746  * Function: Test OH_EffectFilter_GetValue with all empty parameter
747  * SubFunction: NA
748  * FunctionPoints: NA
749  * EnvConditions: NA
750  * CaseDescription: Test OH_EffectFilter_GetValue with all empty parameter
751  */
752 HWTEST_F(ImageEffectCApiUnittest, OHEFilterGetValue002, TestSize.Level1)
753 {
754     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue002 start";
755 
756     ImageEffect_ErrorCode errorCode = OH_EffectFilter_GetValue(nullptr, nullptr, nullptr);
757     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
758 
759     GTEST_LOG_(INFO) << "OHEFilterGetValue002 success! result: " << errorCode;
760     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue002 END";
761 }
762 
763 /**
764  * Feature: ImageEffect
765  * Function: Test OH_EffectFilter_GetValue with not exist key parameter
766  * SubFunction: NA
767  * FunctionPoints: NA
768  * EnvConditions: NA
769  * CaseDescription: Test OH_EffectFilter_GetValue with not exist key parameter
770  */
771 HWTEST_F(ImageEffectCApiUnittest, OHEFilterGetValue003, TestSize.Level1)
772 {
773     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue003 start";
774 
775     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
776     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
777     const char *key = KEY_FILTER_INTENSITY;
778     ImageEffect_Any value;
779     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
780     value.dataValue.floatValue = static_cast<float>(12);
781     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
782     ImageEffect_Any result;
783     errorCode = OH_EffectFilter_GetValue(filter, "test", &result);
784     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
785     ASSERT_NE(result.dataValue.floatValue, static_cast<float>(12)) << "OH_EffectFilter_GetValue failed";
786 
787     GTEST_LOG_(INFO) << "OHEFilterGetValue003 success! result: " << errorCode;
788     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue003 END";
789 }
790 
791 /**
792  * Feature: ImageEffect
793  * Function: Test OH_EffectFilter_GetValue with empty OH_EffectFilter parameter
794  * SubFunction: NA
795  * FunctionPoints: NA
796  * EnvConditions: NA
797  * CaseDescription: Test OH_EffectFilter_GetValue with empty OH_EffectFilter parameter
798  */
799 HWTEST_F(ImageEffectCApiUnittest, OHEFilterGetValue004, TestSize.Level1)
800 {
801     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue004 start";
802 
803     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
804     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
805     const char *key = KEY_FILTER_INTENSITY;
806     ImageEffect_Any value;
807     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
808     value.dataValue.floatValue = static_cast<float>(12);
809     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, key, &value);
810     ImageEffect_Any result;
811     errorCode = OH_EffectFilter_GetValue(nullptr, KEY_FILTER_INTENSITY, &result);
812     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
813     ASSERT_NE(result.dataValue.floatValue, static_cast<float>(12)) << "OH_EffectFilter_GetValue failed";
814 
815     GTEST_LOG_(INFO) << "OHEFilterGetValue004 success! result: " << errorCode;
816     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue004 END";
817 }
818 
819 /**
820  * Feature: ImageEffect
821  * Function: Test OH_EffectFilter_GetValue with unobstructed OH_EffectFilter_SetValue func
822  * SubFunction: NA
823  * FunctionPoints: NA
824  * EnvConditions: NA
825  * CaseDescription: Test OH_EffectFilter_GetValue with unobstructed OH_EffectFilter_SetValue func
826  */
827 HWTEST_F(ImageEffectCApiUnittest, OHEFilterGetValue005, TestSize.Level1)
828 {
829     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue005 start";
830 
831     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
832     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
833     const char *key = KEY_FILTER_INTENSITY;
834     ImageEffect_Any value;
835     ImageEffect_ErrorCode errorCode = OH_EffectFilter_GetValue(filter, key, &value);
836     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
837     ASSERT_EQ(value.dataValue.floatValue, 0) << "OH_EffectFilter_GetValue failed";
838 
839     GTEST_LOG_(INFO) << "OHEFilterGetValue005 success! result: " << errorCode;
840     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue005 END";
841 }
842 
843 /**
844  * Feature: ImageEffect
845  * Function: Test OH_EffectFilter_GetValue by FILTER_NAME
846  * SubFunction: NA
847  * FunctionPoints: NA
848  * EnvConditions: NA
849  * CaseDescription: Test OH_EffectFilter_GetValue by FILTER_NAME
850  */
851 HWTEST_F(ImageEffectCApiUnittest, OHEFilterGetValue006, TestSize.Level1)
852 {
853     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue006 start";
854     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
855     ASSERT_NE(imageEffect, nullptr);
856     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
857     ASSERT_NE(filter, nullptr);
858     const char *key = "FILTER_NAME";
859     ImageEffect_Any value;
860     ImageEffect_ErrorCode errorCode = OH_EffectFilter_GetValue(filter, key, &value);
861     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
862     ASSERT_EQ(value.dataType, ImageEffect_DataType::EFFECT_DATA_TYPE_PTR) << "OH_EffectFilter_GetValue failed";
863     ASSERT_NE(value.dataValue.ptrValue, nullptr) << "OH_EffectFilter_GetValue failed";
864     ASSERT_STREQ(static_cast<char *>(value.dataValue.ptrValue), BRIGHTNESS_EFILTER) <<
865         "OH_EffectFilter_GetValue failed";
866 
867     GTEST_LOG_(INFO) << "OHEFilterGetValue006 success! result: " << errorCode;
868     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterGetValue006 END";
869 }
870 
871 /**
872  * Feature: ImageEffect
873  * Function: Test OH_EffectFilter_Render with normal parameter
874  * SubFunction: NA
875  * FunctionPoints: NA
876  * EnvConditions: NA
877  * CaseDescription: Test OH_EffectFilter_Render with normal parameter
878  */
879 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRender001, TestSize.Level1)
880 {
881     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender001 start";
882 
883     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
884     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Render(filter, pixelmapNative_, pixelmapNative_);
885     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Render failed";
886 
887     GTEST_LOG_(INFO) << "OHEFilterRender001 success! result: " << errorCode;
888     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender001 END";
889 }
890 
891 /**
892  * Feature: ImageEffect
893  * Function: Test OH_EffectFilter_Render with all empty parameter
894  * SubFunction: NA
895  * FunctionPoints: NA
896  * EnvConditions: NA
897  * CaseDescription: Test OH_EffectFilter_Render with all empty parameter
898  */
899 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRender002, TestSize.Level1)
900 {
901     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender002 start";
902 
903     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Render(nullptr, nullptr, nullptr);
904     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Render failed";
905 
906     GTEST_LOG_(INFO) << "OHEFilterRender002 success! result: " << errorCode;
907     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender002 END";
908 }
909 
910 /**
911  * Feature: ImageEffect
912  * Function: Test OH_EffectFilter_Render with empty OH_EffectFilter parameter
913  * SubFunction: NA
914  * FunctionPoints: NA
915  * EnvConditions: NA
916  * CaseDescription: Test OH_EffectFilter_Render with empty OH_EffectFilter parameter
917  */
918 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRender003, TestSize.Level1)
919 {
920     InSequence s;
921     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender003 start";
922 
923     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Render(nullptr, pixelmapNative_, pixelmapNative_);
924     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Render failed";
925 
926     GTEST_LOG_(INFO) << "OHEFilterRender003 success! result: " << errorCode;
927     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender003 END";
928 }
929 
930 /**
931  * Feature: ImageEffect
932  * Function: Test OH_EffectFilter_Render with empty inputPixelmap, outputPixelmap parameter
933  * SubFunction: NA
934  * FunctionPoints: NA
935  * EnvConditions: NA
936  * CaseDescription: Test OH_EffectFilter_Render with empty inputPixelmap, outputPixelmap parameter
937  */
938 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRender004, TestSize.Level1)
939 {
940     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender004 start";
941 
942     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
943     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Render(filter, nullptr, nullptr);
944     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Render failed";
945 
946     GTEST_LOG_(INFO) << "OHEFilterRender004 success! result: " << errorCode;
947     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender004 END";
948 }
949 
950 /**
951  * Feature: ImageEffect
952  * Function: Test OH_EffectFilter_Render with empty outputPixelmap parameter
953  * SubFunction: NA
954  * FunctionPoints: NA
955  * EnvConditions: NA
956  * CaseDescription: Test OH_EffectFilter_Render with empty outputPixelmap parameter
957  */
958 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRender005, TestSize.Level1)
959 {
960     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender005 start";
961     InSequence s;
962 
963     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
964 
965     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Render(filter, pixelmapNative_, nullptr);
966     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Render failed";
967 
968     GTEST_LOG_(INFO) << "OHEFilterRender005 success! result: " << errorCode;
969     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender005 END";
970 }
971 
972 /**
973  * Feature: ImageEffect
974  * Function: Test OH_EffectFilter_Render with empty inputPixelmap parameter
975  * SubFunction: NA
976  * FunctionPoints: NA
977  * EnvConditions: NA
978  * CaseDescription: Test OH_EffectFilter_Render with empty inputPixelmap parameter
979  */
980 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRender006, TestSize.Level1)
981 {
982     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender006 start";
983     InSequence s;
984 
985     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
986     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Render(filter, nullptr, pixelmapNative_);
987     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Render failed";
988 
989     GTEST_LOG_(INFO) << "OHEFilterRender006 success! result: " << errorCode;
990     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRender006 END";
991 }
992 
993 /**
994  * Feature: ImageEffect
995  * Function: Test OH_EffectFilter_Release with normal parameter
996  * SubFunction: NA
997  * FunctionPoints: NA
998  * EnvConditions: NA
999  * CaseDescription: Test OH_EffectFilter_Release with normal parameter
1000  */
1001 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRelease001, TestSize.Level1)
1002 {
1003     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRelease001 start";
1004 
1005     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
1006     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Release(filter);
1007     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Release failed";
1008 
1009     GTEST_LOG_(INFO) << "OHEFilterRelease001 success! result: " << errorCode;
1010     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRelease001 END";
1011 }
1012 
1013 /**
1014  * Feature: ImageEffect
1015  * Function: Test OH_EffectFilter_Release with empty parameter
1016  * SubFunction: NA
1017  * FunctionPoints: NA
1018  * EnvConditions: NA
1019  * CaseDescription: Test OH_EffectFilter_Release with empty parameter
1020  */
1021 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRelease002, TestSize.Level1)
1022 {
1023     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRelease002 start";
1024 
1025     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Release(nullptr);
1026     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Release failed";
1027 
1028     GTEST_LOG_(INFO) << "OHEFilterRelease002 success! result: " << errorCode;
1029     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRelease002 END";
1030 }
1031 
1032 /**
1033  * Feature: ImageEffect
1034  * Function: Test OH_EffectFilter_Release with not exist OH_EffectFilter parameter
1035  * SubFunction: NA
1036  * FunctionPoints: NA
1037  * EnvConditions: NA
1038  * CaseDescription: Test OH_EffectFilter_Release with not exist OH_EffectFilter parameter
1039  */
1040 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRelease003, TestSize.Level1)
1041 {
1042     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRelease003 start";
1043 
1044     OH_EffectFilter *filter = OH_EffectFilter_Create("TestEFilter");
1045     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Release(filter);
1046     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_Release failed";
1047 
1048     GTEST_LOG_(INFO) << "OHEFilterRelease003 success! result: " << errorCode;
1049     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRelease003 END";
1050 }
1051 
1052 /**
1053  * Feature: ImageEffect
1054  * Function: Test ImageEffectSingleFilter with normal parameter
1055  * SubFunction: NA
1056  * FunctionPoints: NA
1057  * EnvConditions: NA
1058  * CaseDescription: Test ImageEffectSingleFilter with normal parameter
1059  */
1060 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSingleFilterUnittest001, TestSize.Level1)
1061 {
1062     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest001 start";
1063     InSequence s;
1064 
1065     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
1066     ASSERT_NE(filter, nullptr) << "ImageEffectSingleFilterUnittest001 OH_EffectFilter_Create failed";
1067     ImageEffect_Any value;
1068     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1069     value.dataValue.floatValue = 100.f;
1070     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1071     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1072         "ImageEffectSingleFilterUnittest001 OH_EffectFilter_SetValue failed";
1073 
1074     errorCode = OH_EffectFilter_Render(filter, pixelmapNative_, pixelmapNative_);
1075     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1076         "ImageEffectSingleFilterUnittest001 OH_EffectFilter_Render failed";
1077 
1078     errorCode = OH_EffectFilter_Release(filter);
1079     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1080         "ImageEffectSingleFilterUnittest001 OH_EffectFilter_Release failed";
1081 
1082     GTEST_LOG_(INFO) << "ImageEffectSingleFilterUnittest001 success! result: " << errorCode;
1083     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest001 END";
1084 }
1085 
1086 /**
1087  * Feature: ImageEffect
1088  * Function: Test ImageEffectSingleFilter submethod OH_EffectFilter_Create with not exist OH_EffectFilter parameter
1089  * SubFunction: NA
1090  * FunctionPoints: NA
1091  * EnvConditions: NA
1092  * CaseDescription: Test ImageEffectSingleFilter submethod OH_EffectFilter_Create with not exist OH_EffectFilter
1093  * parameter
1094  */
1095 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSingleFilterUnittest002, TestSize.Level1)
1096 {
1097     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest002 start";
1098     InSequence s;
1099 
1100     OH_EffectFilter *filter = OH_EffectFilter_Create("TestEFilter");
1101     ASSERT_EQ(filter, nullptr) << "ImageEffectSingleFilterUnittest002 OH_EffectFilter_Create failed";
1102     ImageEffect_Any value;
1103     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1104     value.dataValue.floatValue = 100.f;
1105     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1106     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1107         "ImageEffectSingleFilterUnittest002 OH_EffectFilter_SetValue failed";
1108 
1109     errorCode = OH_EffectFilter_Render(filter, pixelmapNative_, pixelmapNative_);
1110     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1111         "ImageEffectSingleFilterUnittest002 OH_EffectFilter_Render failed";
1112 
1113     errorCode = OH_EffectFilter_Release(filter);
1114     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1115         "ImageEffectSingleFilterUnittest002 OH_EffectFilter_Release failed";
1116 
1117     GTEST_LOG_(INFO) << "ImageEffectSingleFilterUnittest002 success! result: " << errorCode;
1118     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest002 END";
1119 }
1120 
1121 /**
1122  * Feature: ImageEffect
1123  * Function: Test ImageEffectSingleFilter submethod OH_EffectFilter_SetValue with not exist key parameter
1124  * SubFunction: NA
1125  * FunctionPoints: NA
1126  * EnvConditions: NA
1127  * CaseDescription: Test ImageEffectSingleFilter submethod OH_EffectFilter_SetValue with not exist key parameter
1128  */
1129 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSingleFilterUnittest003, TestSize.Level1)
1130 {
1131     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest003 start";
1132     InSequence s;
1133 
1134     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
1135     ASSERT_NE(filter, nullptr) << "ImageEffectSingleFilterUnittest003 OH_EffectFilter_Create failed";
1136     ImageEffect_Any value;
1137     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1138     value.dataValue.floatValue = 100.f;
1139     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, "testRatio", &value);
1140     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1141         "ImageEffectSingleFilterUnittest003 OH_EffectFilter_SetValue failed";
1142 
1143     errorCode = OH_EffectFilter_Render(filter, pixelmapNative_, pixelmapNative_);
1144     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1145         "ImageEffectSingleFilterUnittest003 OH_EffectFilter_Render failed";
1146 
1147     errorCode = OH_EffectFilter_Release(filter);
1148     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1149         "ImageEffectSingleFilterUnittest003 OH_EffectFilter_Release failed";
1150 
1151     GTEST_LOG_(INFO) << "ImageEffectSingleFilterUnittest003 success! result: " << errorCode;
1152     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest003 END";
1153 }
1154 
1155 /**
1156  * Feature: ImageEffect
1157  * Function: Test ImageEffectSingleFilter submethod OH_EffectFilter_Render unobstructed
1158  * SubFunction: NA
1159  * FunctionPoints: NA
1160  * EnvConditions: NA
1161  * CaseDescription: Test ImageEffectSingleFilter submethod OH_EffectFilter_Render unobstructed
1162  */
1163 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSingleFilterUnittest004, TestSize.Level1)
1164 {
1165     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest004 start";
1166 
1167     OH_EffectFilter *filter = OH_EffectFilter_Create(BRIGHTNESS_EFILTER);
1168     ASSERT_NE(filter, nullptr) << "ImageEffectSingleFilterUnittest004 OH_EffectFilter_Create failed";
1169     ImageEffect_Any value;
1170     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1171     value.dataValue.floatValue = 100.f;
1172     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1173     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1174         "ImageEffectSingleFilterUnittest004 OH_EffectFilter_SetValue failed";
1175 
1176     errorCode = OH_EffectFilter_Release(filter);
1177     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1178         "ImageEffectSingleFilterUnittest004 OH_EffectFilter_Release failed";
1179 
1180     GTEST_LOG_(INFO) << "ImageEffectSingleFilterUnittest004 success! result: " << errorCode;
1181     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest004 END";
1182 }
1183 
1184 /**
1185  * Feature: ImageEffect
1186  * Function: Test ImageEffectSingleFilter with normal parameter
1187  * SubFunction: NA
1188  * FunctionPoints: NA
1189  * EnvConditions: NA
1190  * CaseDescription: Test ImageEffectSingleFilter with normal parameter
1191  */
1192 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSingleFilterUnittest005, TestSize.Level1)
1193 {
1194     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest005 start";
1195     InSequence s;
1196 
1197     std::shared_ptr<OH_PixelmapNative> pixelmapNative = std::make_shared<OH_PixelmapNative>(nullptr);
1198     std::unique_ptr<PixelMap> pixelMap = TestPixelMapUtils::ParsePixelMapByPath(g_jpgHdrPath);
1199     ASSERT_NE(pixelMap, nullptr);
1200     pixelmapNative->pixelmap_ = std::move(pixelMap);
1201 
1202     OH_EffectFilter *filter = OH_EffectFilter_Create(CROP_EFILTER);
1203     ASSERT_NE(filter, nullptr) << "ImageEffectSingleFilterUnittest005 OH_EffectFilter_Create failed";
1204 
1205     uint32_t x1 = static_cast<uint32_t>(pixelmapNative->pixelmap_->GetWidth() / CROP_FACTOR);
1206     uint32_t y1 = static_cast<uint32_t>(pixelmapNative->pixelmap_->GetHeight() / CROP_FACTOR);
1207     uint32_t areaInfo[] = { 0, 0, x1, y1};
1208     ImageEffect_Any value;
1209     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_PTR;
1210     value.dataValue.ptrValue = static_cast<void *>(areaInfo);
1211     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_REGION, &value);
1212     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1213         "ImageEffectSingleFilterUnittest005 OH_EffectFilter_SetValue failed";
1214 
1215     errorCode = OH_EffectFilter_Render(filter, pixelmapNative_, pixelmapNative_);
1216     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1217         "ImageEffectSingleFilterUnittest003 OH_EffectFilter_Render failed";
1218 
1219     errorCode = OH_EffectFilter_Release(filter);
1220     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1221         "ImageEffectSingleFilterUnittest005 OH_EffectFilter_Release failed";
1222 
1223     GTEST_LOG_(INFO) << "ImageEffectSingleFilterUnittest005 success! result: " << errorCode;
1224     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSingleFilterUnittest005 END";
1225 }
1226 
1227 
1228 /**
1229  * Feature: ImageEffect
1230  * Function: Test OH_ImageEffect_SetInputPixelmap with normal parameter
1231  * SubFunction: NA
1232  * FunctionPoints: NA
1233  * EnvConditions: NA
1234  * CaseDescription: Test OH_ImageEffect_SetInputPixelmap with normal parameter
1235  */
1236 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetInputPixelmap001, TestSize.Level1)
1237 {
1238     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap001 start";
1239     InSequence s;
1240 
1241     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1242     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
1243     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetInputPixelmap failed";
1244 
1245     GTEST_LOG_(INFO) << "OHImageEffectSetInputPixelmap001 success! result: " << errorCode;
1246     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap001 END";
1247 }
1248 
1249 /**
1250  * Feature: ImageEffect
1251  * Function: Test OH_ImageEffect_SetInputPixelmap with all empty parameter
1252  * SubFunction: NA
1253  * FunctionPoints: NA
1254  * EnvConditions: NA
1255  * CaseDescription: Test OH_ImageEffect_SetInputPixelmap with all empty parameter
1256  */
1257 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetInputPixelmap002, TestSize.Level1)
1258 {
1259     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap002 start";
1260 
1261     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetInputPixelmap(nullptr, nullptr);
1262     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetInputPixelmap failed";
1263 
1264     GTEST_LOG_(INFO) << "OHImageEffectSetInputPixelmap002 success! result: " << errorCode;
1265     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap002 END";
1266 }
1267 
1268 /**
1269  * Feature: ImageEffect
1270  * Function: Test OH_ImageEffect_SetInputPixelmap with empty OH_PixelmapNative parameter
1271  * SubFunction: NA
1272  * FunctionPoints: NA
1273  * EnvConditions: NA
1274  * CaseDescription: Test OH_ImageEffect_SetInputPixelmap with empty OH_PixelmapNative parameter
1275  */
1276 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetInputPixelmap003, TestSize.Level1)
1277 {
1278     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap003 start";
1279     InSequence s;
1280 
1281     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1282     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, nullptr);
1283     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetInputPixelmap failed";
1284 
1285     GTEST_LOG_(INFO) << "OHImageEffectSetInputPixelmap003 success! result: " << errorCode;
1286     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap003 END";
1287 }
1288 
1289 /**
1290  * Feature: ImageEffect
1291  * Function: Test OH_ImageEffect_SetInputPixelmap with empty OH_ImageEffect parameter
1292  * SubFunction: NA
1293  * FunctionPoints: NA
1294  * EnvConditions: NA
1295  * CaseDescription: Test OH_ImageEffect_SetInputPixelmap with empty OH_ImageEffect parameter
1296  */
1297 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetInputPixelmap004, TestSize.Level1)
1298 {
1299     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap004 start";
1300     InSequence s;
1301 
1302     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetInputPixelmap(nullptr, pixelmapNative_);
1303     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetInputPixelmap failed";
1304 
1305     GTEST_LOG_(INFO) << "OHImageEffectSetInputPixelmap004 success! result: " << errorCode;
1306     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputPixelmap004 END";
1307 }
1308 
1309 /**
1310  * Feature: ImageEffect
1311  * Function: Test OH_ImageEffect_SetOutputPixelmap with normal parameter
1312  * SubFunction: NA
1313  * FunctionPoints: NA
1314  * EnvConditions: NA
1315  * CaseDescription: Test OH_ImageEffect_SetOutputPixelmap with normal parameter
1316  */
1317 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputPixelMap001, TestSize.Level1)
1318 {
1319     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap001 start";
1320     InSequence s;
1321 
1322     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1323     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, pixelmapNative_);
1324     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputPixelmap failed";
1325 
1326     GTEST_LOG_(INFO) << "OHImageEffectSetOutputPixelMap001 success! result: " << errorCode;
1327     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap001 END";
1328 }
1329 
1330 /**
1331  * Feature: ImageEffect
1332  * Function: Test OH_ImageEffect_SetOutputPixelmap with all empty parameter
1333  * SubFunction: NA
1334  * FunctionPoints: NA
1335  * EnvConditions: NA
1336  * CaseDescription: Test OH_ImageEffect_SetOutputPixelmap with all empty parameter
1337  */
1338 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputPixelMap002, TestSize.Level1)
1339 {
1340     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap002 start";
1341 
1342     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputPixelmap(nullptr, nullptr);
1343     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputPixelmap failed";
1344 
1345     GTEST_LOG_(INFO) << "OHImageEffectSetOutputPixelMap002 success! result: " << errorCode;
1346     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap002 END";
1347 }
1348 
1349 /**
1350  * Feature: ImageEffect
1351  * Function: Test OH_ImageEffect_SetOutputPixelmap with empty OH_PixelmapNative parameter
1352  * SubFunction: NA
1353  * FunctionPoints: NA
1354  * EnvConditions: NA
1355  * CaseDescription: Test OH_ImageEffect_SetOutputPixelmap with empty OH_PixelmapNative parameter
1356  */
1357 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputPixelMap003, TestSize.Level1)
1358 {
1359     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap003 start";
1360 
1361     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1362     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, nullptr);
1363     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputPixelmap failed";
1364 
1365     GTEST_LOG_(INFO) << "OHImageEffectSetOutputPixelMap003 success! result: " << errorCode;
1366     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap003 END";
1367 }
1368 
1369 /**
1370  * Feature: ImageEffect
1371  * Function: Test OH_ImageEffect_SetOutputPixelmap with empty OH_ImageEffect parameter
1372  * SubFunction: NA
1373  * FunctionPoints: NA
1374  * EnvConditions: NA
1375  * CaseDescription: Test OH_ImageEffect_SetOutputPixelmap with empty OH_ImageEffect parameter
1376  */
1377 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputPixelMap004, TestSize.Level1)
1378 {
1379     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap004 start";
1380     InSequence s;
1381 
1382     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputPixelmap(nullptr, pixelmapNative_);
1383     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputPixelmap failed";
1384 
1385     GTEST_LOG_(INFO) << "OHImageEffectSetOutputPixelMap004 success! result: " << errorCode;
1386     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputPixelMap004 END";
1387 }
1388 
1389 /**
1390  * Feature: ImageEffect
1391  * Function: Test OH_ImageEffect_Start with normal parameter
1392  * SubFunction: NA
1393  * FunctionPoints: NA
1394  * EnvConditions: NA
1395  * CaseDescription: Test OH_ImageEffect_Start with normal parameter
1396  */
1397 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectStart001, TestSize.Level1)
1398 {
1399     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStart001 start";
1400 
1401     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1402     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Start(imageEffect);
1403     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Start failed";
1404 
1405     GTEST_LOG_(INFO) << "OHImageEffectStart001 success! result: " << errorCode;
1406     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStart001 END";
1407 }
1408 
1409 /**
1410  * Feature: ImageEffect
1411  * Function: Test OH_ImageEffect_Start with empty parameter
1412  * SubFunction: NA
1413  * FunctionPoints: NA
1414  * EnvConditions: NA
1415  * CaseDescription: Test OH_ImageEffect_Start with empty parameter
1416  */
1417 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectStart002, TestSize.Level1)
1418 {
1419     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStart002 start";
1420 
1421     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Start(nullptr);
1422     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Start failed";
1423 
1424     GTEST_LOG_(INFO) << "OHImageEffectStart002 success! result: " << errorCode;
1425     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStart002 END";
1426 }
1427 
1428 /**
1429  * Feature: ImageEffect
1430  * Function: Test OH_ImageEffect_Release with normal parameter
1431  * SubFunction: NA
1432  * FunctionPoints: NA
1433  * EnvConditions: NA
1434  * CaseDescription: Test OH_ImageEffect_Release with normal parameter
1435  */
1436 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRelease001, TestSize.Level1)
1437 {
1438     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRelease001 start";
1439 
1440     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1441     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Release(imageEffect);
1442     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OHImageEffectRelease001 failed";
1443 
1444     GTEST_LOG_(INFO) << "OHImageEffectRelease001 success! result: " << errorCode;
1445     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRelease001 END";
1446 }
1447 
1448 /**
1449  * Feature: ImageEffect
1450  * Function: Test OH_ImageEffect_Release with empty parameter
1451  * SubFunction: NA
1452  * FunctionPoints: NA
1453  * EnvConditions: NA
1454  * CaseDescription: Test OH_ImageEffect_Release with empty parameter
1455  */
1456 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRelease002, TestSize.Level1)
1457 {
1458     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRelease002 start";
1459 
1460     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Release(nullptr);
1461     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Release002 failed";
1462 
1463     GTEST_LOG_(INFO) << "OHImageEffectRelease002 success! result: " << errorCode;
1464     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRelease002 END";
1465 }
1466 
1467 /**
1468  * Feature: ImageEffect
1469  * Function: Test ImageEffectStandardFilter with normal parameter
1470  * SubFunction: NA
1471  * FunctionPoints: NA
1472  * EnvConditions: NA
1473  * CaseDescription: Test ImageEffectStandardFilter with normal parameter
1474  */
1475 HWTEST_F(ImageEffectCApiUnittest, ImageEffectStandardFilterUnittest001, TestSize.Level1)
1476 {
1477     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest001 start";
1478     InSequence s;
1479 
1480     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1481     ASSERT_NE(imageEffect, nullptr) << "ImageEffectStandardFilterUnittest001 OH_ImageEffect_Create failed";
1482 
1483     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
1484     ASSERT_NE(filter, nullptr) << "ImageEffectStandardFilterUnittest001 OH_ImageEffect_AddFilter failed";
1485 
1486     ImageEffect_Any value;
1487     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1488     value.dataValue.floatValue = 200.f;
1489     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1490     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1491         "ImageEffectStandardFilterUnittest001 OH_EffectFilter_SetValue failed";
1492 
1493     ImageEffect_Any result;
1494     errorCode = OH_EffectFilter_GetValue(filter, KEY_FILTER_INTENSITY, &result);
1495     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_GetValue failed";
1496     ASSERT_EQ(result.dataType, ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT) <<
1497         "OH_EffectFilter_GetValue dataType failed";
1498     ASSERT_EQ(result.dataValue.floatValue, 100.f) << "OH_EffectFilter_GetValue dataValue failed";
1499 
1500     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
1501     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1502         "ImageEffectStandardFilterUnittest001 OH_ImageEffect_SetInputPixelmap failed";
1503 
1504     std::shared_ptr<PixelMap> outputPixelmap = std::make_shared<MockPixelMap>();
1505     std::shared_ptr<OH_PixelmapNative> outputPixelmapNative = std::make_shared<OH_PixelmapNative>(outputPixelmap);
1506     errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, outputPixelmapNative.get());
1507     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1508         "ImageEffectStandardFilterUnittest001 OH_ImageEffect_SetOutputPixelmap failed";
1509 
1510     errorCode = OH_ImageEffect_Start(imageEffect);
1511     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1512         "ImageEffectStandardFilterUnittest001 OH_ImageEffect_Start failed";
1513 
1514     errorCode = OH_ImageEffect_Release(imageEffect);
1515     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1516         "ImageEffectStandardFilterUnittest001 OH_ImageEffect_Release failed";
1517 
1518     GTEST_LOG_(INFO) << "ImageEffectStandardFilterUnittest001 success! result: " << errorCode;
1519     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest001 END";
1520 }
1521 
1522 /**
1523  * Feature: ImageEffect
1524  * Function: Test ImageEffectStandardFilter submethod OH_ImageEffect_AddFilter with not exist OH_EffectFilter parameter
1525  * SubFunction: NA
1526  * FunctionPoints: NA
1527  * EnvConditions: NA
1528  * CaseDescription: Test ImageEffectStandardFilter submethod OH_ImageEffect_AddFilter with not exist OH_EffectFilter
1529  * parameter
1530  */
1531 HWTEST_F(ImageEffectCApiUnittest, ImageEffectStandardFilterUnittest002, TestSize.Level1)
1532 {
1533     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest002 start";
1534     InSequence s;
1535 
1536     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1537     ASSERT_NE(imageEffect, nullptr) << "ImageEffectStandardFilterUnittest002 OH_ImageEffect_Create failed";
1538 
1539     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, "TestEFilter");
1540     ASSERT_EQ(filter, nullptr) << "ImageEffectStandardFilterUnittest002 OH_ImageEffect_AddFilter failed";
1541 
1542     ImageEffect_Any value;
1543     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1544     value.dataValue.floatValue = 100.f;
1545     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1546     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1547         "ImageEffectStandardFilterUnittest002 OH_EffectFilter_SetValue failed";
1548 
1549     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
1550     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1551         "ImageEffectStandardFilterUnittest002 OH_ImageEffect_SetInputPixelmap failed";
1552     errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, pixelmapNative_);
1553     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1554         "ImageEffectStandardFilterUnittest002 OH_ImageEffect_SetOutputPixelmap failed";
1555 
1556     errorCode = OH_ImageEffect_Start(imageEffect);
1557     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1558         "ImageEffectStandardFilterUnittest002 OH_ImageEffect_Start failed";
1559 
1560     errorCode = OH_ImageEffect_Release(imageEffect);
1561     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1562         "ImageEffectStandardFilterUnittest002 OH_ImageEffect_Release failed";
1563 
1564     GTEST_LOG_(INFO) << "ImageEffectStandardFilterUnittest002 success! result: " << errorCode;
1565     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest002 END";
1566 }
1567 
1568 /**
1569  * Feature: ImageEffect
1570  * Function: Test ImageEffectStandardFilter submethod OH_EffectFilter_SetValue with not exist key parameter
1571  * SubFunction: NA
1572  * FunctionPoints: NA
1573  * EnvConditions: NA
1574  * CaseDescription: Test ImageEffectStandardFilter submethod OH_EffectFilter_SetValue with not exist key parameter
1575  */
1576 HWTEST_F(ImageEffectCApiUnittest, ImageEffectStandardFilterUnittest003, TestSize.Level1)
1577 {
1578     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest003 start";
1579     InSequence s;
1580 
1581     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1582     ASSERT_NE(imageEffect, nullptr) << "ImageEffectStandardFilterUnittest003 OH_ImageEffect_Create failed";
1583 
1584     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
1585     ASSERT_NE(filter, nullptr) << "ImageEffectStandardFilterUnittest003 OH_ImageEffect_AddFilter failed";
1586 
1587     ImageEffect_Any value;
1588     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1589     value.dataValue.floatValue = 100.f;
1590     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, "test", &value);
1591     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1592         "ImageEffectStandardFilterUnittest003 OH_EffectFilter_SetValue failed";
1593 
1594     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
1595     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1596         "ImageEffectStandardFilterUnittest003 OH_ImageEffect_SetInputPixelmap failed";
1597     errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, pixelmapNative_);
1598     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1599         "ImageEffectStandardFilterUnittest003 OH_ImageEffect_SetOutputPixelmap failed";
1600 
1601     errorCode = OH_ImageEffect_Start(imageEffect);
1602     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1603         "ImageEffectStandardFilterUnittest003 OH_ImageEffect_Start failed";
1604 
1605     errorCode = OH_ImageEffect_Release(imageEffect);
1606     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1607         "ImageEffectStandardFilterUnittest003 OH_ImageEffect_Release failed";
1608 
1609     GTEST_LOG_(INFO) << "ImageEffectStandardFilterUnittest003 success! result: " << errorCode;
1610     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest003 END";
1611 }
1612 
1613 /**
1614  * Feature: ImageEffect
1615  * Function: Test ImageEffectStandardFilter submethod OH_ImageEffect_Start with empty parameter
1616  * SubFunction: NA
1617  * FunctionPoints: NA
1618  * EnvConditions: NA
1619  * CaseDescription: Test ImageEffectStandardFilter submethod OH_ImageEffect_Start with empty parameter
1620  */
1621 HWTEST_F(ImageEffectCApiUnittest, ImageEffectStandardFilterUnittest004, TestSize.Level1)
1622 {
1623     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest004 start";
1624     InSequence s;
1625 
1626     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1627     ASSERT_NE(imageEffect, nullptr) << "ImageEffectStandardFilterUnittest004 OH_ImageEffect_Create failed";
1628 
1629     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
1630     ASSERT_NE(filter, nullptr) << "ImageEffectStandardFilterUnittest004 OH_ImageEffect_AddFilter failed";
1631 
1632     ImageEffect_Any value;
1633     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1634     value.dataValue.floatValue = 100.f;
1635     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1636     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1637         "ImageEffectStandardFilterUnittest004 OH_EffectFilter_SetValue failed";
1638 
1639     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
1640     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1641         "ImageEffectStandardFilterUnittest004 OH_ImageEffect_SetInputPixelmap failed";
1642     errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, pixelmapNative_);
1643     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1644         "ImageEffectStandardFilterUnittest004 OH_ImageEffect_SetOutputPixelmap failed";
1645 
1646     errorCode = OH_ImageEffect_Start(nullptr);
1647     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1648         "ImageEffectStandardFilterUnittest004 OH_ImageEffect_Start failed";
1649 
1650     errorCode = OH_ImageEffect_Release(imageEffect);
1651     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1652         "ImageEffectStandardFilterUnittest004 OH_ImageEffect_Release failed";
1653 
1654     GTEST_LOG_(INFO) << "ImageEffectStandardFilterUnittest004 success! result: " << errorCode;
1655     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest004 END";
1656 }
1657 
1658 /**
1659  * Feature: ImageEffect
1660  * Function: Test ImageEffectStandardFilter submethod OH_ImageEffect_Release with empty parameter
1661  * SubFunction: NA
1662  * FunctionPoints: NA
1663  * EnvConditions: NA
1664  * CaseDescription: Test ImageEffectStandardFilter submethod OH_ImageEffect_Release with empty parameter
1665  */
1666 HWTEST_F(ImageEffectCApiUnittest, ImageEffectStandardFilterUnittest005, TestSize.Level1)
1667 {
1668     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest005 start";
1669     InSequence s;
1670 
1671     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1672     ASSERT_NE(imageEffect, nullptr) << "ImageEffectStandardFilterUnittest005 OH_ImageEffect_Create failed";
1673 
1674     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
1675     ASSERT_NE(filter, nullptr) << "ImageEffectStandardFilterUnittest005 OH_ImageEffect_AddFilter failed";
1676 
1677     ImageEffect_Any value;
1678     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
1679     value.dataValue.floatValue = 100.f;
1680     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
1681     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1682         "ImageEffectStandardFilterUnittest005 OH_EffectFilter_SetValue failed";
1683 
1684     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
1685     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1686         "ImageEffectStandardFilterUnittest005 OH_ImageEffect_SetInputPixelmap failed";
1687     errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, pixelmapNative_);
1688     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1689         "ImageEffectStandardFilterUnittest005 OH_ImageEffect_SetOutputPixelmap failed";
1690 
1691     errorCode = OH_ImageEffect_Start(imageEffect);
1692     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1693         "ImageEffectStandardFilterUnittest005 OH_ImageEffect_Start failed";
1694 
1695     errorCode = OH_ImageEffect_Release(nullptr);
1696     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1697         "ImageEffectStandardFilterUnittest004 OH_ImageEffect_Release failed";
1698 
1699     GTEST_LOG_(INFO) << "ImageEffectStandardFilterUnittest005 success! result: " << errorCode;
1700     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectStandardFilterUnittest005 END";
1701 }
1702 
1703 /**
1704  * Feature: ImageEffect
1705  * Function: Test OH_EffectFilter_Register with normal parameter
1706  * SubFunction: NA
1707  * FunctionPoints: NA
1708  * EnvConditions: NA
1709  * CaseDescription: Test OH_EffectFilter_Register with normal parameter
1710  */
1711 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRegister001, TestSize.Level1)
1712 {
1713     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister001 start";
1714 
1715     ImageEffect_FilterDelegate delegate = {
__anon84fd30b80202() 1716         .setValue = [](OH_EffectFilter *filter, const char *key, const ImageEffect_Any *value) { return true; },
__anon84fd30b80302() 1717         .render = [](OH_EffectFilter *filter, OH_EffectBufferInfo *src, OH_EffectFilterDelegate_PushData pushData) {
1718             pushData(filter, src);
1719             return true;
1720         },
__anon84fd30b80402() 1721         .save = [](OH_EffectFilter *filter, char **info) { return true; },
__anon84fd30b80502() 1722         .restore = [](const char *info) { return OH_EffectFilter_Create("CustomBrightnessEFilter"); }
1723     };
1724 
1725     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Register(filterInfo_, &delegate);
1726     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1727         "OHEFilterRegister001 OH_EffectFilter_Register failed";
1728 
1729     GTEST_LOG_(INFO) << "OHEFilterRegister001 success! result: " << errorCode;
1730     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister001 END";
1731 }
1732 
1733 /**
1734  * Feature: ImageEffect
1735  * Function: Test OH_EffectFilter_Register with ImageEffect_FilterDelegate not exist OH_EffectFilter parameter
1736  * SubFunction: NA
1737  * FunctionPoints: NA
1738  * EnvConditions: NA
1739  * CaseDescription: Test OH_EffectFilter_Register with ImageEffect_FilterDelegate not exist OH_EffectFilter parameter
1740  */
1741 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRegister002, TestSize.Level1)
1742 {
1743     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister002 start";
1744 
1745     ImageEffect_FilterDelegate delegate = {
__anon84fd30b80602() 1746         .setValue = [](OH_EffectFilter *filter, const char *key, const ImageEffect_Any *value) { return true; },
__anon84fd30b80702() 1747         .render = [](OH_EffectFilter *filter, OH_EffectBufferInfo *src, OH_EffectFilterDelegate_PushData pushData) {
1748             pushData(filter, src);
1749             return true;
1750         },
__anon84fd30b80802() 1751         .save = [](OH_EffectFilter *filter, char **info) { return true; },
__anon84fd30b80902() 1752         .restore = [](const char *info) { return OH_EffectFilter_Create("CustomTestEFilter"); }
1753     };
1754 
1755     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Register(filterInfo_, &delegate);
1756     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1757         "OHEFilterRegister002 OH_EffectFilter_Register failed";
1758 
1759     GTEST_LOG_(INFO) << "OHEFilterRegister002 success! result: " << errorCode;
1760     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister002 END";
1761 }
1762 
1763 /**
1764  * Feature: ImageEffect
1765  * Function: Test OH_EffectFilter_Register with ImageEffect_FilterDelegate all false parameter
1766  * SubFunction: NA
1767  * FunctionPoints: NA
1768  * EnvConditions: NA
1769  * CaseDescription: Test OH_EffectFilter_Register with ImageEffect_FilterDelegate all false parameter
1770  */
1771 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRegister003, TestSize.Level1)
1772 {
1773     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister003 start";
1774 
1775     ImageEffect_FilterDelegate delegate = {
__anon84fd30b80a02() 1776         .setValue = [](OH_EffectFilter *filter, const char *key, const ImageEffect_Any *value) { return false; },
__anon84fd30b80b02() 1777         .render = [](OH_EffectFilter *filter, OH_EffectBufferInfo *src, OH_EffectFilterDelegate_PushData pushData) {
1778             return false;
1779         },
__anon84fd30b80c02() 1780         .save = [](OH_EffectFilter *filter, char **info) { return false; },
__anon84fd30b80d02() 1781         .restore = [](const char *info) { return OH_EffectFilter_Create("CustomBrightnessEFilter"); }
1782     };
1783 
1784     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Register(filterInfo_, &delegate);
1785     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1786         "OHEFilterRegister003 OH_EffectFilter_Register failed";
1787 
1788     GTEST_LOG_(INFO) << "OHEFilterRegister003 success! result: " << errorCode;
1789     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister003 END";
1790 }
1791 
1792 /**
1793  * Feature: ImageEffect
1794  * Function: Test OH_EffectFilter_Register with OH_EffectInfo not exist OH_EffectFilter parameter
1795  * SubFunction: NA
1796  * FunctionPoints: NA
1797  * EnvConditions: NA
1798  * CaseDescription: Test OH_EffectFilter_Register with OH_EffectInfo not exist OH_EffectFilter parameter
1799  */
1800 HWTEST_F(ImageEffectCApiUnittest, OHEFilterRegister004, TestSize.Level1)
1801 {
1802     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister004 start";
1803 
1804     ImageEffect_FilterDelegate delegate = {
__anon84fd30b80e02() 1805         .setValue = [](OH_EffectFilter *filter, const char *key, const ImageEffect_Any *value) { return true; },
__anon84fd30b80f02() 1806         .render = [](OH_EffectFilter *filter, OH_EffectBufferInfo *src, OH_EffectFilterDelegate_PushData pushData) {
1807             pushData(filter, src);
1808             return true;
1809         },
__anon84fd30b81002() 1810         .save = [](OH_EffectFilter *filter, char **info) { return true; },
__anon84fd30b81102() 1811         .restore = [](const char *info) { return OH_EffectFilter_Create("CustomBrightnessEFilter"); }
1812     };
1813 
1814     ImageEffect_ErrorCode errorCode = OH_EffectFilter_Register(filterInfo_, &delegate);
1815     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
1816         "OHEFilterRegister004 OH_EffectFilter_Register failed";
1817 
1818     GTEST_LOG_(INFO) << "OHEFilterRegister004 success! result: " << errorCode;
1819     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterRegister004 END";
1820 }
1821 
1822 /**
1823  * Feature: ImageEffect
1824  * Function: Test OH_EffectFilter_LookupFilterInfo with normal parameter
1825  * SubFunction: NA
1826  * FunctionPoints: NA
1827  * EnvConditions: NA
1828  * CaseDescription: Test OH_EffectFilter_LookupFilterInfo with normal parameter
1829  */
1830 HWTEST_F(ImageEffectCApiUnittest, OHEFilterLookupFilterInfo001, TestSize.Level1)
1831 {
1832     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo001 start";
1833 
1834     OH_EffectFilterInfo *filterInfo = OH_EffectFilterInfo_Create();
1835     ImageEffect_ErrorCode errorCode = OH_EffectFilter_LookupFilterInfo(BRIGHTNESS_EFILTER, filterInfo);
1836     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_LookupFilterInfo failed";
1837     OH_EffectFilterInfo_Release(filterInfo);
1838     GTEST_LOG_(INFO) << "OHEFilterLookupFilterInfo001 success! result: " << errorCode;
1839     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo001 END";
1840 }
1841 
1842 /**
1843  * Feature: ImageEffect
1844  * Function: Test OH_EffectFilter_LookupFilterInfo with empty key parameter
1845  * SubFunction: NA
1846  * FunctionPoints: NA
1847  * EnvConditions: NA
1848  * CaseDescription: Test OH_EffectFilter_LookupFilterInfo with empty key parameter
1849  */
1850 HWTEST_F(ImageEffectCApiUnittest, OHEFilterLookupFilterInfo002, TestSize.Level1)
1851 {
1852     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo002 start";
1853 
1854     OH_EffectFilterInfo *filterInfo = OH_EffectFilterInfo_Create();
1855     ImageEffect_ErrorCode errorCode = OH_EffectFilter_LookupFilterInfo(nullptr, filterInfo);
1856     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OHEFilterLookupFilterInfo failed";
1857     OH_EffectFilterInfo_Release(filterInfo);
1858     GTEST_LOG_(INFO) << "OHEFilterLookupFilterInfo002 success! result: " << errorCode;
1859     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo002 END";
1860 }
1861 
1862 /**
1863  * Feature: ImageEffect
1864  * Function: Test OH_EffectFilter_LookupFilterInfo with not esist key parameter
1865  * SubFunction: NA
1866  * FunctionPoints: NA
1867  * EnvConditions: NA
1868  * CaseDescription: Test OH_EffectFilter_LookupFilterInfo with not esist key parameter
1869  */
1870 HWTEST_F(ImageEffectCApiUnittest, OHEFilterLookupFilterInfo003, TestSize.Level1)
1871 {
1872     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo003 start";
1873 
1874     OH_EffectFilterInfo *filterInfo = OH_EffectFilterInfo_Create();
1875     ImageEffect_ErrorCode errorCode = OH_EffectFilter_LookupFilterInfo("TestEFilter", filterInfo);
1876     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OHEFilterLookupFilterInfo003 failed";
1877     OH_EffectFilterInfo_Release(filterInfo);
1878     GTEST_LOG_(INFO) << "OHEFilterLookupFilterInfo003 success! result: " << errorCode;
1879     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo003 END";
1880 }
1881 
1882 /**
1883  * Feature: ImageEffect
1884  * Function: Test OH_EffectFilter_LookupFilterInfo with all empty parameter
1885  * SubFunction: NA
1886  * FunctionPoints: NA
1887  * EnvConditions: NA
1888  * CaseDescription: Test OH_EffectFilter_LookupFilterInfo with all empty parameter
1889  */
1890 HWTEST_F(ImageEffectCApiUnittest, OHEFilterLookupFilterInfo004, TestSize.Level1)
1891 {
1892     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo004 start";
1893 
1894     ImageEffect_ErrorCode errorCode = OH_EffectFilter_LookupFilterInfo(nullptr, nullptr);
1895     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_LookupFilterInfo failed";
1896 
1897     GTEST_LOG_(INFO) << "OHEFilterLookupFilterInfo004 success! result: " << errorCode;
1898     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo004 END";
1899 }
1900 
1901 /**
1902  * Feature: ImageEffect
1903  * Function: Test OH_EffectFilter_LookupFilterInfo with empty OH_EffectInfo parameter
1904  * SubFunction: NA
1905  * FunctionPoints: NA
1906  * EnvConditions: NA
1907  * CaseDescription: Test OH_EffectFilter_LookupFilterInfo with empty OH_EffectInfo parameter
1908  */
1909 HWTEST_F(ImageEffectCApiUnittest, OHEFilterLookupFilterInfo005, TestSize.Level1)
1910 {
1911     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo005 start";
1912 
1913     ImageEffect_ErrorCode errorCode = OH_EffectFilter_LookupFilterInfo(BRIGHTNESS_EFILTER, nullptr);
1914     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_EffectFilter_LookupFilterInfo failed";
1915 
1916     GTEST_LOG_(INFO) << "OHEFilterLookupFilterInfo005 success! result: " << errorCode;
1917     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHEFilterLookupFilterInfo005 END";
1918 }
1919 
1920 /**
1921  * Feature: ImageEffect
1922  * Function: Test OH_ImageEffect_Stop with normal parameter
1923  * SubFunction: NA
1924  * FunctionPoints: NA
1925  * EnvConditions: NA
1926  * CaseDescription: Test OH_ImageEffect_Stop with normal parameter
1927  */
1928 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectStop001, TestSize.Level1)
1929 {
1930     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStop001 start";
1931 
1932     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1933     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Stop(imageEffect);
1934     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Stop failed";
1935 
1936     GTEST_LOG_(INFO) << "OHImageEffectStop001 success! result: " << errorCode;
1937     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStop001 END";
1938 }
1939 
1940 /**
1941  * Feature: ImageEffect
1942  * Function: Test OH_ImageEffect_Stop with empty parameter
1943  * SubFunction: NA
1944  * FunctionPoints: NA
1945  * EnvConditions: NA
1946  * CaseDescription: Test OH_ImageEffect_Stop with empty parameter
1947  */
1948 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectStop002, TestSize.Level1)
1949 {
1950     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStop002 start";
1951 
1952     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Stop(nullptr);
1953     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Stop failed";
1954 
1955     GTEST_LOG_(INFO) << "OHImageEffectStop002 success! result: " << errorCode;
1956     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectStop002 END";
1957 }
1958 
1959 /**
1960  * Feature: ImageEffect
1961  * Function: Test OH_ImageEffect_Save with normal parameter
1962  * SubFunction: NA
1963  * FunctionPoints: NA
1964  * EnvConditions: NA
1965  * CaseDescription: Test OH_ImageEffect_Save with normal parameter
1966  */
1967 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSave001, TestSize.Level1)
1968 {
1969     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSave001 start";
1970 
1971     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
1972     char *imageEffectInfo = nullptr;
1973     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
1974 
1975     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Save failed";
1976 
1977     GTEST_LOG_(INFO) << "OHImageEffectSave001 success! result: " << errorCode;
1978     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSave001 END";
1979 }
1980 
1981 /**
1982  * Feature: ImageEffect
1983  * Function: Test OH_ImageEffect_Save with empty OH_ImageEffect parameter
1984  * SubFunction: NA
1985  * FunctionPoints: NA
1986  * EnvConditions: NA
1987  * CaseDescription: Test OH_ImageEffect_Save with empty OH_ImageEffect parameter
1988  */
1989 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSave002, TestSize.Level1)
1990 {
1991     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSave002 start";
1992 
1993     char *imageEffectInfo = nullptr;
1994     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Save(nullptr, &imageEffectInfo);
1995 
1996     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Save failed";
1997 
1998     GTEST_LOG_(INFO) << "OHImageEffectSave002 success! result: " << errorCode;
1999     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSave002 END";
2000 }
2001 
2002 /**
2003  * Feature: ImageEffect
2004  * Function: Test OH_ImageEffect_Restore with normal parameter
2005  * SubFunction: NA
2006  * FunctionPoints: NA
2007  * EnvConditions: NA
2008  * CaseDescription: Test OH_ImageEffect_Restore with normal parameter
2009  */
2010 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRestore001, TestSize.Level1)
2011 {
2012     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRestore001 start";
2013 
2014     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2015     ASSERT_NE(imageEffect, nullptr) << "OH_ImageEffect_Restore failed";
2016     char *imageEffectInfo = nullptr;
2017     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
2018     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Restore failed";
2019     imageEffect = OH_ImageEffect_Restore(imageEffectInfo);
2020     ASSERT_NE(imageEffect, nullptr) << "OH_ImageEffect_Restore failed";
2021 
2022     GTEST_LOG_(INFO) << "OHImageEffectRestore001 success! result: " << errorCode;
2023     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRestore001 END";
2024 }
2025 
2026 /**
2027  * Feature: ImageEffect
2028  * Function: Test OH_ImageEffect_Restore submethods OH_ImageEffect_Save with empty OH_ImageEffect parameter
2029  * SubFunction: NA
2030  * FunctionPoints: NA
2031  * EnvConditions: NA
2032  * CaseDescription: Test OH_ImageEffect_Restore submethods OH_ImageEffect_Save with empty OH_ImageEffect parameter
2033  */
2034 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRestore002, TestSize.Level1)
2035 {
2036     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRestore002 start";
2037 
2038     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2039     ASSERT_NE(imageEffect, nullptr) << "OH_ImageEffect_Restore failed";
2040     char *imageEffectInfo = nullptr;
2041     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Save(nullptr, &imageEffectInfo);
2042     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Restore failed";
2043     imageEffect = OH_ImageEffect_Restore(imageEffectInfo);
2044     ASSERT_EQ(imageEffect, nullptr) << "OH_ImageEffect_Restore failed";
2045 
2046     GTEST_LOG_(INFO) << "OHImageEffectRestore002 success! result: " << errorCode;
2047     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRestore002 END";
2048 }
2049 
2050 /**
2051  * Feature: ImageEffect
2052  * Function: Test OH_ImageEffect_Restore with empty parameter
2053  * SubFunction: NA
2054  * FunctionPoints: NA
2055  * EnvConditions: NA
2056  * CaseDescription: Test OH_ImageEffect_Restore with empty parameter
2057  */
2058 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectRestore003, TestSize.Level1)
2059 {
2060     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRestore003 start";
2061 
2062     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2063     ASSERT_NE(imageEffect, nullptr) << "OH_ImageEffect_Restore failed";
2064     char *imageEffectInfo = nullptr;
2065     ImageEffect_ErrorCode errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
2066     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_Restore failed";
2067     imageEffect = OH_ImageEffect_Restore(nullptr);
2068     ASSERT_EQ(imageEffect, nullptr) << "OH_ImageEffect_Restore failed";
2069 
2070     GTEST_LOG_(INFO) << "OHImageEffectRestore003 success! result: " << errorCode;
2071     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectRestore003 END";
2072 }
2073 
2074 /**
2075  * Feature: ImageEffect
2076  * Function: Test OH_ImageEffect_SetOutputSurface with normal parameter
2077  * SubFunction: NA
2078  * FunctionPoints: NA
2079  * EnvConditions: NA
2080  * CaseDescription: Test OH_ImageEffect_SetOutputSurface with normal parameter
2081  */
2082 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputSurface001, TestSize.Level1)
2083 {
2084     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface001 start";
2085 
2086     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2087     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputSurface(imageEffect, nativeWindow_);
2088 
2089     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputSurface failed";
2090 
2091     GTEST_LOG_(INFO) << "OHImageEffectSetOutputSurface001 success! result: " << errorCode;
2092     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface001 END";
2093 }
2094 
2095 /**
2096  * Feature: ImageEffect
2097  * Function: Test OH_ImageEffect_SetOutputSurface with all empty parameter
2098  * SubFunction: NA
2099  * FunctionPoints: NA
2100  * EnvConditions: NA
2101  * CaseDescription: Test OH_ImageEffect_SetOutputSurface with all empty parameter
2102  */
2103 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputSurface002, TestSize.Level1)
2104 {
2105     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface002 start";
2106 
2107     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputSurface(nullptr, nullptr);
2108 
2109     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputSurface failed";
2110 
2111     GTEST_LOG_(INFO) << "OHImageEffectSetOutputSurface002 success! result: " << errorCode;
2112     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface002 END";
2113 }
2114 
2115 /**
2116  * Feature: ImageEffect
2117  * Function: Test OH_ImageEffect_SetOutputSurface with empty OH_ImageEffect parameter
2118  * SubFunction: NA
2119  * FunctionPoints: NA
2120  * EnvConditions: NA
2121  * CaseDescription: Test OH_ImageEffect_SetOutputSurface with empty OH_ImageEffect parameter
2122  */
2123 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputSurface003, TestSize.Level1)
2124 {
2125     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface003 start";
2126 
2127     OHNativeWindow *nativeWindow = new OHNativeWindow();
2128     nativeWindow->surface = nullptr;
2129     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputSurface(nullptr, nativeWindow);
2130     delete nativeWindow;
2131     nativeWindow = nullptr;
2132 
2133     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputSurface failed";
2134 
2135     GTEST_LOG_(INFO) << "OHImageEffectSetOutputSurface003 success! result: " << errorCode;
2136     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface003 END";
2137 }
2138 
2139 /**
2140  * Feature: ImageEffect
2141  * Function: Test OH_ImageEffect_SetOutputSurface with empty surfaceId parameter
2142  * SubFunction: NA
2143  * FunctionPoints: NA
2144  * EnvConditions: NA
2145  * CaseDescription: Test OH_ImageEffect_SetOutputSurface with empty surfaceId parameter
2146  */
2147 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetOutputSurface004, TestSize.Level1)
2148 {
2149     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface004 start";
2150 
2151     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2152     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetOutputSurface(imageEffect, nullptr);
2153 
2154     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetOutputSurface failed";
2155 
2156     GTEST_LOG_(INFO) << "OHImageEffectSetOutputSurface004 success! result: " << errorCode;
2157     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetOutputSurface004 END";
2158 }
2159 
2160 /**
2161  * Feature: ImageEffect
2162  * Function: Test OH_ImageEffect_GetInputSurface with normal parameter
2163  * SubFunction: NA
2164  * FunctionPoints: NA
2165  * EnvConditions: NA
2166  * CaseDescription: Test OH_ImageEffect_GetInputSurface with normal parameter
2167  */
2168 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectGetInputSurface001, TestSize.Level1)
2169 {
2170     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectGetInputSurface001 start";
2171 
2172     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2173     OHNativeWindow *nativeWindow = nullptr;
2174     ImageEffect_ErrorCode errorCode = OH_ImageEffect_GetInputSurface(imageEffect, &nativeWindow);
2175 
2176     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_GetInputSurface failed";
2177     ASSERT_NE(nativeWindow, nullptr) << "OH_ImageEffect_GetInputSurface failed";
2178 
2179     GTEST_LOG_(INFO) << "OHImageEffectGetInputSurface001 success! result: " << errorCode;
2180     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectGetInputSurface001 END";
2181 }
2182 
2183 /**
2184  * Feature: ImageEffect
2185  * Function: Test OH_ImageEffect_GetInputSurface with empty OH_ImageEffect parameter
2186  * SubFunction: NA
2187  * FunctionPoints: NA
2188  * EnvConditions: NA
2189  * CaseDescription: Test OH_ImageEffect_GetInputSurface with empty OH_ImageEffect parameter
2190  */
2191 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectGetInputSurface002, TestSize.Level1)
2192 {
2193     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectGetInputSurface002 start";
2194 
2195     OHNativeWindow *nativeWindow = nullptr;
2196     ImageEffect_ErrorCode errorCode = OH_ImageEffect_GetInputSurface(nullptr, &nativeWindow);
2197 
2198     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_GetInputSurface failed";
2199     ASSERT_EQ(nativeWindow, nullptr) << "OH_ImageEffect_GetInputSurface failed";
2200 
2201     GTEST_LOG_(INFO) << "OHImageEffectGetInputSurface002 success! result: " << errorCode;
2202     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectGetInputSurface002 END";
2203 }
2204 
2205 /**
2206  * Feature: ImageEffect
2207  * Function: Test ImageEffectSaveAndRestore with normal parameter
2208  * SubFunction: NA
2209  * FunctionPoints: NA
2210  * EnvConditions: NA
2211  * CaseDescription: Test ImageEffectSaveAndRestore with normal parameter
2212  */
2213 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSaveAndRestoreUnittest001, TestSize.Level1)
2214 {
2215     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSaveAndRestoreUnittest001 start";
2216 
2217     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2218     ASSERT_NE(imageEffect, nullptr) << "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_Create failed";
2219 
2220     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
2221     ASSERT_NE(filter, nullptr) << "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_AddFilter failed";
2222 
2223     ImageEffect_Any value;
2224     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
2225     value.dataValue.floatValue = 100.f;
2226     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
2227     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2228         "ImageEffectSaveAndRestoreUnittest001 OH_EffectFilter_SetValue failed";
2229 
2230     char *imageEffectInfo = nullptr;
2231     errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
2232     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2233         "ImageEffectSaveAndRestoreUnittest001 OH_EffectFilter_SetValue failed";
2234 
2235     ASSERT_NE(imageEffectInfo, nullptr) << "ImageEffectSaveAndRestoreUnittest001 imageEffectInfo is null";
2236     std::string info = imageEffectInfo;
2237 
2238     errorCode = OH_ImageEffect_Release(imageEffect);
2239     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2240         "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_Release failed";
2241 
2242     imageEffect = OH_ImageEffect_Restore(info.c_str());
2243     ASSERT_NE(imageEffect, nullptr) << "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_Restore failed";
2244 
2245     OH_EffectFilter *restoreFilter = OH_ImageEffect_GetFilter(imageEffect, 0);
2246     ASSERT_NE(restoreFilter, nullptr) << "ImageEffectSaveAndRestoreUnittest001: OH_ImageEffect_GetFilter failed";
2247 
2248     ImageEffect_Any restoreValue;
2249     OH_EffectFilter_GetValue(restoreFilter, KEY_FILTER_INTENSITY, &restoreValue);
2250     ASSERT_FLOAT_EQ(restoreValue.dataValue.floatValue, 100.f) <<
2251         "ImageEffectSaveAndRestoreUnittest001 OH_EffectFilter_GetValue failed";
2252 
2253     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
2254         ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2255         "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_SetInputPixelmap failed";
2256 
2257     errorCode = OH_ImageEffect_Start(imageEffect);
2258     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2259         "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_Start failed";
2260 
2261     errorCode = OH_ImageEffect_Release(imageEffect);
2262     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2263         "ImageEffectSaveAndRestoreUnittest001 OH_ImageEffect_Release failed";
2264 
2265     GTEST_LOG_(INFO) << "ImageEffectSaveAndRestoreUnittest001 success! result: " << errorCode;
2266     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest ImageEffectSaveAndRestoreUnittest001 END";
2267 }
2268 
2269 /**
2270  * Feature: ImageEffect
2271  * Function: Test ImageEffectSaveAndRestore unobstructed func OH_ImageEffect_Create
2272  * SubFunction: NA
2273  * FunctionPoints: NA
2274  * EnvConditions: NA
2275  * CaseDescription: Test ImageEffectSaveAndRestore unobstructed func OH_ImageEffect_Create
2276  */
2277 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSaveAndRestoreUnittest002, TestSize.Level1)
2278 {
2279     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSaveAndRestoreUnittest002 start";
2280 
2281     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(nullptr, BRIGHTNESS_EFILTER);
2282     ASSERT_EQ(filter, nullptr) << "ImageEffectSaveAndRestoreUnittest002 OH_ImageEffect_AddFilter failed";
2283 
2284     ImageEffect_Any value;
2285     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
2286     value.dataValue.floatValue = 100.f;
2287     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
2288     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2289         "ImageEffectSaveAndRestoreUnittest002 OH_EffectFilter_SetValue failed";
2290 
2291     char *imageEffectInfo = nullptr;
2292     errorCode = OH_ImageEffect_Save(nullptr, &imageEffectInfo);
2293     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2294         "ImageEffectSaveAndRestoreUnittest002 OH_EffectFilter_SetValue failed";
2295 
2296     errorCode = OH_ImageEffect_Release(nullptr);
2297     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2298         "ImageEffectSaveAndRestoreUnittest00 OH_ImageEffect_Release failed";
2299 
2300     errorCode = OH_ImageEffect_SetInputPixelmap(nullptr, pixelmapNative_);
2301     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2302         "ImageEffectSaveAndRestoreUnittest002 OH_ImageEffect_SetInputPixelmap failed";
2303 
2304     errorCode = OH_ImageEffect_Start(nullptr);
2305     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2306         "ImageEffectSaveAndRestoreUnittest002 OH_ImageEffect_Start failed";
2307 
2308     errorCode = OH_ImageEffect_Release(nullptr);
2309     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2310         "ImageEffectSaveAndRestoreUnittest002 OH_ImageEffect_Release failed";
2311 
2312     GTEST_LOG_(INFO) << "ImageEffectSaveAndRestoreUnittest002 success! result: " << errorCode;
2313     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSaveAndRestoreUnittest002 END";
2314 }
2315 
2316 /**
2317  * Feature: ImageEffect
2318  * Function: Test ImageEffectSaveAndRestore unobstructed func OH_ImageEffect_AddFilter
2319  * SubFunction: NA
2320  * FunctionPoints: NA
2321  * EnvConditions: NA
2322  * CaseDescription: Test ImageEffectSaveAndRestore unobstructed func OH_ImageEffect_AddFilter
2323  */
2324 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSaveAndRestoreUnittest003, TestSize.Level1)
2325 {
2326     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest ImageEffectSaveAndRestoreUnittest003 start";
2327 
2328     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2329     ASSERT_NE(imageEffect, nullptr) << "ImageEffectSaveAndRestoreUnittest003 OH_ImageEffect_Create failed";
2330 
2331     ImageEffect_Any value;
2332     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
2333     value.dataValue.floatValue = 100.f;
2334     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(nullptr, KEY_FILTER_INTENSITY, &value);
2335     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2336         "ImageEffectSaveAndRestoreUnittest003 OH_EffectFilter_SetValue failed";
2337 
2338     char *imageEffectInfo = nullptr;
2339     errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
2340     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2341         "ImageEffectSaveAndRestoreUnittest003 OH_EffectFilter_SetValue failed";
2342     ASSERT_NE(imageEffectInfo, nullptr);
2343     std::string infoStr = imageEffectInfo;
2344 
2345     errorCode = OH_ImageEffect_Release(imageEffect);
2346     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2347         "ImageEffectSaveAndRestoreUnittest003 OH_ImageEffect_Release failed";
2348 
2349     imageEffect = OH_ImageEffect_Restore(infoStr.c_str());
2350     ASSERT_NE(imageEffect, nullptr) << "ImageEffectSaveAndRestoreUnittest00 OH_ImageEffect_Restore failed";
2351 
2352     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
2353         ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2354         "ImageEffectSaveAndRestoreUnittest003 OH_ImageEffect_SetInputPixelmap failed";
2355 
2356     errorCode = OH_ImageEffect_Start(imageEffect);
2357     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2358         "ImageEffectSaveAndRestoreUnittest003 OH_ImageEffect_Start failed";
2359 
2360     errorCode = OH_ImageEffect_Release(imageEffect);
2361     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2362         "ImageEffectSaveAndRestoreUnittest003 OH_ImageEffect_Release failed";
2363 
2364     GTEST_LOG_(INFO) << "ImageEffectSaveAndRestoreUnittest003 success! result: " << errorCode;
2365     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest ImageEffectSaveAndRestoreUnittest003 END";
2366 }
2367 
2368 /**
2369  * Feature: ImageEffect
2370  * Function: Test ImageEffectSaveAndRestore with empty inputPixelmap parameter
2371  * SubFunction: NA
2372  * FunctionPoints: NA
2373  * EnvConditions: NA
2374  * CaseDescription: Test ImageEffectSaveAndRestore with empty inputPixelmap parameter
2375  */
2376 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSaveAndRestoreUnittest004, TestSize.Level1)
2377 {
2378     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest ImageEffectSaveAndRestoreUnittest004 start";
2379 
2380     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2381     ASSERT_NE(imageEffect, nullptr) << "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_Create failed";
2382 
2383     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, BRIGHTNESS_EFILTER);
2384     ASSERT_NE(filter, nullptr) << "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_AddFilter failed";
2385 
2386     ImageEffect_Any value;
2387     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
2388     value.dataValue.floatValue = 100.f;
2389     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
2390     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2391         "ImageEffectSaveAndRestoreUnittest004 OH_EffectFilter_SetValue failed";
2392 
2393     char *imageEffectInfo = nullptr;
2394     errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
2395     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2396         "ImageEffectSaveAndRestoreUnittest004 OH_EffectFilter_SetValue failed";
2397 
2398     ASSERT_NE(imageEffectInfo, nullptr);
2399     std::string info = imageEffectInfo;
2400 
2401     errorCode = OH_ImageEffect_Release(imageEffect);
2402     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2403         "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_Release failed";
2404 
2405     imageEffect = OH_ImageEffect_Restore(info.c_str());
2406     ASSERT_NE(imageEffect, nullptr) << "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_Restore failed";
2407 
2408     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, nullptr);
2409     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2410         "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_SetInputPixelmap failed";
2411 
2412     errorCode = OH_ImageEffect_Start(imageEffect);
2413     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2414         "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_Start failed";
2415 
2416     errorCode = OH_ImageEffect_Release(imageEffect);
2417     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) <<
2418         "ImageEffectSaveAndRestoreUnittest004 OH_ImageEffect_Release failed";
2419 
2420     GTEST_LOG_(INFO) << "ImageEffectSaveAndRestoreUnittest004 success! result: " << errorCode;
2421     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: ImageEffectSaveAndRestoreUnittest004 END";
2422 }
2423 
2424 /**
2425  * Feature: ImageEffect
2426  * Function: Test ImageEffectSaveAndRestore with ContrastEFilter normal parameter
2427  * SubFunction: NA
2428  * FunctionPoints: NA
2429  * EnvConditions: NA
2430  * CaseDescription: Test ImageEffectSaveAndRestore with ContrastEFilter normal parameter
2431  */
2432 HWTEST_F(ImageEffectCApiUnittest, ImageEffectSaveAndRestoreUnittest005, TestSize.Level1)
2433 {
2434     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2435     ASSERT_NE(imageEffect, nullptr);
2436 
2437     OH_EffectFilter *filter = OH_ImageEffect_AddFilter(imageEffect, CONTRAST_EFILTER);
2438     ASSERT_NE(filter, nullptr);
2439 
2440     ImageEffect_Any value;
2441     value.dataType = ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT;
2442     value.dataValue.floatValue = 200.f;
2443     ImageEffect_ErrorCode errorCode = OH_EffectFilter_SetValue(filter, KEY_FILTER_INTENSITY, &value);
2444     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2445 
2446     ImageEffect_Any result;
2447     errorCode = OH_EffectFilter_GetValue(filter, KEY_FILTER_INTENSITY, &result);
2448     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2449     ASSERT_EQ(result.dataType, ImageEffect_DataType::EFFECT_DATA_TYPE_FLOAT);
2450     ASSERT_EQ(result.dataValue.floatValue, 100.f);
2451 
2452     char *imageEffectInfo = nullptr;
2453     errorCode = OH_ImageEffect_Save(imageEffect, &imageEffectInfo);
2454     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2455 
2456     ASSERT_NE(imageEffectInfo, nullptr);
2457     std::string info = imageEffectInfo;
2458 
2459     errorCode = OH_ImageEffect_Release(imageEffect);
2460     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2461 
2462     imageEffect = OH_ImageEffect_Restore(info.c_str());
2463     ASSERT_NE(imageEffect, nullptr);
2464 
2465     errorCode = OH_ImageEffect_SetInputPixelmap(imageEffect, pixelmapNative_);
2466     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2467 
2468     std::shared_ptr<PixelMap> outputPixelmap = std::make_shared<MockPixelMap>();
2469     std::shared_ptr<OH_PixelmapNative> outputPixelmapNative = std::make_shared<OH_PixelmapNative>(outputPixelmap);
2470     errorCode = OH_ImageEffect_SetOutputPixelmap(imageEffect, outputPixelmapNative.get());
2471     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2472 
2473     errorCode = OH_ImageEffect_Start(imageEffect);
2474     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2475 
2476     errorCode = OH_ImageEffect_Release(imageEffect);
2477     ASSERT_EQ(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS);
2478 }
2479 
2480 /**
2481  * Feature: ImageEffect
2482  * Function: Test OH_ImageEffect_SetInputUri with empty uri parameter
2483  * SubFunction: NA
2484  * FunctionPoints: NA
2485  * EnvConditions: NA
2486  * CaseDescription: Test OH_ImageEffect_SetInputUri with empty uri parameter
2487  */
2488 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectSetInputUri001, TestSize.Level1)
2489 {
2490     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputUri001 start";
2491     OH_ImageEffect *imageEffect = OH_ImageEffect_Create(IMAGE_EFFECT_NAME);
2492     ASSERT_NE(imageEffect, nullptr) << "OHImageEffectSetInputUri001 OH_ImageEffect_Create failed";
2493 
2494     ImageEffect_ErrorCode errorCode = OH_ImageEffect_SetInputUri(imageEffect, nullptr);
2495     ASSERT_NE(errorCode, ImageEffect_ErrorCode::EFFECT_SUCCESS) << "OH_ImageEffect_SetInputUri failed";
2496 
2497     GTEST_LOG_(INFO) << "OHImageEffectSetInputUri001 success! result: " << errorCode;
2498     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectSetInputUri001 END";
2499 }
2500 
2501 /**
2502  * Feature: ImageEffect
2503  * Function: Test OH_ImageEffect_FiltersSize with empty parameter
2504  * SubFunction: NA
2505  * FunctionPoints: NA
2506  * EnvConditions: NA
2507  * CaseDescription: Test OH_ImageEffect_FiltersSize with empty parameter
2508  */
2509 HWTEST_F(ImageEffectCApiUnittest, OHImageEffectFiltersSize001, TestSize.Level1)
2510 {
2511     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectFiltersSize001 start";
2512     int32_t res = OH_ImageEffect_GetFilterCount(nullptr);
2513     ASSERT_EQ(res, 0) << "OHImageEffectFiltersSize001 OH_ImageEffect_FiltersSize failed";
2514 
2515     GTEST_LOG_(INFO) << "OHImageEffectFiltersSize001 success! result: " << res;
2516     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OHImageEffectFiltersSize001 END";
2517 }
2518 
2519 /**
2520  * Feature: ImageEffect
2521  * Function: Test OH_ImageEffect_GetFilter with empty parameter
2522  * SubFunction: NA
2523  * FunctionPoints: NA
2524  * EnvConditions: NA
2525  * CaseDescription: Test OH_ImageEffect_GetFilter with empty parameter
2526  */
2527 HWTEST_F(ImageEffectCApiUnittest, OH_ImageEffect_GetFilter001, TestSize.Level1)
2528 {
2529     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OH_ImageEffect_GetFilter001 start";
2530     OH_EffectFilter *filter = OH_ImageEffect_GetFilter(nullptr, 0);
2531     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_GetFilter001 OH_ImageEffect_GetFilter failed";
2532 
2533     GTEST_LOG_(INFO) << "OH_ImageEffect_GetFilter001 success! result: " << filter;
2534     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OH_ImageEffect_GetFilter001 END";
2535 }
2536 
2537 /**
2538  * Feature: ImageEffect
2539  * Function: Test OH_ImageEffect_GetFilter with empty parameter and negative index
2540  * SubFunction: NA
2541  * FunctionPoints: NA
2542  * EnvConditions: NA
2543  * CaseDescription: Test OH_ImageEffect_GetFilter with empty parameter and negative index
2544  */
2545 HWTEST_F(ImageEffectCApiUnittest, OH_ImageEffect_GetFilter002, TestSize.Level1)
2546 {
2547     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OH_ImageEffect_GetFilter002 start";
2548     OH_EffectFilter *filter = OH_ImageEffect_GetFilter(nullptr, -1);
2549     ASSERT_EQ(filter, nullptr) << "OH_ImageEffect_GetFilter002 OH_ImageEffect_GetFilter failed";
2550 
2551     GTEST_LOG_(INFO) << "OH_ImageEffect_GetFilter002 success! result: " << filter;
2552     GTEST_LOG_(INFO) << "ImageEffectCApiUnittest: OH_ImageEffect_GetFilter002 END";
2553 }
2554 } // namespace Effect
2555 } // namespace Media
2556 } // namespace OHOS