From 67941f4964da065623132ea00ce83c6abc1ab86d Mon Sep 17 00:00:00 2001 From: Carlos Diaz Date: Sat, 4 Mar 2023 10:02:08 -0600 Subject: [PATCH] ci(test): add unit test for lv_list (#4032) --- src/widgets/list/lv_list.h | 24 ++++++++++++ tests/ref_imgs/list_1.png | Bin 0 -> 5801 bytes tests/src/test_cases/test_list.c | 64 +++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 tests/ref_imgs/list_1.png create mode 100644 tests/src/test_cases/test_list.c diff --git a/src/widgets/list/lv_list.h b/src/widgets/list/lv_list.h index 036f92fdc..7e789185a 100644 --- a/src/widgets/list/lv_list.h +++ b/src/widgets/list/lv_list.h @@ -32,12 +32,36 @@ extern const lv_obj_class_t lv_list_btn_class; * GLOBAL PROTOTYPES **********************/ +/** + * Create a list object + * @param parent pointer to an object, it will be the parent of the new list + * @return pointer to the created list + */ lv_obj_t * lv_list_create(lv_obj_t * parent); +/** + * Add text to a list + * @param list pointer to a list, it will be the parent of the new label + * @param txt Text of the new label + * @return pointer to the created label + */ lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt); +/** + * Add button to a list + * @param list pointer to a list, it will be the parent of the new button + * @param icon icon for the button, when NULL it will have no icon + * @param txt Text of the new button, when NULL no text will be added + * @return pointer to the created button + */ lv_obj_t * lv_list_add_btn(lv_obj_t * list, const void * icon, const char * txt); +/** + * Get text of a given list button + * @param list pointer to a list + * @param btn pointer to the button + * @return Text of btn, if btn doesn't have text "" will be returned + */ const char * lv_list_get_btn_text(lv_obj_t * list, lv_obj_t * btn); /********************** diff --git a/tests/ref_imgs/list_1.png b/tests/ref_imgs/list_1.png new file mode 100644 index 0000000000000000000000000000000000000000..585fd08e97b5bfd394f692e2142d4d3cfea70545 GIT binary patch literal 5801 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 literal 0 HcmV?d00001 diff --git a/tests/src/test_cases/test_list.c b/tests/src/test_cases/test_list.c new file mode 100644 index 000000000..628ce1770 --- /dev/null +++ b/tests/src/test_cases/test_list.c @@ -0,0 +1,64 @@ +#if LV_BUILD_TEST +#include "../lvgl.h" + +#include "unity/unity.h" + +static lv_obj_t * list; + +void setUp(void) +{ + list = lv_list_create(lv_scr_act()); +} + +void tearDown(void) +{ + +} + +void test_list_get_text_from_added_button(void) +{ + const char * message = "LVGL Rocks!"; + lv_obj_t * button_ok = lv_list_add_btn(list, LV_SYMBOL_OK, message); + + TEST_ASSERT_EQUAL_STRING(message, lv_list_get_btn_text(list, button_ok)); +} + +void test_list_get_text_from_button_without_symbol(void) +{ + const char * message = "LVGL Rocks!"; + lv_obj_t * button_ok = lv_list_add_btn(list, NULL, message); + + TEST_ASSERT_EQUAL_STRING(message, lv_list_get_btn_text(list, button_ok)); +} + +void test_list_gets_empty_text_from_button_without_text(void) +{ + const char * empty_text = ""; + lv_obj_t * button_ok = lv_list_add_btn(list, NULL, NULL); + + TEST_ASSERT_EQUAL_STRING(empty_text, lv_list_get_btn_text(list, button_ok)); +} + +void test_list_get_text_from_label(void) +{ + const char * message = "LVGL Rocks!"; + lv_obj_t * label = lv_list_add_text(list, message); + + TEST_ASSERT_EQUAL_STRING(message, lv_label_get_text(label)); +} + +void test_list_snapshot(void) +{ + lv_obj_t * snapshot_list = lv_list_create(lv_scr_act()); + + lv_list_add_text(snapshot_list, "File"); + lv_list_add_btn(snapshot_list, LV_SYMBOL_FILE, "New"); + lv_list_add_btn(snapshot_list, LV_SYMBOL_DIRECTORY, "Open"); + lv_list_add_btn(snapshot_list, LV_SYMBOL_SAVE, "Save"); + + lv_obj_center(snapshot_list); + + TEST_ASSERT_EQUAL_SCREENSHOT("list_1.png"); +} + +#endif