1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4 
5 #include "unity/unity.h"
6 
7 static lv_obj_t * active_screen = NULL;
8 
setUp(void)9 void setUp(void)
10 {
11     active_screen = lv_screen_active();
12 }
13 
tearDown(void)14 void tearDown(void)
15 {
16     lv_obj_clean(active_screen);
17 }
18 
test_led_render_1(void)19 void test_led_render_1(void)
20 {
21     lv_obj_t * led  = lv_led_create(active_screen);
22     lv_obj_align(led, LV_ALIGN_CENTER, -80, 0);
23     lv_led_off(led);
24 
25     led  = lv_led_create(active_screen);
26     lv_obj_align(led, LV_ALIGN_CENTER, 0, 0);
27     lv_led_set_brightness(led, 150);
28     lv_led_set_color(led, lv_palette_main(LV_PALETTE_RED));
29 
30     led  = lv_led_create(active_screen);
31     lv_obj_align(led, LV_ALIGN_CENTER, 80, 0);
32     lv_led_on(led);
33 
34     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/led_1.png");
35 }
36 
test_led_set_color_works(void)37 void test_led_set_color_works(void)
38 {
39     lv_obj_t * led  = lv_led_create(active_screen);
40     lv_led_t * ledObj = (lv_led_t *)led;
41 
42     /* Test by changing colors randomly. */
43     lv_led_set_color(led, lv_palette_main(LV_PALETTE_AMBER));
44     TEST_ASSERT_EQUAL_COLOR(lv_palette_main(LV_PALETTE_AMBER), ledObj->color);
45 
46     lv_led_set_color(led, lv_palette_main(LV_PALETTE_GREY));
47     TEST_ASSERT_EQUAL_COLOR(lv_palette_main(LV_PALETTE_GREY), ledObj->color);
48 
49     lv_led_set_color(led, lv_palette_main(LV_PALETTE_RED));
50     TEST_ASSERT_EQUAL_COLOR(lv_palette_main(LV_PALETTE_RED), ledObj->color);
51 }
52 
test_led_set_brightness_works(void)53 void test_led_set_brightness_works(void)
54 {
55     lv_obj_t * led  = lv_led_create(active_screen);
56 
57     /* Test by changing brightness randomly. */
58     lv_led_set_brightness(led, 150);
59     TEST_ASSERT_EQUAL(150, lv_led_get_brightness(led));
60 
61     lv_led_set_brightness(led, 10);
62     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MIN, lv_led_get_brightness(led));
63 
64     lv_led_set_brightness(led, 255);
65     TEST_ASSERT_EQUAL(255, lv_led_get_brightness(led));
66 }
67 
test_led_on_off_works(void)68 void test_led_on_off_works(void)
69 {
70     lv_obj_t * led  = lv_led_create(active_screen);
71 
72     lv_led_on(led);
73     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MAX, lv_led_get_brightness(led));
74 
75     lv_led_off(led);
76     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MIN, lv_led_get_brightness(led));
77 
78     lv_led_on(led);
79     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MAX, lv_led_get_brightness(led));
80 }
81 
test_led_toggle_works(void)82 void test_led_toggle_works(void)
83 {
84     lv_obj_t * led  = lv_led_create(active_screen);
85 
86     lv_led_on(led);
87     lv_led_toggle(led);
88     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MIN, lv_led_get_brightness(led));
89     lv_led_toggle(led);
90     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MAX, lv_led_get_brightness(led));
91     lv_led_toggle(led);
92     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MIN, lv_led_get_brightness(led));
93 }
94 
test_led_get_brightness_works(void)95 void test_led_get_brightness_works(void)
96 {
97     lv_obj_t * led  = lv_led_create(active_screen);
98 
99     lv_led_on(led);
100     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MAX, lv_led_get_brightness(led));
101     lv_led_off(led);
102     TEST_ASSERT_EQUAL(LV_LED_BRIGHT_MIN, lv_led_get_brightness(led));
103     lv_led_set_brightness(led, 150);
104     TEST_ASSERT_EQUAL(150, lv_led_get_brightness(led));
105 }
106 
107 #endif
108