forked from enlightenment/edi
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.5 KiB
111 lines
2.5 KiB
#ifdef HAVE_CONFIG_H |
|
# include "config.h" |
|
#endif |
|
|
|
#include <Elementary.h> |
|
|
|
#include "../bin/edi_private.h" |
|
#include "language/edi_language_provider.h" |
|
|
|
#include "edi_suite.h" |
|
|
|
int _edi_lib_log_dom = -1; |
|
|
|
static Elm_Code * |
|
_setup(Edi_Editor *editor, Evas_Object *win) |
|
{ |
|
Elm_Code *code; |
|
Elm_Code_Widget *widget; |
|
|
|
editor->mimetype = "text/x-csrc"; |
|
|
|
code = elm_code_create(); |
|
elm_code_file_open(code, PACKAGE_TESTS_DIR "test.c"); |
|
|
|
widget = elm_code_widget_add(win, code); |
|
editor->entry = widget; |
|
elm_code_widget_cursor_position_set(widget, 3, 12); |
|
elm_code_widget_font_set(widget, "Mono", 14); |
|
|
|
return code; |
|
} |
|
|
|
static Eina_List * |
|
_filtered_list_get(Eina_List *list, const char *word) |
|
{ |
|
Edi_Language_Suggest_Item *suggest_it; |
|
Eina_List *l, *ret = NULL; |
|
|
|
EINA_LIST_FOREACH(list, l, suggest_it) |
|
{ |
|
if (eina_str_has_prefix(suggest_it->summary, word)) |
|
ret = eina_list_append(ret, suggest_it); |
|
} |
|
|
|
return ret; |
|
} |
|
|
|
START_TEST (edi_test_language_provider_c_lookup) |
|
{ |
|
Elm_Code *code; |
|
Evas_Object *win; |
|
Edi_Editor editor; |
|
Edi_Language_Provider *provider; |
|
Edi_Language_Suggest_Item *item; |
|
Eina_List *list; |
|
|
|
elm_init(1, NULL); |
|
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC); |
|
code = _setup(&editor, win); |
|
|
|
provider = edi_language_provider_get(&editor); |
|
provider->add(&editor); |
|
list = provider->lookup(&editor, 3, 12); |
|
ck_assert_int_eq(eina_list_count(_filtered_list_get(list, "_xyzabc_")), 1); |
|
|
|
EINA_LIST_FREE(list, item) |
|
edi_language_suggest_item_free(item); |
|
|
|
provider->del(&editor); |
|
elm_code_free(code); |
|
elm_shutdown(); |
|
} |
|
END_TEST |
|
|
|
START_TEST (edi_test_language_provider_c_summary) |
|
{ |
|
Elm_Code *code; |
|
Evas_Object *win; |
|
Edi_Editor editor; |
|
Edi_Language_Provider *provider; |
|
Edi_Language_Suggest_Item *item; |
|
Eina_List *list; |
|
|
|
elm_init(1, NULL); |
|
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC); |
|
code = _setup(&editor, win); |
|
|
|
provider = edi_language_provider_get(&editor); |
|
provider->add(&editor); |
|
list = provider->lookup(&editor, 3, 12); |
|
item = eina_list_nth(_filtered_list_get(list, "_xyzabc_"), 0); |
|
ck_assert_str_eq(item->summary, "_xyzabc_test"); |
|
|
|
EINA_LIST_FREE(list, item) |
|
edi_language_suggest_item_free(item); |
|
|
|
provider->del(&editor); |
|
elm_code_free(code); |
|
elm_shutdown(); |
|
} |
|
END_TEST |
|
|
|
void edi_test_language_provider_c(TCase *tc) |
|
{ |
|
#if HAVE_LIBCLANG |
|
// TODO fix issues caused in elm by this test |
|
// tcase_add_test(tc, edi_test_language_provider_c_lookup); |
|
// tcase_add_test(tc, edi_test_language_provider_c_summary); |
|
#endif |
|
} |
|
|
|
|