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