tests: modify efl_ui_suite to use same test infrastructure as elm_suite
this should enable us to begin moving efl_ui tests into the proper suite instead of sticking them all into elm_suite also move grid tests to efl_ui_suite Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D7765
This commit is contained in:
parent
9536204023
commit
9f3d87ccca
|
@ -1502,6 +1502,7 @@ check_PROGRAMS += tests/elementary/elm_suite tests/elementary/efl_ui_suite
|
|||
TESTS += tests/elementary/elm_suite tests/elementary/efl_ui_suite
|
||||
|
||||
tests_elementary_elm_suite_SOURCES = \
|
||||
tests/elementary/suite_helpers.c \
|
||||
tests/elementary/elm_suite.c \
|
||||
tests/elementary/elm_test_atspi.c \
|
||||
tests/elementary/elm_test_check.c \
|
||||
|
@ -1584,7 +1585,6 @@ tests_elementary_elm_suite_SOURCES = \
|
|||
tests/elementary/elm_test_focus_common.h \
|
||||
tests/elementary/elm_test_focus.c \
|
||||
tests/elementary/elm_test_focus_sub.c \
|
||||
tests/elementary/efl_ui_test_grid.c \
|
||||
tests/elementary/elm_test_widget_focus.c
|
||||
|
||||
tests_elementary_elm_suite_CPPFLAGS = \
|
||||
|
@ -1605,9 +1605,13 @@ tests_elementary_elm_suite_LDADD = @CHECK_LIBS@ @USE_ELEMENTARY_LIBS@
|
|||
tests_elementary_elm_suite_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@
|
||||
|
||||
tests_elementary_efl_ui_suite_SOURCES = \
|
||||
tests/elementary/efl_ui_suite.c
|
||||
tests/elementary/suite_helpers.c \
|
||||
tests/elementary/efl_ui_suite.c \
|
||||
tests/elementary/elm_test_init.c \
|
||||
tests/elementary/efl_ui_test_grid.c
|
||||
|
||||
tests_elementary_efl_ui_suite_CPPFLAGS = \
|
||||
-DELM_INTERNAL_API_ARGESFSDFEFC=1 \
|
||||
-DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \
|
||||
-DTESTS_BUILD_DIR=\"${top_builddir}/src/tests/elementary\" \
|
||||
-DTESTS_SRC_DIR=\"${top_srcdir}/src/tests/elementary\" \
|
||||
|
|
|
@ -5,65 +5,17 @@
|
|||
#define EFL_NOLEGACY_API_SUPPORT
|
||||
#include <Efl_Ui.h>
|
||||
#include "../efl_check.h"
|
||||
|
||||
EAPI_MAIN void
|
||||
efl_main(void *data EINA_UNUSED,
|
||||
const Efl_Event *ev)
|
||||
{
|
||||
Efl_Loop_Arguments *arge = ev->info;
|
||||
|
||||
fail_if(!arge->initialization);
|
||||
fprintf(stderr, "ARGC %d\n", eina_array_count(arge->argv));
|
||||
fail_if(eina_array_count(arge->argv) != 2);
|
||||
fail_if(!eina_streq(eina_array_data_get(arge->argv, 1), "test"));
|
||||
|
||||
efl_loop_quit(ev->object, eina_value_string_init("success"));
|
||||
}
|
||||
|
||||
EFL_START_TEST(efl_ui_test_init)
|
||||
{
|
||||
/* EFL_MAIN */
|
||||
Eina_Value *ret__;
|
||||
int real__;
|
||||
|
||||
int argc = 2;
|
||||
char *argv[] = { "efl_ui_suite", "test" };
|
||||
_efl_startup_time = ecore_time_unix_get();
|
||||
_EFL_APP_VERSION_SET();
|
||||
fail_if(!ecore_init());
|
||||
efl_event_callback_add(efl_app_main_get(EFL_APP_CLASS), EFL_LOOP_EVENT_ARGUMENTS, efl_main, NULL);
|
||||
fail_if(!ecore_init_ex(argc, argv));
|
||||
__EFL_MAIN_CONSTRUCTOR;
|
||||
ret__ = efl_loop_begin(efl_app_main_get(EFL_APP_CLASS));
|
||||
real__ = efl_loop_exit_code_process(ret__);
|
||||
fail_if(real__ != 0);
|
||||
__EFL_MAIN_DESTRUCTOR;
|
||||
ecore_shutdown_ex();
|
||||
ecore_shutdown();
|
||||
}
|
||||
EFL_END_TEST
|
||||
|
||||
void efl_ui_test(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, efl_ui_test_init);
|
||||
}
|
||||
|
||||
#include "efl_ui_suite.h"
|
||||
#include "suite_helpers.h"
|
||||
|
||||
static const Efl_Test_Case etc[] = {
|
||||
{ "Efl_Ui", efl_ui_test },
|
||||
//{ "elm_focus", elm_test_focus},
|
||||
//{ "elm_focus_sub", elm_test_focus_sub},
|
||||
//{ "elm_widget_focus", elm_test_widget_focus},
|
||||
{ "efl_ui_grid", efl_ui_test_grid},
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
SUITE_INIT(efl_ui)
|
||||
{
|
||||
//???
|
||||
}
|
||||
|
||||
SUITE_SHUTDOWN(efl_ui)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
@ -72,12 +24,10 @@ main(int argc, char **argv)
|
|||
if (!_efl_test_option_disp(argc, argv, etc))
|
||||
return 0;
|
||||
|
||||
#ifdef NEED_RUN_IN_TREE
|
||||
putenv("EFL_RUN_IN_TREE=1");
|
||||
#endif
|
||||
failed_count = suite_setup(EINA_FALSE);
|
||||
|
||||
failed_count = _efl_suite_build_and_run(argc - 1, (const char **)argv + 1,
|
||||
"Efl_Ui", etc, SUITE_INIT_FN(efl_ui), SUITE_SHUTDOWN_FN(efl_ui));
|
||||
failed_count += _efl_suite_build_and_run(argc - 1, (const char **)argv + 1,
|
||||
"Efl_Ui", etc, SUITE_INIT_FN(elm2), SUITE_SHUTDOWN_FN(elm));
|
||||
|
||||
return (failed_count == 0) ? 0 : 255;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
#ifndef EFL_UI_SUITE_H
|
||||
#define EFL_UI_SUITE_H
|
||||
|
||||
#include <check.h>
|
||||
#include "../efl_check.h"
|
||||
#define ck_assert_strn_eq(s1, s2, len) \
|
||||
{ \
|
||||
char expected[len+1], actual[len+1]; \
|
||||
\
|
||||
strncpy(expected, s1, len); \
|
||||
expected[len] = '\0'; \
|
||||
strncpy(actual, s2, len); \
|
||||
actual[len] = '\0'; \
|
||||
\
|
||||
ck_assert_str_eq(expected, actual); \
|
||||
}
|
||||
|
||||
#include <Evas.h>
|
||||
void efl_ui_test_grid(TCase *tc);
|
||||
|
||||
Eo *win_add();
|
||||
Eo *win_add_focused();
|
||||
#endif
|
|
@ -4,33 +4,22 @@
|
|||
|
||||
#define EFL_ACCESS_OBJECT_BETA
|
||||
#include <Elementary.h>
|
||||
#include "elm_suite.h"
|
||||
#include "efl_ui_suite.h"
|
||||
|
||||
static Eo *win, *box;
|
||||
static Eo *win;
|
||||
static Efl_Ui_Grid *grid;
|
||||
|
||||
static void
|
||||
grid_setup()
|
||||
{
|
||||
//win = win_add();
|
||||
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
|
||||
efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC),
|
||||
efl_text_set(efl_added, "Efl.Ui.Grid"),
|
||||
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
|
||||
box = efl_add(EFL_UI_BOX_CLASS, win,
|
||||
efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL));
|
||||
efl_gfx_size_hint_weight_set(box, EFL_GFX_SIZE_HINT_EXPAND, EFL_GFX_SIZE_HINT_EXPAND);
|
||||
efl_gfx_size_hint_fill_set(box, EINA_TRUE, EINA_TRUE);
|
||||
elm_win_resize_object_add(win, box);
|
||||
win = win_add();
|
||||
|
||||
grid = efl_add(EFL_UI_GRID_CLASS, box);
|
||||
grid = efl_add(EFL_UI_GRID_CLASS, win);
|
||||
|
||||
efl_ui_grid_item_size_set(grid, EINA_SIZE2D(100, 100));
|
||||
efl_pack_padding_set(grid, 5.0, 5.0, EINA_TRUE);
|
||||
efl_pack_align_set(grid, 0.5, 0.5);
|
||||
efl_pack_end(box, grid);
|
||||
|
||||
efl_gfx_entity_size_set(win, EINA_SIZE2D(500, 500));
|
||||
efl_gfx_entity_size_set(grid, EINA_SIZE2D(500, 50));
|
||||
efl_gfx_entity_size_set(win, EINA_SIZE2D(500, 50));
|
||||
efl_gfx_entity_visible_set(win, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -5,12 +5,7 @@
|
|||
#include <Elementary.h>
|
||||
#include "elm_suite.h"
|
||||
#include "../efl_check.h"
|
||||
#include "elm_widget.h"
|
||||
|
||||
static int main_pid = -1;
|
||||
static Eina_Bool did_shutdown;
|
||||
static Evas_Object *global_win;
|
||||
static Eina_Bool buffer = EINA_FALSE;
|
||||
#include "suite_helpers.h"
|
||||
|
||||
static const Efl_Test_Case etc[] = {
|
||||
{ "elm_config", elm_test_config },
|
||||
|
@ -91,126 +86,9 @@ static const Efl_Test_Case etc[] = {
|
|||
{ "elm_focus", elm_test_focus},
|
||||
{ "elm_focus_sub", elm_test_focus_sub},
|
||||
{ "elm_widget_focus", elm_test_widget_focus},
|
||||
/* FIXME : This test must move efl_ui_suite when it ready *
|
||||
* EFL_UI_TEST BEGIN */
|
||||
{ "efl_ui_grid", efl_ui_test_grid},
|
||||
/* EFL_UI_TEST END */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
SUITE_INIT(elm)
|
||||
{
|
||||
char *args[] = { "exe" };
|
||||
ck_assert_int_eq(elm_init(1, args), 1);
|
||||
}
|
||||
|
||||
SUITE_INIT(elm2)
|
||||
{
|
||||
char *args[] = { "exe" };
|
||||
|
||||
if (getpid() != main_pid)
|
||||
{
|
||||
ecore_fork_reset();
|
||||
return;
|
||||
}
|
||||
if (!did_shutdown)
|
||||
{
|
||||
/* if running un-forked then remove cached init */
|
||||
ck_assert_int_eq(elm_shutdown(), 0);
|
||||
did_shutdown = 1;
|
||||
}
|
||||
ck_assert_int_eq(elm_init(1, args), 1);
|
||||
}
|
||||
|
||||
SUITE_SHUTDOWN(elm)
|
||||
{
|
||||
ck_assert_int_eq(elm_shutdown(), 0);
|
||||
/* verify that ecore was de-initialized completely */
|
||||
ck_assert_int_eq(ecore_init(), 1);
|
||||
/* avoid slowdowns in fork mode */
|
||||
if (getpid() != main_pid) return;
|
||||
ck_assert_int_eq(ecore_shutdown(), 0);
|
||||
}
|
||||
|
||||
|
||||
static const Efl_Test_Case etc_init[] = {
|
||||
{ "init", elm_test_init },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
#define BUFFER_RENDER_INTERVAL 0.002
|
||||
|
||||
static Eina_Bool
|
||||
_win_manual_render(void *data)
|
||||
{
|
||||
ecore_animator_custom_tick();
|
||||
evas_norender(evas_object_evas_get(data));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_win_show(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
evas_object_data_set(obj, "timer", ecore_timer_add(BUFFER_RENDER_INTERVAL, _win_manual_render, obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_win_hide(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
ecore_timer_del(evas_object_data_del(obj, "timer"));
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_elm_suite_win_create()
|
||||
{
|
||||
Evas_Object *win = elm_win_add(NULL, "elm_suite", ELM_WIN_BASIC);
|
||||
if (!buffer) return win;
|
||||
ecore_evas_manual_render_set(ecore_evas_ecore_evas_get(evas_object_evas_get(win)), EINA_TRUE);
|
||||
edje_frametime_set(BUFFER_RENDER_INTERVAL);
|
||||
ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_SHOW, _win_show, NULL);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_HIDE, _win_hide, NULL);
|
||||
return win;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
win_add()
|
||||
{
|
||||
if (getpid() != main_pid)
|
||||
{
|
||||
if (global_win) return global_win;
|
||||
}
|
||||
return _elm_suite_win_create();
|
||||
}
|
||||
|
||||
static void
|
||||
force_focus_win(Evas_Object *win)
|
||||
{
|
||||
Ecore_Evas *ee;
|
||||
|
||||
ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win));
|
||||
ecore_evas_focus_set(ee, EINA_TRUE);
|
||||
ecore_evas_callback_focus_in_set(ee, NULL);
|
||||
ecore_evas_callback_focus_out_set(ee, NULL);
|
||||
Elm_Widget_Smart_Data *pd = efl_data_scope_safe_get(win, EFL_UI_WIDGET_CLASS);
|
||||
pd->top_win_focused = EINA_TRUE;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
win_add_focused()
|
||||
{
|
||||
Evas_Object *win;
|
||||
|
||||
if (getpid() != main_pid)
|
||||
{
|
||||
if (global_win) return global_win;
|
||||
}
|
||||
|
||||
win = _elm_suite_win_create();
|
||||
force_focus_win(win);
|
||||
return win;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
@ -219,51 +97,7 @@ main(int argc, char **argv)
|
|||
if (!_efl_test_option_disp(argc, argv, etc))
|
||||
return 0;
|
||||
|
||||
#ifdef NEED_RUN_IN_TREE
|
||||
putenv("EFL_RUN_IN_TREE=1");
|
||||
#endif
|
||||
if (!getenv("ELM_ENGINE"))
|
||||
putenv("ELM_ENGINE=buffer");
|
||||
if (eina_streq(getenv("ELM_ENGINE"), "buffer"))
|
||||
{
|
||||
putenv("TESTS_GL_DISABLED=1");
|
||||
buffer = EINA_TRUE;
|
||||
}
|
||||
|
||||
main_pid = getpid();
|
||||
ecore_app_no_system_modules();
|
||||
efreet_cache_disable();
|
||||
|
||||
failed_count = _efl_suite_build_and_run(argc - 1, (const char **)argv + 1,
|
||||
"Elementary_Init", etc_init, SUITE_INIT_FN(elm), SUITE_SHUTDOWN_FN(elm));
|
||||
failed_count += !elm_init(1, (char*[]){"exe"});
|
||||
if (buffer)
|
||||
{
|
||||
global_win = _elm_suite_win_create();
|
||||
force_focus_win(global_win);
|
||||
}
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
/* preload default theme */
|
||||
failed_count += !elm_theme_group_path_find(NULL, "elm/button/base/default");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
failed_count += !elm_theme_group_path_find(NULL, "elm/border/base/default");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
failed_count += !elm_theme_group_path_find(NULL, "elm/win/base/default");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
|
||||
/* none of these will be found in the default theme,
|
||||
* but all are "fetched" hundreds of times
|
||||
* T6865
|
||||
*/
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/top_side/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/bottom_side/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/top_left_corner/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/bottom_left_corner/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/top_right_corner/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/bottom_right_corner/default");
|
||||
|
||||
|
||||
elm_theme_group_path_find(NULL, "elm/colorselector/item/color/default");
|
||||
failed_count = suite_setup(EINA_TRUE);
|
||||
|
||||
failed_count += _efl_suite_build_and_run(argc - 1, (const char **)argv + 1,
|
||||
"Elementary", etc, SUITE_INIT_FN(elm2), SUITE_SHUTDOWN_FN(elm));
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
}
|
||||
|
||||
#include <Evas.h>
|
||||
void elm_test_init(TCase *tc);
|
||||
|
||||
void elm_test_config(TCase *tc);
|
||||
void elm_test_check(TCase *tc);
|
||||
void elm_test_colorselector(TCase *tc);
|
||||
|
@ -84,10 +84,6 @@ void elm_test_plug(TCase *tc);
|
|||
void elm_test_focus(TCase *tc);
|
||||
void elm_test_focus_sub(TCase *tc);
|
||||
void elm_test_widget_focus(TCase *tc);
|
||||
/* FIXME : This test must move efl_ui_suite when it ready *
|
||||
* EFL_UI_TEST BEGIN */
|
||||
void efl_ui_test_grid(TCase *tc);
|
||||
/* EFL_UI_TEST END */
|
||||
|
||||
void elm_code_file_test_load(TCase *tc);
|
||||
void elm_code_file_test_memory(TCase *tc);
|
||||
|
|
|
@ -19,6 +19,7 @@ endforeach
|
|||
|
||||
elementary_suite_src = [
|
||||
'elm_suite.c',
|
||||
'suite_helpers.c',
|
||||
'elm_test_atspi.c',
|
||||
'elm_test_check.c',
|
||||
'elm_test_colorselector.c',
|
||||
|
@ -100,7 +101,6 @@ elementary_suite_src = [
|
|||
'elm_test_focus_common.h',
|
||||
'elm_test_focus.c',
|
||||
'elm_test_focus_sub.c',
|
||||
'efl_ui_test_grid.c',
|
||||
'elm_test_widget_focus.c'
|
||||
]
|
||||
|
||||
|
@ -118,6 +118,9 @@ elementary_suite = executable('elementary_suite',
|
|||
|
||||
efl_ui_suite_src = [
|
||||
'efl_ui_suite.c',
|
||||
'suite_helpers.c',
|
||||
'elm_test_init.c',
|
||||
'efl_ui_test_grid.c',
|
||||
]
|
||||
|
||||
efl_ui_suite = executable('efl_ui_suite',
|
||||
|
|
|
@ -0,0 +1,305 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "elementary_config.h"
|
||||
#endif
|
||||
#include <Elementary.h>
|
||||
#include <Efl_Ui.h>
|
||||
#include <check.h>
|
||||
#include "../efl_check.h"
|
||||
#include "elm_widget.h"
|
||||
|
||||
static int main_pid = -1;
|
||||
static Eina_Bool did_shutdown;
|
||||
static Evas_Object *global_win;
|
||||
static Eina_Bool buffer = EINA_FALSE;
|
||||
static Eina_Bool legacy_mode = EINA_FALSE;
|
||||
|
||||
void elm_test_init(TCase *tc);
|
||||
|
||||
SUITE_INIT(elm)
|
||||
{
|
||||
char *args[] = { "exe" };
|
||||
ck_assert_int_eq(elm_init(1, args), 1);
|
||||
}
|
||||
|
||||
void
|
||||
_elm2_suite_init(void)
|
||||
{
|
||||
char *args[] = { "exe" };
|
||||
|
||||
if (getpid() != main_pid)
|
||||
{
|
||||
ecore_fork_reset();
|
||||
return;
|
||||
}
|
||||
if (!did_shutdown)
|
||||
{
|
||||
/* if running un-forked then remove cached init */
|
||||
ck_assert_int_eq(elm_shutdown(), 0);
|
||||
did_shutdown = 1;
|
||||
}
|
||||
ck_assert_int_eq(elm_init(1, args), 1);
|
||||
}
|
||||
|
||||
void
|
||||
_elm_suite_shutdown(void)
|
||||
{
|
||||
ck_assert_int_eq(elm_shutdown(), 0);
|
||||
/* verify that ecore was de-initialized completely */
|
||||
ck_assert_int_eq(ecore_init(), 1);
|
||||
/* avoid slowdowns in fork mode */
|
||||
if (getpid() != main_pid) return;
|
||||
ck_assert_int_eq(ecore_shutdown(), 0);
|
||||
}
|
||||
|
||||
|
||||
static const Efl_Test_Case etc_init[] = {
|
||||
{ "init", elm_test_init },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
EAPI_MAIN void
|
||||
efl_main(void *data EINA_UNUSED,
|
||||
const Efl_Event *ev)
|
||||
{
|
||||
Efl_Loop_Arguments *arge = ev->info;
|
||||
|
||||
|
||||
fail_if(!arge->initialization);
|
||||
fprintf(stderr, "ARGC %d\n", eina_array_count(arge->argv));
|
||||
fail_if(eina_array_count(arge->argv) != 2);
|
||||
fail_if(!eina_streq(eina_array_data_get(arge->argv, 1), "test"));
|
||||
|
||||
efl_loop_quit(ev->object, eina_value_string_init("success"));
|
||||
}
|
||||
|
||||
EFL_START_TEST(efl_ui_test_init)
|
||||
{
|
||||
/* EFL_MAIN */
|
||||
Eina_Value *ret__;
|
||||
int real__;
|
||||
|
||||
int argc = 2;
|
||||
char *argv[] = { "efl_ui_suite", "test" };
|
||||
_efl_startup_time = ecore_time_unix_get();
|
||||
_EFL_APP_VERSION_SET();
|
||||
fail_if(!ecore_init());
|
||||
efl_event_callback_add(efl_app_main_get(EFL_APP_CLASS), EFL_LOOP_EVENT_ARGUMENTS, efl_main, NULL);
|
||||
fail_if(!ecore_init_ex(argc, argv));
|
||||
__EFL_MAIN_CONSTRUCTOR;
|
||||
ret__ = efl_loop_begin(efl_app_main_get(EFL_APP_CLASS));
|
||||
real__ = efl_loop_exit_code_process(ret__);
|
||||
fail_if(real__ != 0);
|
||||
__EFL_MAIN_DESTRUCTOR;
|
||||
ecore_shutdown_ex();
|
||||
ecore_shutdown();
|
||||
}
|
||||
EFL_END_TEST
|
||||
|
||||
void efl_ui_init(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, efl_ui_test_init);
|
||||
}
|
||||
|
||||
|
||||
static const Efl_Test_Case ui_init[] = {
|
||||
{ "init", efl_ui_init },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
#define BUFFER_RENDER_INTERVAL 0.002
|
||||
|
||||
static void
|
||||
_ui_win_manual_render(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
ecore_animator_custom_tick();
|
||||
evas_norender(evas_object_evas_get(data));
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_win_manual_render(void *data)
|
||||
{
|
||||
ecore_animator_custom_tick();
|
||||
evas_norender(evas_object_evas_get(data));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_win_show(void *data EINA_UNUSED, const Efl_Event *ev)
|
||||
{
|
||||
Eo *timer = efl_add(EFL_LOOP_TIMER_CLASS, ev->object,
|
||||
efl_event_callback_add(efl_added, EFL_LOOP_TIMER_EVENT_TICK, _ui_win_manual_render, ev->object),
|
||||
efl_loop_timer_interval_set(efl_added, BUFFER_RENDER_INTERVAL)
|
||||
);
|
||||
efl_key_data_set(ev->object, "timer", timer);
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_win_hide(void *data EINA_UNUSED, const Efl_Event *ev)
|
||||
{
|
||||
efl_del(efl_key_data_get(ev->object, "timer"));
|
||||
efl_key_data_set(ev->object, "timer", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_win_show(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
evas_object_data_set(obj, "timer", ecore_timer_add(BUFFER_RENDER_INTERVAL, _win_manual_render, obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_win_hide(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
ecore_timer_del(evas_object_data_del(obj, "timer"));
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_elm_suite_win_create()
|
||||
{
|
||||
Evas_Object *win;
|
||||
|
||||
if (legacy_mode)
|
||||
win = elm_win_add(NULL, "elm_suite", ELM_WIN_BASIC);
|
||||
else
|
||||
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
|
||||
if (!buffer) return win;
|
||||
ecore_evas_manual_render_set(ecore_evas_ecore_evas_get(evas_object_evas_get(win)), EINA_TRUE);
|
||||
edje_frametime_set(BUFFER_RENDER_INTERVAL);
|
||||
ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
|
||||
if (legacy_mode)
|
||||
{
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_SHOW, _win_show, NULL);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_HIDE, _win_hide, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
efl_event_callback_add(win, EFL_GFX_ENTITY_EVENT_SHOW, _ui_win_show, NULL);
|
||||
efl_event_callback_add(win, EFL_GFX_ENTITY_EVENT_HIDE, _ui_win_hide, NULL);
|
||||
}
|
||||
return win;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
win_add()
|
||||
{
|
||||
if (getpid() != main_pid)
|
||||
{
|
||||
if (global_win) return global_win;
|
||||
}
|
||||
return _elm_suite_win_create();
|
||||
}
|
||||
|
||||
static void
|
||||
force_focus_win(Evas_Object *win)
|
||||
{
|
||||
Ecore_Evas *ee;
|
||||
|
||||
ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win));
|
||||
ecore_evas_focus_set(ee, EINA_TRUE);
|
||||
ecore_evas_callback_focus_in_set(ee, NULL);
|
||||
ecore_evas_callback_focus_out_set(ee, NULL);
|
||||
Elm_Widget_Smart_Data *pd = efl_data_scope_safe_get(win, EFL_UI_WIDGET_CLASS);
|
||||
pd->top_win_focused = EINA_TRUE;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
win_add_focused()
|
||||
{
|
||||
Evas_Object *win;
|
||||
|
||||
if (getpid() != main_pid)
|
||||
{
|
||||
if (global_win) return global_win;
|
||||
}
|
||||
|
||||
win = _elm_suite_win_create();
|
||||
force_focus_win(win);
|
||||
return win;
|
||||
}
|
||||
|
||||
int
|
||||
suite_setup(Eina_Bool legacy)
|
||||
{
|
||||
int failed_count;
|
||||
|
||||
legacy_mode = legacy;
|
||||
|
||||
#ifdef NEED_RUN_IN_TREE
|
||||
putenv("EFL_RUN_IN_TREE=1");
|
||||
#endif
|
||||
if (!getenv("ELM_ENGINE"))
|
||||
putenv("ELM_ENGINE=buffer");
|
||||
if (eina_streq(getenv("ELM_ENGINE"), "buffer"))
|
||||
{
|
||||
putenv("TESTS_GL_DISABLED=1");
|
||||
buffer = EINA_TRUE;
|
||||
}
|
||||
|
||||
main_pid = getpid();
|
||||
ecore_app_no_system_modules();
|
||||
efreet_cache_disable();
|
||||
|
||||
if (legacy)
|
||||
failed_count = _efl_suite_build_and_run(0, NULL,
|
||||
"Elementary_Init", etc_init, SUITE_INIT_FN(elm), SUITE_SHUTDOWN_FN(elm));
|
||||
else
|
||||
failed_count = _efl_suite_build_and_run(0, NULL,
|
||||
"Efl_Ui_Init", ui_init, NULL, NULL);
|
||||
|
||||
failed_count += !elm_init(1, (char*[]){"exe"});
|
||||
if (buffer)
|
||||
{
|
||||
global_win = _elm_suite_win_create();
|
||||
force_focus_win(global_win);
|
||||
}
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
/* preload default theme */
|
||||
if (legacy)
|
||||
{
|
||||
failed_count += !elm_theme_group_path_find(NULL, "elm/button/base/default");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
failed_count += !elm_theme_group_path_find(NULL, "elm/border/base/default");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
failed_count += !elm_theme_group_path_find(NULL, "elm/win/base/default");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
}
|
||||
else
|
||||
{
|
||||
failed_count += !elm_theme_group_path_find(NULL, "efl/button");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
failed_count += !elm_theme_group_path_find(NULL, "efl/border");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
failed_count += !elm_theme_group_path_find(NULL, "efl/win");
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(failed_count, 255);
|
||||
}
|
||||
|
||||
/* none of these will be found in the default theme,
|
||||
* but all are "fetched" hundreds of times
|
||||
* T6865
|
||||
*/
|
||||
if (legacy)
|
||||
{
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/top_side/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/bottom_side/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/top_left_corner/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/bottom_left_corner/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/top_right_corner/default");
|
||||
elm_theme_group_path_find(NULL, "elm/cursor/bottom_right_corner/default");
|
||||
|
||||
|
||||
elm_theme_group_path_find(NULL, "elm/colorselector/item/color/default");
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_theme_group_path_find(NULL, "efl/cursor/top_side");
|
||||
elm_theme_group_path_find(NULL, "efl/cursor/bottom_side");
|
||||
elm_theme_group_path_find(NULL, "efl/cursor/top_left_corner");
|
||||
elm_theme_group_path_find(NULL, "efl/cursor/bottom_left_corner");
|
||||
elm_theme_group_path_find(NULL, "efl/cursor/top_right_corner");
|
||||
elm_theme_group_path_find(NULL, "efl/cursor/bottom_right_corner");
|
||||
|
||||
|
||||
elm_theme_group_path_find(NULL, "efl/colorselector/item/color");
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
#ifndef SUITE_HELPERS_H
|
||||
#define SUITE_HELPERS_H
|
||||
|
||||
#include <Evas.h>
|
||||
|
||||
int suite_setup(Eina_Bool legacy);
|
||||
void _elm2_suite_init(void);
|
||||
void _elm_suite_shutdown(void);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue