1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4 
5 #include "unity/unity.h"
6 
7 LV_IMAGE_DECLARE(test_img_lvgl_logo_png);
8 LV_IMAGE_DECLARE(test_arc_bg);
9 
setUp(void)10 void setUp(void)
11 {
12 
13 }
14 
tearDown(void)15 void tearDown(void)
16 {
17     /* Function run after every test */
18     lv_obj_clean(lv_screen_active());
19 }
20 
img_create(void)21 static lv_obj_t * img_create(void)
22 {
23     lv_obj_t * img = lv_image_create(lv_screen_active());
24     lv_image_set_src(img, &test_img_lvgl_logo_png);
25     lv_obj_set_style_bg_opa(img, LV_OPA_20, 0);
26     lv_obj_set_style_bg_color(img, lv_color_hex(0x000000), 0);
27     lv_obj_set_style_shadow_width(img, 10, 0);
28     lv_obj_set_style_shadow_color(img, lv_color_hex(0xff0000), 0);
29     return img;
30 }
31 
test_image_rotated_pivot_center(void)32 void test_image_rotated_pivot_center(void)
33 {
34     lv_obj_t * img;
35     uint32_t i;
36     for(i = 0; i < 8; i++) {
37         img = img_create();
38         lv_obj_set_pos(img, 100 + (i % 4) * 160, 150 + (i / 4) * 150);
39         lv_image_set_rotation(img, i * 450);
40         /*The default pivot should be the center*/
41     }
42 
43     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_rotate_pivot_center.png");
44 }
45 
test_image_rotated_pivot_top_left(void)46 void test_image_rotated_pivot_top_left(void)
47 {
48     lv_obj_t * img;
49     uint32_t i;
50     for(i = 0; i < 8; i++) {
51         img = img_create();
52         lv_obj_set_pos(img, 120 + (i % 4) * 180, 100 + (i / 4) * 300);
53         lv_image_set_rotation(img, i * 450);
54         lv_image_set_pivot(img, 0, 0);
55     }
56 
57     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_rotate_pivot_top_left.png");
58 }
59 
test_image_scale_pivot_center(void)60 void test_image_scale_pivot_center(void)
61 {
62     lv_obj_t * img;
63     uint32_t i;
64     for(i = 0; i < 8; i++) {
65         img = img_create();
66         lv_obj_set_pos(img, 40 + (i % 4) * 200, 150 + (i / 4) * 150);
67         lv_image_set_scale(img, 64 + i * 64);
68         /*The default pivot should be the center*/
69     }
70 
71     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_scale_pivot_center.png");
72 }
73 
test_image_scale_pivot_top_left(void)74 void test_image_scale_pivot_top_left(void)
75 {
76     lv_obj_t * img;
77     uint32_t i;
78     for(i = 0; i < 8; i++) {
79         img = img_create();
80         lv_obj_set_pos(img, 10 + (i % 4) * 190, 150 + (i / 4) * 150);
81         lv_image_set_scale(img, 64 + i * 64);
82         lv_image_set_pivot(img, 0, 0);
83     }
84 
85     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_scale_pivot_top_left.png");
86 }
87 
test_image_scale_x_pivot_center(void)88 void test_image_scale_x_pivot_center(void)
89 {
90     lv_obj_t * img;
91     uint32_t i;
92     for(i = 0; i < 8; i++) {
93         img = img_create();
94         lv_obj_set_pos(img, 40 + (i % 4) * 200, 150 + (i / 4) * 150);
95         lv_image_set_scale_x(img, 64 + i * 64);
96         /*The default pivot should be the center*/
97     }
98 
99     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_scale_x_pivot_center.png");
100 }
101 
test_image_scale_x_pivot_top_left(void)102 void test_image_scale_x_pivot_top_left(void)
103 {
104     lv_obj_t * img;
105     uint32_t i;
106     for(i = 0; i < 8; i++) {
107         img = img_create();
108         lv_obj_set_pos(img, 10 + (i % 4) * 190, 150 + (i / 4) * 150);
109         lv_image_set_scale_x(img, 64 + i * 64);
110         lv_image_set_pivot(img, 0, 0);
111     }
112 
113     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_scale_x_pivot_top_left.png");
114 }
115 
test_image_scale_y_pivot_center(void)116 void test_image_scale_y_pivot_center(void)
117 {
118     lv_obj_t * img;
119     uint32_t i;
120     for(i = 0; i < 8; i++) {
121         img = img_create();
122         lv_obj_set_pos(img, 40 + (i % 4) * 200, 150 + (i / 4) * 150);
123         lv_image_set_scale_y(img, 64 + i * 64);
124         /*The default pivot should be the center*/
125     }
126 
127     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_scale_y_pivot_center.png");
128 }
129 
test_image_scale_y_pivot_top_left(void)130 void test_image_scale_y_pivot_top_left(void)
131 {
132     lv_obj_t * img;
133     uint32_t i;
134     for(i = 0; i < 8; i++) {
135         img = img_create();
136         lv_obj_set_pos(img, 10 + (i % 4) * 190, 150 + (i / 4) * 150);
137         lv_image_set_scale_y(img, 64 + i * 64);
138         lv_image_set_pivot(img, 0, 0);
139     }
140 
141     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_scale_y_pivot_top_left.png");
142 }
143 
test_image_rotate_and_scale_pivot_center(void)144 void test_image_rotate_and_scale_pivot_center(void)
145 {
146     lv_obj_t * img;
147     uint32_t i;
148     for(i = 0; i < 8; i++) {
149         img = img_create();
150         lv_obj_set_pos(img, 40 + (i % 4) * 200, 150 + (i / 4) * 150);
151         lv_image_set_scale_x(img, 64 + i * 64);
152         lv_image_set_scale_y(img, 32 + i * 96);
153         lv_image_set_rotation(img, 200 + i * 333);
154         /*The default pivot should be the center*/
155     }
156 
157     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_rotate_and_scale_pivot_center.png");
158 }
159 
test_image_rotate_and_scale_pivot_top_left(void)160 void test_image_rotate_and_scale_pivot_top_left(void)
161 {
162     lv_obj_t * img;
163     uint32_t i;
164     for(i = 0; i < 8; i++) {
165         img = img_create();
166         lv_obj_set_pos(img, 120 + (i % 4) * 180, 120 + (i / 4) * 220);
167         lv_image_set_scale_x(img, 64 + i * 64);
168         lv_image_set_scale_y(img, 32 + i * 96);
169         lv_image_set_rotation(img, 200 + i * 333);
170         lv_image_set_pivot(img, 0, 0);
171     }
172 
173     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_rotate_and_scale_pivot_top_left.png");
174 }
175 
test_image_normal_align(void)176 void test_image_normal_align(void)
177 {
178     lv_obj_t * img;
179     uint32_t i;
180     lv_image_align_t aligns[] = {
181         LV_IMAGE_ALIGN_TOP_LEFT, LV_IMAGE_ALIGN_TOP_MID, LV_IMAGE_ALIGN_TOP_RIGHT,
182         LV_IMAGE_ALIGN_LEFT_MID, LV_IMAGE_ALIGN_CENTER, LV_IMAGE_ALIGN_RIGHT_MID,
183         LV_IMAGE_ALIGN_BOTTOM_LEFT, LV_IMAGE_ALIGN_BOTTOM_MID, LV_IMAGE_ALIGN_BOTTOM_RIGHT,
184     };
185 
186     for(i = 0; i < 9; i++) {
187         img = img_create();
188         lv_obj_set_size(img, 200, 120);
189         lv_obj_set_pos(img, 30 + (i % 3) * 260, 40 + (i / 3) * 150);
190         lv_image_set_inner_align(img, aligns[i]);
191     }
192 
193     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_normal_align.png");
194 }
195 
test_image_normal_align_offset(void)196 void test_image_normal_align_offset(void)
197 {
198     lv_obj_t * img;
199     uint32_t i;
200     lv_image_align_t aligns[] = {
201         LV_IMAGE_ALIGN_TOP_LEFT, LV_IMAGE_ALIGN_TOP_MID, LV_IMAGE_ALIGN_TOP_RIGHT,
202         LV_IMAGE_ALIGN_LEFT_MID, LV_IMAGE_ALIGN_CENTER, LV_IMAGE_ALIGN_RIGHT_MID,
203         LV_IMAGE_ALIGN_BOTTOM_LEFT, LV_IMAGE_ALIGN_BOTTOM_MID, LV_IMAGE_ALIGN_BOTTOM_RIGHT,
204     };
205 
206     for(i = 0; i < 9; i++) {
207         img = img_create();
208         lv_obj_set_size(img, 200, 120);
209         lv_obj_set_pos(img, 30 + (i % 3) * 260, 40 + (i / 3) * 150);
210         lv_image_set_inner_align(img, aligns[i]);
211         lv_image_set_offset_x(img, 15);
212         lv_image_set_offset_y(img, 20);
213     }
214 
215     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_normal_align_offset.png");
216 }
217 
test_image_transform_align(void)218 void test_image_transform_align(void)
219 {
220     lv_obj_t * img;
221     uint32_t i;
222     lv_image_align_t aligns[] = {
223         LV_IMAGE_ALIGN_TOP_LEFT, LV_IMAGE_ALIGN_TOP_MID, LV_IMAGE_ALIGN_TOP_RIGHT,
224         LV_IMAGE_ALIGN_LEFT_MID, LV_IMAGE_ALIGN_CENTER, LV_IMAGE_ALIGN_RIGHT_MID,
225         LV_IMAGE_ALIGN_BOTTOM_LEFT, LV_IMAGE_ALIGN_BOTTOM_MID, LV_IMAGE_ALIGN_BOTTOM_RIGHT,
226     };
227 
228     for(i = 0; i < 9; i++) {
229         img = img_create();
230         lv_obj_set_size(img, 200, 120);
231         lv_obj_set_pos(img, 30 + (i % 3) * 260, 40 + (i / 3) * 150);
232         lv_image_set_scale_x(img, 300);
233         lv_image_set_scale_y(img, 200);
234         lv_image_set_rotation(img, 200);
235         lv_image_set_inner_align(img, aligns[i]);
236     }
237 
238     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_transform_align.png");
239 }
240 
test_image_transform_align_offset(void)241 void test_image_transform_align_offset(void)
242 {
243     lv_obj_t * img;
244     uint32_t i;
245     lv_image_align_t aligns[] = {
246         LV_IMAGE_ALIGN_TOP_LEFT, LV_IMAGE_ALIGN_TOP_MID, LV_IMAGE_ALIGN_TOP_RIGHT,
247         LV_IMAGE_ALIGN_LEFT_MID, LV_IMAGE_ALIGN_CENTER, LV_IMAGE_ALIGN_RIGHT_MID,
248         LV_IMAGE_ALIGN_BOTTOM_LEFT, LV_IMAGE_ALIGN_BOTTOM_MID, LV_IMAGE_ALIGN_BOTTOM_RIGHT,
249     };
250 
251     for(i = 0; i < 9; i++) {
252         img = img_create();
253         lv_obj_set_size(img, 200, 120);
254         lv_obj_set_pos(img, 30 + (i % 3) * 260, 40 + (i / 3) * 150);
255         lv_image_set_inner_align(img, aligns[i]);
256         lv_image_set_offset_x(img, 15);
257         lv_image_set_offset_y(img, 20);
258         lv_image_set_scale_x(img, 300);
259         lv_image_set_scale_y(img, 200);
260         lv_image_set_rotation(img, 200);
261     }
262 
263     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_transform_align_offset.png");
264 }
265 
test_image_stretch(void)266 void test_image_stretch(void)
267 {
268     lv_obj_t * img;
269     uint32_t i;
270 
271     int32_t img_w = test_img_lvgl_logo_png.header.w;
272     int32_t img_h = test_img_lvgl_logo_png.header.h;
273 
274     int32_t w_array[] = {img_w / 2, img_w, img_w * 2};
275     int32_t h_array[] = {img_h / 2, img_h, img_h * 2};
276 
277     for(i = 0; i < 9; i++) {
278         img = img_create();
279         lv_obj_set_size(img, w_array[i / 3], h_array[i % 3]);
280         lv_obj_set_pos(img, 30 + (i % 3) * 260, 40 + (i / 3) * 150);
281         lv_image_set_inner_align(img, LV_IMAGE_ALIGN_STRETCH);
282     }
283 
284     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_stretch.png");
285 }
286 
test_image_tile(void)287 void test_image_tile(void)
288 {
289     lv_obj_t * img;
290 
291     img = img_create();
292     lv_obj_set_size(img, 350, LV_SIZE_CONTENT);
293     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
294     lv_obj_set_pos(img, 20, 20);
295     img = img_create();
296 
297     lv_obj_set_size(img, LV_SIZE_CONTENT, 150);
298     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
299     lv_obj_set_pos(img, 420, 20);
300 
301     img = img_create();
302     lv_obj_set_size(img, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
303     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
304     lv_obj_set_pos(img, 20, 220);
305     lv_image_set_offset_x(img, -20);
306     lv_image_set_offset_y(img, 20);
307 
308     img = img_create();
309     lv_obj_set_size(img, 150, 150);
310     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
311     lv_obj_set_pos(img, 220, 220);
312 
313     img = img_create();
314     lv_obj_set_size(img, 150, 150);
315     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
316     lv_obj_set_pos(img, 420, 220);
317     lv_image_set_offset_x(img, -2000);
318     lv_image_set_offset_y(img, 2000);
319 
320     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_tile.png");
321 }
322 
test_image_ignore_transformation_settings_when_stretched(void)323 void test_image_ignore_transformation_settings_when_stretched(void)
324 {
325     lv_obj_t * img = img_create();
326     lv_obj_set_size(img, 200, 300);
327     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_STRETCH);
328 
329     lv_image_set_rotation(img, 100);
330     lv_image_set_pivot(img, 200, 300);
331     TEST_ASSERT_EQUAL_INT(0, lv_image_get_rotation(img));
332 
333     lv_point_t pivot;
334     lv_image_get_pivot(img, &pivot);
335     TEST_ASSERT_EQUAL_INT(0, pivot.x);
336     TEST_ASSERT_EQUAL_INT(0, pivot.y);
337 
338     int32_t scale_x_original = lv_image_get_scale_x(img);
339     int32_t scale_y_original = lv_image_get_scale_y(img);
340     lv_image_set_scale_x(img, 400);
341     lv_image_set_scale_y(img, 500);
342     TEST_ASSERT_EQUAL_INT(scale_x_original, lv_image_get_scale_x(img));
343     TEST_ASSERT_EQUAL_INT(scale_y_original, lv_image_get_scale_y(img));
344 }
345 
test_image_ignore_transformation_settings_when_tiled(void)346 void test_image_ignore_transformation_settings_when_tiled(void)
347 {
348     lv_obj_t * img = img_create();
349     lv_obj_set_size(img, 200, 300);
350     lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
351 
352     lv_image_set_rotation(img, 100);
353     lv_image_set_pivot(img, 200, 300);
354     lv_image_set_scale_x(img, 400);
355     lv_image_set_scale_y(img, 500);
356 
357     lv_point_t pivot;
358     lv_image_get_pivot(img, &pivot);
359     TEST_ASSERT_EQUAL_INT(0, pivot.x);
360     TEST_ASSERT_EQUAL_INT(0, pivot.y);
361     TEST_ASSERT_EQUAL_INT(0, lv_image_get_rotation(img));
362     TEST_ASSERT_EQUAL_INT(LV_SCALE_NONE, lv_image_get_scale_x(img));
363     TEST_ASSERT_EQUAL_INT(LV_SCALE_NONE, lv_image_get_scale_y(img));
364 }
365 
create_test_images(int32_t radius,int32_t scale,int32_t angle)366 static void create_test_images(int32_t radius, int32_t scale, int32_t angle)
367 {
368     LV_IMAGE_DECLARE(test_I1_NONE_align64);
369     LV_IMAGE_DECLARE(test_I2_NONE_align64);
370     LV_IMAGE_DECLARE(test_I4_NONE_align64);
371     LV_IMAGE_DECLARE(test_I8_NONE_align64);
372     LV_IMAGE_DECLARE(test_A1_NONE_align64);
373     LV_IMAGE_DECLARE(test_A2_NONE_align64);
374     LV_IMAGE_DECLARE(test_A4_NONE_align64);
375     LV_IMAGE_DECLARE(test_A8_NONE_align64);
376     LV_IMAGE_DECLARE(test_RGB565A8_NONE_align64);
377     LV_IMAGE_DECLARE(test_RGB565_NONE_align64);
378     LV_IMAGE_DECLARE(test_RGB888_NONE_align64);
379     LV_IMAGE_DECLARE(test_XRGB8888_NONE_align64);
380     LV_IMAGE_DECLARE(test_ARGB8888_NONE_align64);
381 
382     const lv_image_dsc_t * img_dscs[] = {
383         &test_I1_NONE_align64,
384         &test_I2_NONE_align64,
385         &test_I4_NONE_align64,
386         &test_I8_NONE_align64,
387         &test_A1_NONE_align64,
388         &test_A2_NONE_align64,
389         &test_A4_NONE_align64,
390         &test_A8_NONE_align64,
391         &test_RGB565A8_NONE_align64,
392         &test_RGB565_NONE_align64,
393         &test_RGB888_NONE_align64,
394         &test_XRGB8888_NONE_align64,
395         &test_ARGB8888_NONE_align64,
396     };
397     const char * names[] = {
398         "I1",
399         "I2",
400         "I4",
401         "I8",
402         "A1",
403         "A2",
404         "A4",
405         "A8",
406         "RGB565A8",
407         "RGB565",
408         "RGB888",
409         "XRGB8888",
410         "ARGB8888",
411     };
412 
413     lv_obj_clean(lv_screen_active());
414 
415     for(size_t i = 0; i < sizeof(img_dscs) / sizeof(img_dscs[0]); i++) {
416         lv_obj_t * cont =  lv_obj_create(lv_screen_active());
417         lv_obj_set_size(cont, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
418         lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_COLUMN);
419 
420         lv_obj_t * img = lv_image_create(cont);
421         lv_image_set_src(img, img_dscs[i]);
422         lv_obj_set_style_radius(img, radius, 0);
423         lv_obj_set_style_image_recolor(img, lv_color_hex3(0xf00), 0);
424         lv_image_set_scale(img, scale);
425         lv_image_set_rotation(img, angle);
426 
427         lv_obj_t * label = lv_label_create(cont);
428         lv_label_set_text(label, names[i]);
429     }
430 }
431 
test_image_clip_radius(void)432 void test_image_clip_radius(void)
433 {
434     lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_ROW_WRAP);
435     lv_obj_set_flex_align(lv_screen_active(), LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_SPACE_EVENLY);
436     create_test_images(20, LV_SCALE_NONE, 0);
437 #if LV_BIN_DECODER_RAM_LOAD
438     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_clip_radius_20.png");
439 #endif
440 
441     create_test_images(LV_RADIUS_CIRCLE, LV_SCALE_NONE, 0);
442 #if LV_BIN_DECODER_RAM_LOAD
443     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_clip_radius_circle.png");
444 #endif
445 
446     create_test_images(20, 300, 200);
447 #if LV_BIN_DECODER_RAM_LOAD
448     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_clip_radius_circle_scaled_rotated.png");
449 #endif
450 }
451 
test_image_properties(void)452 void test_image_properties(void)
453 {
454 #if LV_USE_OBJ_PROPERTY
455     lv_obj_t * obj = lv_image_create(lv_screen_active());
456     lv_property_t prop = { };
457 
458     prop.id = LV_PROPERTY_IMAGE_SRC;
459     prop.ptr = &test_arc_bg;
460     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
461     TEST_ASSERT_EQUAL_PTR(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SRC).ptr, &test_arc_bg);
462     TEST_ASSERT_EQUAL_PTR(lv_image_get_src(obj), &test_arc_bg);
463 
464     prop.id = LV_PROPERTY_IMAGE_OFFSET_X;
465     prop.num = 10;
466     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
467     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_OFFSET_X).num, 10);
468     TEST_ASSERT_EQUAL_INT(lv_image_get_offset_x(obj), 10);
469 
470     prop.id = LV_PROPERTY_IMAGE_OFFSET_Y;
471     prop.num = 20;
472     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
473     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_OFFSET_Y).num, 20);
474     TEST_ASSERT_EQUAL_INT(lv_image_get_offset_y(obj), 20);
475 
476     prop.id = LV_PROPERTY_IMAGE_ROTATION;
477     prop.num = 30;
478     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
479     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_ROTATION).num, 30);
480     TEST_ASSERT_EQUAL_INT(lv_image_get_rotation(obj), 30);
481 
482     prop.id = LV_PROPERTY_IMAGE_PIVOT;
483     prop.point.x = 40;
484     prop.point.y = 50;
485     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
486     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_PIVOT).point.x, 40);
487     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_PIVOT).point.y, 50);
488     lv_point_t pivot;
489     lv_image_get_pivot(obj, &pivot);
490     TEST_ASSERT_EQUAL_INT(pivot.x, 40);
491     TEST_ASSERT_EQUAL_INT(pivot.y, 50);
492 
493     prop.id = LV_PROPERTY_IMAGE_SCALE;
494     prop.num = 60;
495     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
496     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SCALE).num, 60);
497     TEST_ASSERT_EQUAL_INT(lv_image_get_scale(obj), 60);
498 
499     prop.id = LV_PROPERTY_IMAGE_SCALE_X;
500     prop.num = 70;
501     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
502     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SCALE_X).num, 70);
503     TEST_ASSERT_EQUAL_INT(lv_image_get_scale_x(obj), 70);
504 
505     prop.id = LV_PROPERTY_IMAGE_SCALE_Y;
506     prop.num = 80;
507     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
508     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SCALE_Y).num, 80);
509     TEST_ASSERT_EQUAL_INT(lv_image_get_scale_y(obj), 80);
510 
511     prop.id = LV_PROPERTY_IMAGE_BLEND_MODE;
512     prop.num = LV_BLEND_MODE_ADDITIVE;
513     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
514     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_BLEND_MODE).num, LV_BLEND_MODE_ADDITIVE);
515     TEST_ASSERT_EQUAL_INT(lv_image_get_blend_mode(obj), LV_BLEND_MODE_ADDITIVE);
516 
517     prop.id = LV_PROPERTY_IMAGE_ANTIALIAS;
518     prop.num = 0;
519     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
520     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_ANTIALIAS).num, 0);
521     TEST_ASSERT_EQUAL_INT(lv_image_get_antialias(obj), 0);
522 
523     prop.id = LV_PROPERTY_IMAGE_INNER_ALIGN;
524     prop.num = LV_IMAGE_ALIGN_TOP_MID;
525     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
526     TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_INNER_ALIGN).num, LV_IMAGE_ALIGN_TOP_MID);
527     TEST_ASSERT_EQUAL_INT(lv_image_get_inner_align(obj), LV_IMAGE_ALIGN_TOP_MID);
528 #endif
529 }
530 
531 #endif
532