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_keyboard_mode(void)19 void test_keyboard_mode(void)
20 {
21     lv_obj_t * keyboard  = lv_keyboard_create(active_screen);
22     lv_obj_set_size(keyboard, LV_PCT(100), LV_PCT(50));
23     lv_obj_align(keyboard, LV_ALIGN_BOTTOM_MID, 0, 0);
24     lv_obj_set_style_text_font(keyboard, &lv_font_dejavu_16_persian_hebrew, LV_PART_MAIN);
25     lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_TEXT_LOWER);
26 
27     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_1.png");
28 
29     lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_TEXT_UPPER);
30 
31     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_2.png");
32 
33     lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_SPECIAL);
34 
35     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_3.png");
36 
37     lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_NUMBER);
38 
39     TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_4.png");
40 }
41 
test_keyboard_properties(void)42 void test_keyboard_properties(void)
43 {
44 #if LV_USE_OBJ_PROPERTY
45     lv_obj_t * obj = lv_keyboard_create(lv_screen_active());
46     lv_property_t prop = { };
47 
48     lv_obj_t * test_area = lv_textarea_create(lv_screen_active());
49 
50     prop.id = LV_PROPERTY_KEYBOARD_TEXTAREA;
51     prop.ptr = test_area;
52     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
53     TEST_ASSERT_EQUAL_PTR(test_area, lv_keyboard_get_textarea(obj));
54     TEST_ASSERT_EQUAL_PTR(test_area, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_TEXTAREA).ptr);
55 
56     prop.id = LV_PROPERTY_KEYBOARD_MODE;
57     prop.num = LV_KEYBOARD_MODE_TEXT_UPPER;
58     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
59     TEST_ASSERT_EQUAL_INT(LV_KEYBOARD_MODE_TEXT_UPPER, lv_keyboard_get_mode(obj));
60     TEST_ASSERT_EQUAL_INT(LV_KEYBOARD_MODE_TEXT_UPPER, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_MODE).num);
61 
62     prop.id = LV_PROPERTY_KEYBOARD_POPOVERS;
63     prop.num = 1;
64     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
65     TEST_ASSERT_EQUAL_INT(1, lv_keyboard_get_popovers(obj));
66     TEST_ASSERT_EQUAL_INT(1, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_POPOVERS).num);
67 
68     prop.id = LV_PROPERTY_KEYBOARD_SELECTED_BUTTON;
69     prop.num = 1;
70     TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
71     TEST_ASSERT_EQUAL_INT(1, lv_keyboard_get_selected_button(obj));
72     TEST_ASSERT_EQUAL_INT(1, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_SELECTED_BUTTON).num);
73 #endif
74 }
75 
76 #endif
77