aboutsummaryrefslogtreecommitdiff
path: root/tests/src/test_cases/widgets/test_keyboard.c
blob: 8ab1837ed3ef12bd3f6495e483c07990bc6867cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#if LV_BUILD_TEST
#include "../lvgl.h"
#include "../../lvgl_private.h"

#include "unity/unity.h"

static lv_obj_t * active_screen = NULL;

void setUp(void)
{
    active_screen = lv_screen_active();
}

void tearDown(void)
{
    lv_obj_clean(active_screen);
}

void test_keyboard_mode(void)
{
    lv_obj_t * keyboard  = lv_keyboard_create(active_screen);
    lv_obj_set_size(keyboard, LV_PCT(100), LV_PCT(50));
    lv_obj_align(keyboard, LV_ALIGN_BOTTOM_MID, 0, 0);
    lv_obj_set_style_text_font(keyboard, &lv_font_dejavu_16_persian_hebrew, LV_PART_MAIN);
    lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_TEXT_LOWER);

    TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_1.png");

    lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_TEXT_UPPER);

    TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_2.png");

    lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_SPECIAL);

    TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_3.png");

    lv_keyboard_set_mode(keyboard, LV_KEYBOARD_MODE_NUMBER);

    TEST_ASSERT_EQUAL_SCREENSHOT("widgets/keyboard_4.png");
}

void test_keyboard_properties(void)
{
#if LV_USE_OBJ_PROPERTY
    lv_obj_t * obj = lv_keyboard_create(lv_screen_active());
    lv_property_t prop = { };

    lv_obj_t * test_area = lv_textarea_create(lv_screen_active());

    prop.id = LV_PROPERTY_KEYBOARD_TEXTAREA;
    prop.ptr = test_area;
    TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
    TEST_ASSERT_EQUAL_PTR(test_area, lv_keyboard_get_textarea(obj));
    TEST_ASSERT_EQUAL_PTR(test_area, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_TEXTAREA).ptr);

    prop.id = LV_PROPERTY_KEYBOARD_MODE;
    prop.num = LV_KEYBOARD_MODE_TEXT_UPPER;
    TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
    TEST_ASSERT_EQUAL_INT(LV_KEYBOARD_MODE_TEXT_UPPER, lv_keyboard_get_mode(obj));
    TEST_ASSERT_EQUAL_INT(LV_KEYBOARD_MODE_TEXT_UPPER, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_MODE).num);

    prop.id = LV_PROPERTY_KEYBOARD_POPOVERS;
    prop.num = 1;
    TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
    TEST_ASSERT_EQUAL_INT(1, lv_keyboard_get_popovers(obj));
    TEST_ASSERT_EQUAL_INT(1, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_POPOVERS).num);

    prop.id = LV_PROPERTY_KEYBOARD_SELECTED_BUTTON;
    prop.num = 1;
    TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
    TEST_ASSERT_EQUAL_INT(1, lv_keyboard_get_selected_button(obj));
    TEST_ASSERT_EQUAL_INT(1, lv_obj_get_property(obj, LV_PROPERTY_KEYBOARD_SELECTED_BUTTON).num);
#endif
}

#endif