• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 #include "RectFontTest.h"
16 #include <native_drawing/drawing_path.h>
17 #include <native_drawing/drawing_point.h>
18 #include <native_drawing/drawing_register_font.h>
19 #include <native_drawing/drawing_round_rect.h>
20 #include <native_drawing/drawing_rect.h>
21 #include <native_drawing/drawing_sampling_options.h>
22 #include <native_drawing/drawing_font.h>
23 #include <native_drawing/drawing_brush.h>
24 #include <native_drawing/drawing_pen.h>
addRectTest(std::vector<napi_property_descriptor> & descData)25 void addRectTest(std::vector<napi_property_descriptor>& descData)
26 {
27     descData.push_back({"rectGetArraySizeSuccess", nullptr, OH_Drawing_RectGetArraySizeSuccess,
28         nullptr, nullptr, nullptr, napi_default, nullptr});
29     descData.push_back({"rectGetArraySizeFail", nullptr, OH_Drawing_RectGetArraySizeFail,
30         nullptr, nullptr, nullptr, napi_default, nullptr});
31     descData.push_back({"rectGetArrayElementSuccess", nullptr, OH_Drawing_RectGetArrayElementSuccess,
32         nullptr, nullptr, nullptr, napi_default, nullptr});
33     descData.push_back({"rectGetArrayElementFail", nullptr, OH_Drawing_RectGetArrayElementFail,
34         nullptr, nullptr, nullptr, napi_default, nullptr});
35     descData.push_back({"rectDestroyArraySuccess", nullptr, OH_Drawing_RectDestroyArraySuccess,
36         nullptr, nullptr, nullptr, napi_default, nullptr});
37     descData.push_back({"rectDestroyArrayFail", nullptr, OH_Drawing_RectDestroyArrayFail,
38         nullptr, nullptr, nullptr, napi_default, nullptr});
39     descData.push_back({"roundRectOffsetSuccess", nullptr, OH_Drawing_RoundRectOffsetSuccess,
40         nullptr, nullptr, nullptr, napi_default, nullptr});
41     descData.push_back({"roundRectOffsetFail", nullptr, OH_Drawing_RoundRectOffsetFail,
42         nullptr, nullptr, nullptr, napi_default, nullptr});
43 }
AddFontTest(std::vector<napi_property_descriptor> & descData)44 void AddFontTest(std::vector<napi_property_descriptor>& descData)
45 {
46     descData.push_back({"fontMeasureSingleCharacterWithFeaturesSuccess", nullptr,
47         OH_Drawing_FontMeasureSingleCharacterWithFeaturesSuccess, nullptr, nullptr, nullptr, napi_default, nullptr});
48     descData.push_back({"fontMeasureSingleCharacterWithFeaturesFail", nullptr,
49         OH_Drawing_FontMeasureSingleCharacterWithFeaturesFail, nullptr, nullptr, nullptr, napi_default, nullptr});
50     descData.push_back({"fontMeasureTextSuccess", nullptr, OH_Drawing_FontMeasureTextSuccess,
51         nullptr, nullptr, nullptr, napi_default, nullptr});
52     descData.push_back({"fontMeasureTextFail", nullptr, OH_Drawing_FontMeasureTextFail,
53         nullptr, nullptr, nullptr, napi_default, nullptr});
54     descData.push_back({"fontMeasureTextWithBrushOrPenFail", nullptr, OH_Drawing_FontMeasureTextWithBrushOrPenFail,
55         nullptr, nullptr, nullptr, napi_default, nullptr});
56     descData.push_back({"fontGetWidthsBoundsFail", nullptr, OH_Drawing_FontGetWidthsBoundsFail,
57         nullptr, nullptr, nullptr, napi_default, nullptr});
58     descData.push_back({"fontGetPosSuccess", nullptr, OH_Drawing_FontGetPosSuccess,
59         nullptr, nullptr, nullptr, napi_default, nullptr});
60     descData.push_back({"fontGetPosFail", nullptr, OH_Drawing_FontGetPosFail,
61         nullptr, nullptr, nullptr, napi_default, nullptr});
62     descData.push_back({"fontGetSpacingSuccess", nullptr, OH_Drawing_FontGetSpacingSuccess,
63         nullptr, nullptr, nullptr, napi_default, nullptr});
64     descData.push_back({"fontGetSpacingFail", nullptr, OH_Drawing_FontGetSpacingFail,
65         nullptr, nullptr, nullptr, napi_default, nullptr});
66     descData.push_back({"fontGetBoundsFail", nullptr, OH_Drawing_FontGetBoundsFail,
67         nullptr, nullptr, nullptr, napi_default, nullptr});
68     descData.push_back({"fontGetPathForGlyphSuccess", nullptr, OH_Drawing_FontGetPathForGlyphSuccess,
69         nullptr, nullptr, nullptr, napi_default, nullptr});
70     descData.push_back({"fontGetPathForGlyphFail", nullptr, OH_Drawing_FontGetPathForGlyphFail,
71         nullptr, nullptr, nullptr, napi_default, nullptr});
72     descData.push_back({"fontGetTextPathSuccess", nullptr, OH_Drawing_FontGetTextPathSuccess,
73         nullptr, nullptr, nullptr, napi_default, nullptr});
74     descData.push_back({"fontGetTextPathFail", nullptr, OH_Drawing_FontGetTextPathFail,
75         nullptr, nullptr, nullptr, napi_default, nullptr});
76     descData.push_back({"fontFeaturesCreateSuccess", nullptr, OH_Drawing_FontFeaturesCreateSuccess,
77         nullptr, nullptr, nullptr, napi_default, nullptr});
78     descData.push_back({"fontFeaturesAddFeatureSuccess", nullptr, OH_Drawing_FontFeaturesAddFeatureSuccess,
79         nullptr, nullptr, nullptr, napi_default, nullptr});
80     descData.push_back({"fontFeaturesAddFeatureFail", nullptr, OH_Drawing_FontFeaturesAddFeatureFail,
81         nullptr, nullptr, nullptr, napi_default, nullptr});
82     descData.push_back({"fontFeaturesDestroySuccess", nullptr, OH_Drawing_FontFeaturesDestroySuccess,
83         nullptr, nullptr, nullptr, napi_default, nullptr});
84     descData.push_back({"fontFeaturesDestroyFail", nullptr, OH_Drawing_FontFeaturesDestroyFail,
85         nullptr, nullptr, nullptr, napi_default, nullptr});
86 }
87 
OH_Drawing_RectGetArraySizeSuccess(napi_env env,napi_callback_info info)88  napi_value OH_Drawing_RectGetArraySizeSuccess(napi_env env, napi_callback_info info)
89 {
90     napi_value result;
91     size_t size = 10;
92     OH_Drawing_Array* arr = OH_Drawing_RectCreateArray(size);
93     size_t arraySize = 0;
94     OH_Drawing_ErrorCode errCode = OH_Drawing_RectGetArraySize(arr, &arraySize);
95     napi_create_int32(env,  errCode == OH_DRAWING_SUCCESS && arraySize == size, &result);
96 
97     return result;
98 }
OH_Drawing_RectGetArraySizeFail(napi_env env,napi_callback_info info)99  napi_value OH_Drawing_RectGetArraySizeFail(napi_env env, napi_callback_info info)
100 {
101     napi_value result;
102     size_t arraySize = 0;
103     OH_Drawing_ErrorCode errCode = OH_Drawing_RectGetArraySize(nullptr, &arraySize);
104     napi_create_int32(env,  errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
105     return result;
106 }
OH_Drawing_RectGetArrayElementSuccess(napi_env env,napi_callback_info info)107  napi_value OH_Drawing_RectGetArrayElementSuccess(napi_env env, napi_callback_info info)
108 {
109     napi_value result;
110     size_t size = 10;
111     OH_Drawing_Array* rectArray = OH_Drawing_RectCreateArray(size);
112     size_t index = 0;
113     float left = 10;
114     float top = 10;
115     float right = 10;
116     float bottom = 10;
117     OH_Drawing_Rect* prect = OH_Drawing_RectCreate(left, top, right, bottom);
118     OH_Drawing_ErrorCode errCode = OH_Drawing_RectGetArrayElement(rectArray, index, &prect);
119     napi_create_int32(env,  errCode == OH_DRAWING_SUCCESS, &result);
120     return result;
121 }
OH_Drawing_RectGetArrayElementFail(napi_env env,napi_callback_info info)122  napi_value OH_Drawing_RectGetArrayElementFail(napi_env env, napi_callback_info info)
123 {
124     napi_value result;
125     size_t size = 10;
126     OH_Drawing_Array* rectArray = OH_Drawing_RectCreateArray(size);
127     size_t index = 0;
128     float left = 10;
129     float top = 10;
130     float right = 10;
131     float bottom = 10;
132     OH_Drawing_Rect* prect = OH_Drawing_RectCreate(left, top, right, bottom);
133     OH_Drawing_ErrorCode errCode = OH_Drawing_RectGetArrayElement(nullptr, index, &prect);
134     napi_create_int32(env,  errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
135     return result;
136 }
137 
OH_Drawing_RectDestroyArraySuccess(napi_env env,napi_callback_info info)138  napi_value OH_Drawing_RectDestroyArraySuccess(napi_env env, napi_callback_info info)
139 {
140     napi_value result;
141     size_t size = 10;
142     OH_Drawing_Array* rectArray = OH_Drawing_RectCreateArray(size);
143     OH_Drawing_ErrorCode errCode = OH_Drawing_RectDestroyArray(rectArray);
144     napi_create_int32(env,  errCode == OH_DRAWING_SUCCESS, &result);
145 
146     return result;
147 }
148 
OH_Drawing_RectDestroyArrayFail(napi_env env,napi_callback_info info)149  napi_value OH_Drawing_RectDestroyArrayFail(napi_env env, napi_callback_info info)
150 {
151     napi_value result;
152 
153     OH_Drawing_ErrorCode errCode = OH_Drawing_RectDestroyArray(nullptr);
154     napi_create_int32(env,  errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
155 
156     return result;
157 }
158 
OH_Drawing_RoundRectOffsetSuccess(napi_env env,napi_callback_info info)159 napi_value OH_Drawing_RoundRectOffsetSuccess(napi_env env, napi_callback_info info)
160 {
161     napi_value result;
162     float left = 10;
163     float top = 10;
164     float right = 10;
165     float bottom = 10;
166     OH_Drawing_Rect* rect = OH_Drawing_RectCreate(left, top, right, bottom);
167     float xRad = 10;
168     float yRad = 10;
169     OH_Drawing_RoundRect* roundRect = OH_Drawing_RoundRectCreate(rect, xRad, yRad);
170     float dx = 10;
171     float dy = 10;
172     OH_Drawing_ErrorCode errCode = OH_Drawing_RoundRectOffset(roundRect, dx, dy);
173     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
174     return result;
175 }
OH_Drawing_RoundRectOffsetFail(napi_env env,napi_callback_info info)176 napi_value OH_Drawing_RoundRectOffsetFail(napi_env env, napi_callback_info info)
177 {
178     napi_value result;
179     float dx = 10;
180     float dy = 10;
181     OH_Drawing_ErrorCode errCode = OH_Drawing_RoundRectOffset(nullptr, dx, dy);
182     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
183     return result;
184 }
185 
OH_Drawing_FontMeasureSingleCharacterWithFeaturesSuccess(napi_env env,napi_callback_info info)186 napi_value OH_Drawing_FontMeasureSingleCharacterWithFeaturesSuccess(napi_env env, napi_callback_info info)
187 {
188     napi_value result;
189     OH_Drawing_Font* font = OH_Drawing_FontCreate();
190     const char* str = "HellWorld";
191     OH_Drawing_FontFeatures* fontFeatures = OH_Drawing_FontFeaturesCreate();
192     float textWidth = 10;
193     OH_Drawing_ErrorCode errCode = OH_DRAWING_SUCCESS;
194     errCode = OH_Drawing_FontMeasureSingleCharacterWithFeatures(font, str, fontFeatures, &textWidth);
195     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
196     return result;
197 }
OH_Drawing_FontMeasureSingleCharacterWithFeaturesFail(napi_env env,napi_callback_info info)198 napi_value OH_Drawing_FontMeasureSingleCharacterWithFeaturesFail(napi_env env, napi_callback_info info)
199 {
200     napi_value result;
201     const char* str = "HellWorld";
202     OH_Drawing_FontFeatures* fontFeatures = OH_Drawing_FontFeaturesCreate();
203     float textWidth = 10;
204     OH_Drawing_ErrorCode errCode = OH_DRAWING_SUCCESS;
205     errCode = OH_Drawing_FontMeasureSingleCharacterWithFeatures(nullptr, str, fontFeatures, &textWidth);
206     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
207     return result;
208 }
209 
OH_Drawing_FontMeasureTextSuccess(napi_env env,napi_callback_info info)210 napi_value OH_Drawing_FontMeasureTextSuccess(napi_env env, napi_callback_info info)
211 {
212     napi_value result;
213     OH_Drawing_Font* font = OH_Drawing_FontCreate();
214     const char* str = "HelloWorld";
215     size_t byteLength = strlen(str);
216     float left = 10;
217     float top = 10;
218     float right = 10;
219     float bottom = 10;
220     OH_Drawing_Rect* bounds = OH_Drawing_RectCreate(left, top, right, bottom);
221     float textWidth = 10;
222     OH_Drawing_ErrorCode errCode = OH_DRAWING_SUCCESS;
223     errCode = OH_Drawing_FontMeasureText(font, str, byteLength, TEXT_ENCODING_UTF8, bounds, &textWidth);
224     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
225     return result;
226 }
OH_Drawing_FontMeasureTextFail(napi_env env,napi_callback_info info)227 napi_value OH_Drawing_FontMeasureTextFail(napi_env env, napi_callback_info info)
228 {
229     napi_value result;
230     OH_Drawing_Font* font = nullptr;
231     const char* str = "HelloWorld";
232     size_t byteLth = strlen(str);
233     float left = 10;
234     float top = 10;
235     float right = 10;
236     float bottom = 10;
237     OH_Drawing_Rect* bounds = OH_Drawing_RectCreate(left, top, right, bottom);
238     float tWidth = 10;
239     OH_Drawing_ErrorCode errCode = OH_Drawing_FontMeasureText(font, str, byteLth, TEXT_ENCODING_UTF8, bounds, &tWidth);
240     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
241     return result;
242 }
243 
OH_Drawing_FontMeasureTextWithBrushOrPenFail(napi_env env,napi_callback_info info)244 napi_value OH_Drawing_FontMeasureTextWithBrushOrPenFail(napi_env env, napi_callback_info info)
245 {
246     napi_value result;
247     const char* text = "HelloWorld";
248     size_t byteLength = strlen(text);
249     float left = 10;
250     float top = 10;
251     float right = 10;
252     float bottom = 10;
253     OH_Drawing_Rect* bounds = OH_Drawing_RectCreate(left, top, right, bottom);
254     OH_Drawing_Brush* brush = OH_Drawing_BrushCreate();
255     OH_Drawing_Pen* pen = OH_Drawing_PenCreate();
256     float textWidth = 10;
257     OH_Drawing_ErrorCode errCode = OH_Drawing_FontMeasureTextWithBrushOrPen(nullptr, text, byteLength,
258         TEXT_ENCODING_UTF8, brush, pen, bounds, &textWidth);
259     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
260     return result;
261 }
262 
OH_Drawing_FontGetWidthsBoundsFail(napi_env env,napi_callback_info info)263 napi_value OH_Drawing_FontGetWidthsBoundsFail(napi_env env, napi_callback_info info)
264 {
265     napi_value result;
266     uint16_t glyphs = 10;
267     int count = 1;
268     OH_Drawing_Brush* brush = OH_Drawing_BrushCreate();
269     OH_Drawing_Pen* pen = OH_Drawing_PenCreate();
270     float widths = 10;
271     OH_Drawing_Array* bounds = nullptr;
272     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetWidthsBounds(nullptr, &glyphs, count, brush, pen, &widths, bounds);
273     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
274     return result;
275 }
276 
OH_Drawing_FontGetPosSuccess(napi_env env,napi_callback_info info)277 napi_value OH_Drawing_FontGetPosSuccess(napi_env env, napi_callback_info info)
278 {
279     napi_value result;
280     OH_Drawing_Font* font = OH_Drawing_FontCreate();
281 
282     uint16_t glyphs = 10;
283     int count = 1;
284     int x = 10;
285     int y = 10;
286     OH_Drawing_Point* origin = OH_Drawing_PointCreate(x, y);
287     OH_Drawing_Point2D* points = new OH_Drawing_Point2D;
288     points->x = x;
289     points->y = y;
290     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetPos(font, &glyphs, count, origin, points);
291     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
292     return result;
293 }
294 
OH_Drawing_FontGetPosFail(napi_env env,napi_callback_info info)295 napi_value OH_Drawing_FontGetPosFail(napi_env env, napi_callback_info info)
296 {
297     napi_value result;
298     uint16_t glyphs = 10;
299     int count = 1;
300     int x = 10;
301     int y = 10;
302     OH_Drawing_Point* origin = OH_Drawing_PointCreate(x, y);
303     OH_Drawing_Point2D* points = new OH_Drawing_Point2D;
304     points->x = x;
305     points->y = y;
306     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetPos(nullptr, &glyphs, count, origin, points);
307     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
308     return result;
309 }
310 
OH_Drawing_FontGetSpacingSuccess(napi_env env,napi_callback_info info)311 napi_value OH_Drawing_FontGetSpacingSuccess(napi_env env, napi_callback_info info)
312 {
313     napi_value result;
314     OH_Drawing_Font* font = OH_Drawing_FontCreate();
315     float spacing = 0;
316     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetSpacing(font, &spacing);
317     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
318     return result;
319 }
320 
OH_Drawing_FontGetSpacingFail(napi_env env,napi_callback_info info)321 napi_value OH_Drawing_FontGetSpacingFail(napi_env env, napi_callback_info info)
322 {
323     napi_value result;
324     OH_Drawing_Font* font = nullptr;
325     float spacing = 0;
326     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetSpacing(font, &spacing);
327     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
328     return result;
329 }
330 
OH_Drawing_FontGetBoundsFail(napi_env env,napi_callback_info info)331 napi_value OH_Drawing_FontGetBoundsFail(napi_env env, napi_callback_info info)
332 {
333     napi_value result;
334     OH_Drawing_Font* font = nullptr;
335     uint16_t* glyphs = nullptr;
336     uint32_t count = 10;
337     OH_Drawing_Array* bounds = nullptr;
338     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetBounds(font, glyphs, count, bounds);
339     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
340     return result;
341 }
OH_Drawing_FontGetPathForGlyphSuccess(napi_env env,napi_callback_info info)342 napi_value OH_Drawing_FontGetPathForGlyphSuccess(napi_env env, napi_callback_info info)
343 {
344     napi_value result;
345     OH_Drawing_Font* font = OH_Drawing_FontCreate();
346     uint16_t glyph = 10;
347     OH_Drawing_Path* path = OH_Drawing_PathCreate();
348     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetPathForGlyph(font, glyph, path);
349     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
350     return result;
351 }
OH_Drawing_FontGetPathForGlyphFail(napi_env env,napi_callback_info info)352 napi_value OH_Drawing_FontGetPathForGlyphFail(napi_env env, napi_callback_info info)
353 {
354     napi_value result;
355     OH_Drawing_Font* font = nullptr;
356     uint16_t glyph = 10;
357     OH_Drawing_Path* path = OH_Drawing_PathCreate();
358     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetPathForGlyph(font, glyph, path);
359     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
360     return result;
361 }
OH_Drawing_FontGetTextPathSuccess(napi_env env,napi_callback_info info)362 napi_value OH_Drawing_FontGetTextPathSuccess(napi_env env, napi_callback_info info)
363 {
364     napi_value result;
365     OH_Drawing_Font* font = OH_Drawing_FontCreate();
366     const char* text = "HelloWorld";
367     size_t byteLength = strlen(text);
368     float x = 10;
369     float y = 10;
370     OH_Drawing_Path* path = OH_Drawing_PathCreate();
371     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetTextPath(font, text, byteLength, TEXT_ENCODING_UTF8, x, y, path);
372     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
373     return result;
374 }
OH_Drawing_FontGetTextPathFail(napi_env env,napi_callback_info info)375 napi_value OH_Drawing_FontGetTextPathFail(napi_env env, napi_callback_info info)
376 {
377     napi_value result;
378     OH_Drawing_Font* font = nullptr;
379     const char* text = "HelloWorld";
380     size_t byteLength = strlen(text);
381     float x = 10;
382     float y = 10;
383     OH_Drawing_Path* path = OH_Drawing_PathCreate();
384     OH_Drawing_ErrorCode errCode = OH_Drawing_FontGetTextPath(font, text, byteLength, TEXT_ENCODING_UTF8, x, y, path);
385     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
386     return result;
387 }
388 
OH_Drawing_FontFeaturesCreateSuccess(napi_env env,napi_callback_info info)389 napi_value OH_Drawing_FontFeaturesCreateSuccess(napi_env env, napi_callback_info info)
390 {
391     napi_value result;
392 
393     OH_Drawing_FontFeatures* fontFeature = OH_Drawing_FontFeaturesCreate();
394     napi_create_int32(env, fontFeature != nullptr, &result);
395     return result;
396 }
397 
OH_Drawing_FontFeaturesAddFeatureSuccess(napi_env env,napi_callback_info info)398 napi_value OH_Drawing_FontFeaturesAddFeatureSuccess(napi_env env, napi_callback_info info)
399 {
400     napi_value result;
401     OH_Drawing_FontFeatures* fontFeature = OH_Drawing_FontFeaturesCreate();
402     const char* name = "feature";
403     float value = 10;
404     OH_Drawing_ErrorCode errCode = OH_Drawing_FontFeaturesAddFeature(fontFeature, name, value);
405     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
406     return result;
407 }
408 
OH_Drawing_FontFeaturesAddFeatureFail(napi_env env,napi_callback_info info)409 napi_value OH_Drawing_FontFeaturesAddFeatureFail(napi_env env, napi_callback_info info)
410 {
411     napi_value result;
412     const char* name = "feature";
413     float value = 10;
414     OH_Drawing_ErrorCode errCode = OH_Drawing_FontFeaturesAddFeature(nullptr, name, value);
415     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
416     return result;
417 }
418 
OH_Drawing_FontFeaturesDestroySuccess(napi_env env,napi_callback_info info)419 napi_value OH_Drawing_FontFeaturesDestroySuccess(napi_env env, napi_callback_info info)
420 {
421     napi_value result;
422     OH_Drawing_FontFeatures* fontFeature = OH_Drawing_FontFeaturesCreate();
423     OH_Drawing_ErrorCode errCode = OH_Drawing_FontFeaturesDestroy(fontFeature);
424     napi_create_int32(env, errCode == OH_DRAWING_SUCCESS, &result);
425     return result;
426 }
427 
OH_Drawing_FontFeaturesDestroyFail(napi_env env,napi_callback_info info)428 napi_value OH_Drawing_FontFeaturesDestroyFail(napi_env env, napi_callback_info info)
429 {
430     napi_value result;
431     OH_Drawing_ErrorCode errCode = OH_Drawing_FontFeaturesDestroy(nullptr);
432     napi_create_int32(env, errCode == OH_DRAWING_ERROR_INVALID_PARAMETER, &result);
433     return result;
434 }
435