forked from enlightenment/efl
efl_ui_spec_suite: support custom widgets
sooo, this test suite is testing interfaces. And when a content needs to be passed into the API, a lightweight version of a widget will be passed in. But sometimes implementations *do* requires special classes, they can now be specified with a custom-mapping in json. Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com> Differential Revision: https://phab.enlightenment.org/D8701
This commit is contained in:
parent
7aa9ea071a
commit
d4a5f1525e
|
@ -17,7 +17,7 @@
|
|||
|
||||
EFL_START_TEST(content_set_get)
|
||||
{
|
||||
Efl_Ui_Widget *w = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w = create_test_widget();
|
||||
|
||||
ck_assert_int_eq(efl_content_set(widget, w), EINA_TRUE);
|
||||
ck_assert_ptr_eq(efl_ui_widget_parent_get(w), widget);
|
||||
|
@ -32,7 +32,7 @@ EFL_END_TEST
|
|||
|
||||
EFL_START_TEST(content_set_get2)
|
||||
{
|
||||
Efl_Ui_Widget *w = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w = create_test_widget();
|
||||
|
||||
ck_assert_int_eq(efl_content_set(widget, w), EINA_TRUE);
|
||||
ck_assert_ptr_eq(efl_ui_widget_parent_get(w), widget);
|
||||
|
@ -46,7 +46,7 @@ EFL_END_TEST
|
|||
|
||||
EFL_START_TEST(content_unset)
|
||||
{
|
||||
Efl_Ui_Widget *w = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w = create_test_widget();
|
||||
|
||||
ck_assert_int_eq(efl_content_set(widget, w), EINA_TRUE);
|
||||
efl_content_unset(widget);
|
||||
|
@ -56,7 +56,7 @@ EFL_END_TEST
|
|||
|
||||
EFL_START_TEST(content_lifetime1)
|
||||
{
|
||||
Efl_Ui_Widget *w1 = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w1 = create_test_widget();
|
||||
|
||||
efl_wref_add(w1, &w1);
|
||||
ck_assert_int_eq(efl_content_set(widget, w1), EINA_TRUE);
|
||||
|
@ -67,7 +67,7 @@ EFL_END_TEST
|
|||
|
||||
EFL_START_TEST(content_lifetime2)
|
||||
{
|
||||
Efl_Ui_Widget *w1 = efl_add(WIDGET_CLASS, win), *w2 = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w1 = create_test_widget(), *w2 = create_test_widget();
|
||||
|
||||
efl_wref_add(w2, &w2);
|
||||
efl_wref_add(w1, &w1);
|
||||
|
@ -82,7 +82,7 @@ EFL_END_TEST
|
|||
|
||||
EFL_START_TEST(content_lifetime3)
|
||||
{
|
||||
Efl_Ui_Widget *w1 = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w1 = create_test_widget();
|
||||
Eina_Bool content_changed_event = EINA_FALSE;
|
||||
|
||||
ck_assert_int_eq(efl_content_set(widget, w1), EINA_TRUE);
|
||||
|
@ -95,7 +95,7 @@ EFL_END_TEST
|
|||
|
||||
EFL_START_TEST(content_event)
|
||||
{
|
||||
Efl_Ui_Widget *w1 = efl_add(WIDGET_CLASS, win), *w2 = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *w1 = create_test_widget(), *w2 = create_test_widget();
|
||||
Eina_Bool content_changed_event;
|
||||
|
||||
content_changed_event = EINA_FALSE;
|
||||
|
|
|
@ -31,7 +31,7 @@ _setup_std_pack(Efl_Ui_Widget *wid[3])
|
|||
|
||||
for (i = 0; i < 3; ++i)
|
||||
{
|
||||
wid[i] = efl_add(WIDGET_CLASS, widget);
|
||||
wid[i] = create_test_widget();
|
||||
ck_assert_int_eq(efl_pack(widget, wid[i]), EINA_TRUE);
|
||||
efl_gfx_entity_visible_set(widget, EINA_TRUE);
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ EFL_START_TEST(unpack3)
|
|||
Efl_Ui_Widget *wid[3], *invalid;
|
||||
_setup_std_pack(wid);
|
||||
|
||||
invalid = efl_add(WIDGET_CLASS, win);
|
||||
invalid = create_test_widget();
|
||||
ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_TRUE);
|
||||
EXPECT_ERROR_START;
|
||||
ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_FALSE);
|
||||
|
@ -238,7 +238,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(evt_content_added)
|
||||
{
|
||||
Eina_Bool called = EINA_TRUE;
|
||||
Efl_Ui_Widget *wid = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *wid = create_test_widget();
|
||||
efl_test_container_expect_evt_content_added(widget, EFL_CONTAINER_EVENT_CONTENT_ADDED, &called, wid);
|
||||
efl_pack(widget, wid);
|
||||
ck_assert_int_eq(called, EINA_TRUE);
|
||||
|
|
|
@ -17,7 +17,7 @@ _fill_array(Efl_Ui_Widget *wid[3])
|
|||
{
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
wid[i] = efl_add(WIDGET_CLASS, win);
|
||||
wid[i] = create_test_widget();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ _ordering_equals(Efl_Ui_Widget **wid, unsigned int len)
|
|||
EFL_START_TEST(pack_begin1)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
|
||||
|
@ -73,7 +73,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_end1)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
|
||||
|
@ -113,7 +113,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_before1)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
|
||||
|
@ -136,7 +136,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_before2)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
|
||||
|
@ -157,7 +157,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_after1)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
|
||||
|
@ -180,7 +180,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_after2)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
|
||||
|
@ -203,7 +203,7 @@ EFL_START_TEST(pack_at1)
|
|||
for (int x = -3; x < 3; ++x)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
unsigned int i;
|
||||
|
||||
_fill_array(wid);
|
||||
|
@ -234,7 +234,7 @@ EFL_START_TEST(pack_at2)
|
|||
for (int x = -3; x < 3; ++x)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
unsigned int i;
|
||||
|
||||
_fill_array(wid);
|
||||
|
@ -268,8 +268,8 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_at3)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv2 = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
Efl_Ui_Widget *inv2 = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
for (int i = 0; i < 3; i++)
|
||||
|
@ -308,7 +308,7 @@ EFL_END_TEST
|
|||
EFL_START_TEST(pack_index_get1)
|
||||
{
|
||||
Efl_Ui_Widget *wid[3];
|
||||
Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win);
|
||||
Efl_Ui_Widget *inv = create_test_widget();
|
||||
|
||||
_fill_array(wid);
|
||||
for (int i = 0; i < 3; i++)
|
||||
|
|
|
@ -10,9 +10,8 @@
|
|||
|
||||
Evas_Object *win = NULL;
|
||||
Evas_Object *widget = NULL;
|
||||
|
||||
const Efl_Class *test_content_klass = NULL;
|
||||
EFL_CLASS_SIMPLE_CLASS(efl_ui_widget, "efl_ui_widget", EFL_UI_WIDGET_CLASS);
|
||||
|
||||
static int tree_abort;
|
||||
static int tree_abort_level;
|
||||
|
||||
|
@ -33,11 +32,12 @@ _setup(void)
|
|||
}
|
||||
|
||||
static void
|
||||
_setup_window_and_widget(const Efl_Class *klass)
|
||||
_setup_window_and_widget(const Efl_Class *klass, const Efl_Class *content_klass)
|
||||
{
|
||||
ck_assert(!win);
|
||||
ck_assert(!widget);
|
||||
|
||||
test_content_klass = content_klass;
|
||||
win = win_add();
|
||||
widget = efl_add(klass, win);
|
||||
efl_content_set(win, widget);
|
||||
|
@ -46,6 +46,14 @@ _setup_window_and_widget(const Efl_Class *klass)
|
|||
ck_assert(widget);
|
||||
}
|
||||
|
||||
Eo*
|
||||
create_test_widget(void)
|
||||
{
|
||||
Eo *ret = efl_add(test_content_klass, win);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#include "efl_ui_spec_suite_gen.x"
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
|
|
|
@ -18,6 +18,8 @@ void efl_gfx_arrangement_behavior_test(TCase *tc);
|
|||
void efl_test_container_content_equal(Efl_Ui_Widget **wid, unsigned int len);
|
||||
void efl_test_container_expect_evt_content_added(Efl_Ui_Widget *widget, const Efl_Event_Description *ev, Eina_Bool *flag, void *event_data);
|
||||
|
||||
Eo* create_test_widget(void);
|
||||
|
||||
Evas_Object * win_add();
|
||||
|
||||
const Efl_Class* efl_ui_widget_realized_class_get(void);
|
||||
|
|
|
@ -4,7 +4,7 @@ fixture_gen_template = """
|
|||
static void
|
||||
_{}_fixture(void)
|
||||
{{
|
||||
_setup_window_and_widget({});
|
||||
_setup_window_and_widget({}, {});
|
||||
}}
|
||||
"""
|
||||
|
||||
|
@ -58,18 +58,29 @@ for input_file in input_files:
|
|||
tests.append(tmp)
|
||||
|
||||
widgets = []
|
||||
widget_hitmap = []
|
||||
|
||||
for test in tests:
|
||||
interface_test = to_func_name(test["test-interface"])
|
||||
if "custom-mapping" in test:
|
||||
custom_mapping = test["custom-mapping"]
|
||||
else:
|
||||
custom_mapping = {}
|
||||
for widget_class in test["test-widgets"]:
|
||||
if widget_class in custom_mapping:
|
||||
widget_test_klass = custom_mapping[widget_class]
|
||||
else:
|
||||
widget_test_klass = "WIDGET_CLASS"
|
||||
combo_name = "_{}_{}".format(to_func_name(interface_test), to_func_name(widget_class));
|
||||
combo_klass_test_name = "{}_{}".format(to_func_name(widget_class), to_func_name(widget_test_klass))
|
||||
list_of_tcases += list_entry.format(interface_test, to_func_name(widget_class), combo_name)
|
||||
generated_api += tcase_gen_template.format(combo_name, to_func_name(widget_class), interface_to_api(interface_test))
|
||||
if widget_class not in widgets:
|
||||
widgets += [widget_class]
|
||||
generated_api += tcase_gen_template.format(combo_name, combo_klass_test_name, interface_to_api(interface_test))
|
||||
if combo_klass_test_name not in widget_hitmap:
|
||||
widgets += [{ "widget" : widget_class, "test-class" : widget_test_klass, "combo-name" : combo_klass_test_name}]
|
||||
widget_hitmap += [combo_klass_test_name]
|
||||
|
||||
for widget in widgets:
|
||||
generated_api = fixture_gen_template.format(to_func_name(widget), to_class_getter(widget)) + generated_api
|
||||
generated_api = fixture_gen_template.format(widget["combo-name"], to_class_getter(widget["widget"]), widget["test-class"]) + generated_api
|
||||
|
||||
list_of_tcases += " { NULL, NULL }\n};"
|
||||
|
||||
|
|
Loading…
Reference in New Issue