2014-11-13 15:26:30 -08:00
|
|
|
#ifdef HAVE_CONFIG_H
|
2016-06-02 17:19:08 -07:00
|
|
|
# include "elementary_config.h"
|
2014-11-13 15:26:30 -08:00
|
|
|
#endif
|
|
|
|
|
2016-06-02 17:19:08 -07:00
|
|
|
#define ELM_INTERNAL_API_ARGESFSDFEFC
|
2014-11-13 15:26:30 -08:00
|
|
|
|
2016-06-02 17:19:08 -07:00
|
|
|
#include "elm_suite.h"
|
|
|
|
#include "Elementary.h"
|
2016-06-23 10:46:16 -07:00
|
|
|
|
|
|
|
#include "elm_priv.h"
|
|
|
|
|
|
|
|
#undef CRI
|
|
|
|
#define CRI(...) do { } while (0);
|
|
|
|
|
|
|
|
#undef ERR
|
|
|
|
#define ERR(...) do { } while (0);
|
|
|
|
|
|
|
|
#undef WRN
|
|
|
|
#define WRN(...) do { } while (0);
|
|
|
|
|
|
|
|
#undef INF
|
|
|
|
#define INF(...) do { } while (0);
|
|
|
|
|
|
|
|
#undef DBG
|
|
|
|
#define DBG(...) do { } while (0);
|
|
|
|
|
2017-03-06 17:03:03 -08:00
|
|
|
#include "elm_code_parse.c"
|
2017-05-03 12:51:03 -07:00
|
|
|
#include "elm_code_widget_selection.c"
|
2016-06-02 17:19:08 -07:00
|
|
|
#include "elm_code_widget.c"
|
2014-12-05 07:39:40 -08:00
|
|
|
|
2014-11-19 15:20:23 -08:00
|
|
|
static void _assert_cell_type(Evas_Textgrid_Cell cell, Elm_Code_Token_Type type, int id)
|
2014-11-13 15:26:30 -08:00
|
|
|
{
|
2014-11-19 15:20:23 -08:00
|
|
|
ck_assert_msg(cell.fg == type, "Wrong type for cell %d", id);
|
2014-11-13 15:26:30 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
START_TEST (elm_code_widget_token_render_simple_test)
|
|
|
|
{
|
|
|
|
Elm_Code_File *file;
|
|
|
|
Elm_Code_Line *line;
|
2014-11-16 15:52:41 -08:00
|
|
|
Elm_Code *code;
|
2015-03-29 12:52:38 -07:00
|
|
|
Elm_Code_Widget *widget;
|
|
|
|
Evas_Object *win;
|
|
|
|
|
2014-11-13 15:26:30 -08:00
|
|
|
int length;
|
2017-06-27 14:07:24 -07:00
|
|
|
unsigned int gutter;
|
2014-11-13 15:26:30 -08:00
|
|
|
|
|
|
|
Evas_Textgrid_Cell cells[25];
|
|
|
|
|
2015-03-29 12:52:38 -07:00
|
|
|
elm_init(1, NULL);
|
2014-11-16 15:52:41 -08:00
|
|
|
code = elm_code_create();
|
2015-03-29 12:52:38 -07:00
|
|
|
|
|
|
|
win = elm_win_add(NULL, "code", ELM_WIN_BASIC);
|
2015-06-02 00:22:36 -07:00
|
|
|
widget = elm_code_widget_add(win, code);
|
2015-03-29 12:52:38 -07:00
|
|
|
|
2014-11-28 00:55:42 -08:00
|
|
|
file = code->file;
|
2015-02-14 15:14:06 -08:00
|
|
|
elm_code_file_line_append(file, "some \"test content\", 45", 23, NULL);
|
2014-11-13 15:26:30 -08:00
|
|
|
line = elm_code_file_line_get(file, 1);
|
2014-11-19 15:20:23 -08:00
|
|
|
length = line->length;
|
|
|
|
|
2017-06-27 14:07:24 -07:00
|
|
|
elm_code_line_token_add(line, 5, 18, 1, ELM_CODE_TOKEN_TYPE_COMMENT);
|
|
|
|
elm_code_line_token_add(line, 21, 22, 1, ELM_CODE_TOKEN_TYPE_NUMBER);
|
2014-11-19 15:20:23 -08:00
|
|
|
|
2015-03-29 12:52:38 -07:00
|
|
|
_elm_code_widget_fill_line_tokens(widget, cells, length+1, line);
|
2017-06-27 14:07:24 -07:00
|
|
|
gutter = elm_obj_code_widget_text_left_gutter_width_get(widget);
|
|
|
|
|
|
|
|
_assert_cell_type(cells[gutter+15], ELM_CODE_TOKEN_TYPE_COMMENT, 16);
|
|
|
|
_assert_cell_type(cells[gutter+21], ELM_CODE_TOKEN_TYPE_NUMBER, 22);
|
2014-11-13 15:26:30 -08:00
|
|
|
|
2014-11-16 15:52:41 -08:00
|
|
|
elm_code_free(code);
|
2015-03-29 12:52:38 -07:00
|
|
|
elm_shutdown();
|
2014-11-13 15:26:30 -08:00
|
|
|
}
|
|
|
|
END_TEST
|
|
|
|
|
2015-02-28 05:22:38 -08:00
|
|
|
START_TEST (elm_code_widget_construct)
|
|
|
|
{
|
|
|
|
Elm_Code *code;
|
2015-03-25 15:59:42 -07:00
|
|
|
Elm_Code_Widget *widget;
|
|
|
|
Evas_Object *win;
|
2015-02-28 05:22:38 -08:00
|
|
|
|
|
|
|
elm_init(1, NULL);
|
|
|
|
code = elm_code_create();
|
|
|
|
|
|
|
|
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC);
|
2015-06-02 00:22:36 -07:00
|
|
|
widget = elm_code_widget_add(win, code);
|
2015-02-28 05:22:38 -08:00
|
|
|
|
|
|
|
ck_assert(!!widget);
|
|
|
|
elm_code_free(code);
|
|
|
|
elm_shutdown();
|
|
|
|
}
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
START_TEST (elm_code_widget_construct_nocode)
|
|
|
|
{
|
2015-03-25 15:59:42 -07:00
|
|
|
Elm_Code_Widget *widget;
|
|
|
|
Evas_Object *win;
|
2015-02-28 05:22:38 -08:00
|
|
|
|
|
|
|
elm_init(1, NULL);
|
|
|
|
|
|
|
|
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC);
|
2016-08-15 06:44:41 -07:00
|
|
|
widget = efl_add(ELM_CODE_WIDGET_CLASS, win);
|
2015-02-28 05:22:38 -08:00
|
|
|
ck_assert(!widget);
|
|
|
|
|
|
|
|
elm_shutdown();
|
|
|
|
}
|
|
|
|
END_TEST
|
|
|
|
|
2016-12-09 07:53:38 -08:00
|
|
|
START_TEST (elm_code_widget_position)
|
|
|
|
{
|
|
|
|
Elm_Code *code;
|
|
|
|
Elm_Code_Widget *widget;
|
|
|
|
Evas_Object *win;
|
|
|
|
Evas_Coord x, y, w, h, x2, y2, w2, h2;
|
|
|
|
|
|
|
|
elm_init(1, NULL);
|
|
|
|
code = elm_code_create();
|
|
|
|
|
|
|
|
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC);
|
|
|
|
widget = elm_code_widget_add(win, code);
|
|
|
|
evas_object_show(widget);
|
|
|
|
evas_object_resize(widget, 100, 100);
|
|
|
|
|
|
|
|
elm_code_file_line_append(code->file, "some content", 12, NULL);
|
|
|
|
elm_code_file_line_append(code->file, "more", 4, NULL);
|
|
|
|
|
|
|
|
elm_code_widget_geometry_for_position_get(widget, 1, 1, &x, &y, &w, &h);
|
|
|
|
elm_code_widget_geometry_for_position_get(widget, 1, 2, &x2, &y2, &w2, &h2);
|
|
|
|
ck_assert(x2 > x);
|
|
|
|
ck_assert(y2 == y);
|
|
|
|
ck_assert(w2 == w);
|
|
|
|
ck_assert(h2 == h);
|
|
|
|
|
|
|
|
elm_code_widget_geometry_for_position_get(widget, 2, 1, &x2, &y2, &w2, &h2);
|
|
|
|
ck_assert(x2 == x);
|
|
|
|
ck_assert(w2 == w);
|
|
|
|
ck_assert(h2 == h);
|
|
|
|
|
|
|
|
elm_code_free(code);
|
|
|
|
elm_shutdown();
|
|
|
|
}
|
|
|
|
END_TEST
|
|
|
|
|
2014-11-13 15:26:30 -08:00
|
|
|
void elm_code_test_widget(TCase *tc)
|
|
|
|
{
|
|
|
|
tcase_add_test(tc, elm_code_widget_token_render_simple_test);
|
2015-02-28 05:22:38 -08:00
|
|
|
tcase_add_test(tc, elm_code_widget_construct);
|
|
|
|
tcase_add_test(tc, elm_code_widget_construct_nocode);
|
2016-12-09 07:53:38 -08:00
|
|
|
tcase_add_test(tc, elm_code_widget_position);
|
2014-11-13 15:26:30 -08:00
|
|
|
}
|