efl

Форк
0
/
elm_test_radio.c 
142 строки · 3.4 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4

5
#define EFL_ACCESS_OBJECT_BETA
6
#include <Elementary.h>
7
#include "elm_suite.h"
8

9
EFL_START_TEST(elm_radio_legacy_type_check)
10
{
11
   Evas_Object *win, *radio;
12
   const char *type;
13

14
   win = win_add(NULL, "radio", ELM_WIN_BASIC);
15

16
   radio = elm_radio_add(win);
17

18
   type = elm_object_widget_type_get(radio);
19
   ck_assert(type != NULL);
20
   ck_assert(!strcmp(type, "Elm_Radio"));
21

22
   type = evas_object_type_get(radio);
23
   ck_assert(type != NULL);
24
   ck_assert(!strcmp(type, "elm_radio"));
25

26
}
27
EFL_END_TEST
28

29
EFL_START_TEST(elm_atspi_role_get)
30
{
31
   Evas_Object *win, *radio;
32
   Efl_Access_Role role;
33

34
   win = win_add(NULL, "radio", ELM_WIN_BASIC);
35

36
   radio = elm_radio_add(win);
37
   role = efl_access_object_role_get(radio);
38

39
   ck_assert(role == EFL_ACCESS_ROLE_RADIO_BUTTON);
40

41
}
42
EFL_END_TEST
43

44
static unsigned int radio_change_count = 0;
45

46
static void
47
_rdg_changed_cb()
48
{
49
   radio_change_count++;
50
   ecore_main_loop_quit();
51
}
52

53
EFL_START_TEST(elm_test_radio_selection)
54
{
55
   radio_change_count = 0;
56
   Evas_Object *rd, *rdg;
57
   Evas_Object *win = win_add(NULL, "radio", ELM_WIN_BASIC);
58
   evas_object_resize(win, 100, 100);
59

60
   // radio 1
61
   rd = elm_radio_add(win);
62
   evas_object_resize(rd, 100, 100);
63

64
   // rdg radio group
65
   rdg = rd;
66
   evas_object_smart_callback_add(rdg, "changed", _rdg_changed_cb, NULL);
67

68
   elm_radio_state_value_set(rd, 1);
69
   elm_object_text_set(rd, "Radio Group Test #1");
70
   evas_object_show(rd);
71

72

73
   // radio 2
74
   rd = elm_radio_add(win);
75
   evas_object_smart_callback_add(rd, "changed", _rdg_changed_cb, NULL);
76
   evas_object_resize(rd, 100, 100);
77
   elm_radio_state_value_set(rd, 2);
78
   elm_object_text_set(rd, "Radio Group Test #2");
79
   elm_radio_group_add(rd, rdg);
80
   evas_object_show(rd);
81
   evas_object_show(win);
82

83
   elm_layout_signal_emit(rdg, "elm,action,radio,toggle", "elm");
84
   ecore_main_loop_begin();
85
   ck_assert_int_eq(elm_radio_value_get(rdg), 1);
86
   ck_assert_int_eq(radio_change_count, 1);
87

88
   elm_layout_signal_emit(rd, "elm,action,radio,toggle", "elm");
89
   ecore_main_loop_begin();
90
   ck_assert_int_eq(elm_radio_value_get(rdg), 2);
91
   ck_assert_int_eq(radio_change_count, 2);
92

93
   elm_layout_signal_emit(rdg, "elm,action,radio,toggle", "elm");
94
   ecore_main_loop_begin();
95
   ck_assert_int_eq(elm_radio_value_get(rdg), 1);
96
   ck_assert_int_eq(radio_change_count, 3);
97
}
98
EFL_END_TEST
99

100
EFL_START_TEST(elm_test_radio_callback)
101
{
102
   radio_change_count = 0;
103
   Evas_Object *rd, *rdg;
104
   Evas_Object *win = win_add(NULL, "radio", ELM_WIN_BASIC);
105
   evas_object_resize(win, 100, 100);
106

107
   // radio 1
108
   rd = elm_radio_add(win);
109
   evas_object_resize(rd, 100, 100);
110

111
   // rdg radio group
112
   rdg = rd;
113
   evas_object_smart_callback_add(rdg, "changed", _rdg_changed_cb, NULL);
114

115
   elm_radio_state_value_set(rd, 1);
116
   elm_object_text_set(rd, "Radio Group Test #1");
117
   evas_object_show(rd);
118

119

120
   // radio 2
121
   rd = elm_radio_add(win);
122
   evas_object_resize(rd, 100, 100);
123
   elm_radio_state_value_set(rd, 2);
124
   elm_object_text_set(rd, "Radio Group Test #2");
125
   elm_radio_group_add(rd, rdg);
126
   evas_object_show(rd);
127
   evas_object_show(win);
128

129
   elm_radio_value_set(rdg, 2);
130
   elm_radio_value_set(rdg, 1);
131
   elm_radio_value_set(rdg, 2);
132
   ck_assert_int_eq(radio_change_count, 0);
133
}
134
EFL_END_TEST
135

136
void elm_test_radio(TCase *tc)
137
{
138
   tcase_add_test(tc, elm_radio_legacy_type_check);
139
   tcase_add_test(tc, elm_atspi_role_get);
140
   tcase_add_test(tc, elm_test_radio_selection);
141
   tcase_add_test(tc, elm_test_radio_callback);
142
}
143

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.