efl
546 строк · 20.2 Кб
1#define EFL_NOLEGACY_API_SUPPORT2#ifdef HAVE_CONFIG_H3# include "elementary_config.h"4#endif5#define EFL_LAYOUT_CALC_PROTECTED6#include <Efl_Ui.h>7#include "efl_ui_suite.h"8#include "Evas_Legacy.h"9
10static void11increment_int_changed(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)12{
13int *value = data;14(*value)++;15}
16
17EFL_START_TEST(text_cnp)18{
19Eo *txt;20Eo *win = win_add();21
22int i_copy = 0, i_paste = 0, i_cut = 0;23
24txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,25efl_event_callback_add(efl_added, EFL_UI_TEXTBOX_EVENT_SELECTION_COPY, increment_int_changed, &i_copy),26efl_event_callback_add(efl_added, EFL_UI_TEXTBOX_EVENT_SELECTION_PASTE, increment_int_changed, &i_paste),27efl_event_callback_add(efl_added, EFL_UI_TEXTBOX_EVENT_SELECTION_CUT, increment_int_changed, &i_cut)28);29
30efl_text_set(txt, "Hello");31efl_text_interactive_all_select(txt);32efl_ui_textbox_selection_copy(txt);33efl_text_interactive_all_unselect(txt);34efl_text_cursor_object_text_insert(efl_text_interactive_main_cursor_get(txt), "X");35efl_ui_textbox_selection_paste(txt);36ecore_main_loop_iterate();37ck_assert_int_eq(i_copy, 1);38ck_assert_int_eq(i_paste, 1);39ck_assert_str_eq(efl_text_get(txt), "HelloXHello");40
41i_copy = i_cut = i_paste= 0;42efl_text_set(txt, "Hello");43efl_text_interactive_all_select(txt);44efl_ui_textbox_selection_copy(txt);45efl_text_interactive_all_select(txt);46efl_ui_textbox_selection_cut(txt);47efl_ui_textbox_selection_paste(txt);48efl_ui_textbox_selection_paste(txt);49ecore_main_loop_iterate();50ck_assert_int_eq(i_copy, 1);51ck_assert_int_eq(i_cut, 1);52ck_assert_int_eq(i_paste, 2);53//FIXME54//fail_if(strcmp(efl_text_get(txt),"HelloHello"));55efl_del(txt);56}
57EFL_END_TEST
58
59static void60_stop_event_soon(void *data EINA_UNUSED, const Efl_Event *ev)61{
62efl_event_callback_stop(ev->object);63}
64
65EFL_START_TEST(text_all_select_all_unselect)66{
67Eo *txt, *txt2;68Eo *win = win_add();69
70int i_have_selection = 0, i_selection = 0;71
72txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,73efl_event_callback_add(efl_added, EFL_TEXT_INTERACTIVE_EVENT_HAVE_SELECTION_CHANGED,74increment_int_changed, &i_have_selection),75efl_event_callback_add(efl_added, EFL_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED,76increment_int_changed, &i_selection)77);78efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);79efl_text_set(txt, "Hello");80efl_text_interactive_all_select(txt);81Efl_Text_Cursor_Object *c1=NULL, *c2 =NULL;82efl_text_interactive_selection_cursors_get(txt, &c1, &c2);83ck_assert_ptr_ne(c1, NULL);84ck_assert_ptr_ne(c2, NULL);85fail_if(!efl_text_interactive_have_selection_get(txt));86ck_assert_int_eq(efl_text_cursor_object_position_get(c1), 0);87ck_assert_int_eq(efl_text_cursor_object_position_get(c2), 5);88efl_text_interactive_all_unselect(txt);89fail_if(efl_text_interactive_have_selection_get(txt));90ecore_main_loop_iterate();91ck_assert_int_eq(i_have_selection, 2);92ck_assert_int_eq(i_selection, 1);93
94/*Partial select, the select all*/95Eo *sel1, *sel2;96i_selection = 0;97efl_text_interactive_selection_cursors_get(txt, &sel1, &sel2);98efl_text_cursor_object_position_set(sel1, 1);99efl_text_cursor_object_position_set(sel2, 2);100ck_assert_int_eq(i_selection, 2);101efl_text_interactive_all_select(txt);102ck_assert_int_eq(i_selection, 3);103ck_assert_int_eq(efl_text_cursor_object_position_get(sel1), 0);104ck_assert_int_eq(efl_text_cursor_object_position_get(sel2), 5);105
106Eo *cur1 = efl_ui_textbox_cursor_create(txt);107Eo *cur2 = efl_ui_textbox_cursor_create(txt);108efl_text_cursor_object_position_set(cur1, 1);109efl_text_cursor_object_position_set(cur2, 2);110efl_text_interactive_selection_cursors_set(txt, cur1, cur2);111ck_assert_int_eq(i_selection, 4);112efl_text_interactive_selection_cursors_get(txt, &sel1, &sel2);113ck_assert_int_eq(efl_text_cursor_object_position_get(sel1),1);114ck_assert_int_eq(efl_text_cursor_object_position_get(sel2),2);115
116
117/*Select part then select all*/118efl_text_interactive_all_unselect(txt);119i_have_selection = 0, i_selection = 0;120efl_text_cursor_object_position_set(cur1, 1);121efl_text_cursor_object_position_set(cur2, 2);122efl_text_interactive_selection_cursors_set(txt, cur1, cur2);123ck_assert_int_eq(i_selection, 1);124ck_assert_int_eq(i_have_selection, 1);125efl_text_interactive_all_select(txt);126ck_assert_int_eq(i_selection, 2);127ck_assert_int_eq(i_have_selection, 1);128efl_text_interactive_all_unselect(txt);129ck_assert_int_eq(i_have_selection, 2);130
131//cursor selection change on efl_markup_set132txt2 = efl_add(EFL_UI_TEXTBOX_CLASS, win);133efl_text_markup_set(txt2, "<ps>");134
135efl_del(txt);136efl_del(txt2);137efl_del(win);138}
139EFL_END_TEST
140
141EFL_START_TEST(text_selection)142{
143Eo *txt;144Eo *win = win_add();145
146txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);147efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);148efl_gfx_entity_size_set(txt, EINA_SIZE2D(300, 300));149efl_text_set(txt, "Hello");150get_me_to_those_events(txt);151drag_object(txt, 2, 2, 295, 295, EINA_TRUE);152ecore_main_loop_iterate();153Efl_Text_Cursor_Object *c1=NULL, *c2 =NULL;154efl_text_interactive_selection_cursors_get(txt, &c1, &c2);155ck_assert_ptr_ne(c1, NULL);156ck_assert_ptr_ne(c2, NULL);157fail_if(!efl_text_interactive_have_selection_get(txt));158ck_assert_int_eq(efl_text_cursor_object_position_get(c1), 0);159ck_assert_int_eq(efl_text_cursor_object_position_get(c2), 5);160efl_text_interactive_all_unselect(txt);161fail_if(efl_text_interactive_have_selection_get(txt));162efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);163drag_object(txt, 2, 2, 295, 295, EINA_TRUE);164ecore_main_loop_iterate();165fail_if(efl_text_interactive_have_selection_get(txt));166efl_del(txt);167}
168EFL_END_TEST
169
170static void171user_changed(void *data, const Efl_Event *ev)172{
173Efl_Text_Change_Info *info = (Efl_Text_Change_Info *)ev->info;174Efl_Text_Change_Info *stored = (Efl_Text_Change_Info *)data;175*stored = *info;176}
177
178EFL_START_TEST(text_user_change)179{
180Eo *txt;181Eo *win = win_add();182Efl_Text_Change_Info info = {0};183txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,184efl_event_callback_add(efl_added, EFL_TEXT_INTERACTIVE_EVENT_CHANGED_USER, user_changed, &info)185);186efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);187efl_text_set(txt, "Hello");188efl_gfx_entity_size_set(txt, EINA_SIZE2D(300, 300));189efl_text_interactive_all_select(txt);190efl_ui_textbox_selection_cut(txt);191ck_assert_int_eq(info.position, 0);192ck_assert_int_eq(info.length, 5);193efl_del(txt);194efl_del(win);195}
196EFL_END_TEST
197
198EFL_START_TEST(text_scroll_mode)199{
200Eo *txt, *win, *cur;201win = win_add();202txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);203efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);204cur = efl_text_interactive_main_cursor_get(txt);205efl_text_set(txt, "Hello");206/*scroll mode is false by default*/207fail_if(efl_ui_textbox_scrollable_get(txt));208efl_ui_textbox_scrollable_set(txt, !efl_ui_textbox_scrollable_get(txt));209efl_text_cursor_object_text_insert(cur, "World");210fail_if(!efl_ui_textbox_scrollable_get(txt));211efl_ui_textbox_scrollable_set(txt, !efl_ui_textbox_scrollable_get(txt));212efl_text_cursor_object_text_insert(cur, "!!!");213
214ck_assert_str_eq(efl_text_get(txt),"HelloWorld!!!");215efl_del(txt);216efl_del(win);217}
218EFL_END_TEST
219
220EFL_START_TEST(text_change_event)221{
222Eo *txt;223Eo *win = win_add();224
225txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);226efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);227efl_gfx_entity_size_set(txt, EINA_SIZE2D(300, 300));228efl_text_set(txt, "Hello");229int i_changed = 0;230efl_event_callback_add(txt, EFL_UI_TEXTBOX_EVENT_CHANGED, increment_int_changed, &i_changed);231efl_gfx_entity_visible_set(txt, EINA_TRUE);232Evas *e = evas_object_evas_get(txt);233efl_ui_focus_util_focus(txt);234evas_event_feed_key_down(e, "s", "s", "s", "s", time(NULL), NULL);235ecore_main_loop_iterate();236ck_assert_str_eq(efl_text_get(txt),"Hellos");237ck_assert_int_eq(i_changed,1);238ecore_main_loop_iterate();239
240efl_del(txt);241efl_del(win);242}
243EFL_END_TEST
244
245EFL_START_TEST(text_keys_handler)246{
247Eo *txt;248Eo *win = win_add();249
250txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);251efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);252efl_gfx_entity_size_set(txt, EINA_SIZE2D(300, 300));253efl_text_set(txt, "Hello");254
255efl_gfx_entity_visible_set(txt, EINA_TRUE);256Evas *e = evas_object_evas_get(txt);257efl_ui_focus_util_focus(txt);258
259efl_text_cursor_object_move(efl_text_interactive_main_cursor_get(txt), EFL_TEXT_CURSOR_MOVE_TYPE_LAST);260evas_key_modifier_on(e, "Control");261evas_event_feed_key_down(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);262ecore_main_loop_iterate();263ck_assert_str_eq(efl_text_get(txt),"");264ck_assert_int_eq(efl_text_cursor_object_position_get(efl_text_interactive_main_cursor_get(txt)), 0);265evas_event_feed_key_up(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);266ecore_main_loop_iterate();267
268efl_text_set(txt, "Hello");269efl_text_cursor_object_position_set(efl_text_interactive_main_cursor_get(txt), 0);270evas_key_modifier_on(e, "Control");271evas_event_feed_key_down(e, "Delete", "Delete", "\177", "\177", time(NULL), NULL);272ecore_main_loop_iterate();273ck_assert_str_eq(efl_text_get(txt),"");274ck_assert_int_eq(efl_text_cursor_object_position_get(efl_text_interactive_main_cursor_get(txt)), 0);275evas_event_feed_key_up(e, "Delete", "Delete", "\177", "\177", time(NULL), NULL);276ecore_main_loop_iterate();277
278efl_del(txt);279efl_del(win);280}
281EFL_END_TEST
282
283EFL_START_TEST(text_editable)284{
285Eo *txt, *win;286win = win_add();287txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);288efl_text_font_size_set(txt, 100);289efl_text_font_family_set(txt, "Arial");290efl_text_interactive_editable_set(txt, !efl_text_interactive_editable_get(txt));291ck_assert_int_eq(efl_text_font_size_get(txt), 100);292ck_assert_str_eq(efl_text_font_family_get(txt), "Arial");293
294efl_ui_widget_disabled_set(txt, EINA_TRUE);295ck_assert_int_eq(efl_text_font_size_get(txt), 100);296ck_assert_str_eq(efl_text_font_family_get(txt), "Arial");297
298efl_del(txt);299efl_del(win);300}
301EFL_END_TEST
302
303EFL_START_TEST(text_on_startup)304{
305Eo *txt, *win;306win = win_add();307unsigned char r,g,b,a;308txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,309efl_text_color_set(efl_added, 0, 255, 0, 255),310efl_text_font_size_set(efl_added, 50),311efl_text_font_family_set(efl_added, "Arial"));312
313ck_assert_int_eq(efl_text_font_size_get(txt), 50);314ck_assert_str_eq(efl_text_font_family_get(txt), "Arial");315efl_text_color_get(txt, &r, &g, &b, &a);316ck_assert_int_eq(r, 0);317ck_assert_int_eq(g, 255);318ck_assert_int_eq(b, 0);319ck_assert_int_eq(a, 255);320
321efl_del(txt);322efl_del(win);323}
324EFL_END_TEST
325
326EFL_START_TEST(text_multiline_selection)327{
328Eo *txt, *win;329Eo *cursor1, *cursor2;330Eina_Rect rc1, rc2;331win = win_add();332txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);333efl_text_markup_set(txt, "p1<ps/>p2<ps/>p3");334efl_text_multiline_set(txt, EINA_FALSE);335ecore_main_loop_iterate();336efl_text_interactive_all_select(txt);337efl_text_interactive_selection_cursors_get(txt, &cursor1, &cursor2);338rc1 = efl_text_cursor_object_cursor_geometry_get(cursor1, EFL_TEXT_CURSOR_TYPE_BEFORE);339rc2 = efl_text_cursor_object_cursor_geometry_get(cursor2, EFL_TEXT_CURSOR_TYPE_BEFORE);340ck_assert_int_eq(rc1.y, rc2.y);341ck_assert_int_ne(rc1.x, rc2.x);342
343efl_del(txt);344efl_del(win);345}
346EFL_END_TEST
347
348EFL_START_TEST(text_singleline_cursor_movement)349{
350Eo *txt, *win;351Eo *cursor;352Eina_Rect rc1, rc2;353win = win_add();354txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);355efl_text_markup_set(txt, "p1<ps>p<b>2</b>2<ps>p3");356efl_text_multiline_set(txt, EINA_FALSE);357ecore_main_loop_iterate();358
359cursor = efl_text_interactive_main_cursor_get(txt);360efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);361ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 0);362rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);363
364efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);365ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 9);366rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);367ck_assert_int_eq(rc1.y, rc2.y);368ck_assert_int_ne(rc1.x, rc2.x);369
370efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);371ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 0);372rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);373
374efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);375ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 9);376rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);377ck_assert_int_eq(rc1.y, rc2.y);378ck_assert_int_ne(rc1.x, rc2.x);379
380efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT);381ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 9); //do not move382rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);383
384efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_PREVIOUS);385ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 9); //do not move386rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);387ck_assert_int_eq(rc1.y, rc2.y);388ck_assert_int_eq(rc1.x, rc2.x);389
390efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START);391ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 0);392rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);393
394efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END);395ck_assert_int_eq(efl_text_cursor_object_position_get(cursor), 9);396rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);397ck_assert_int_eq(rc1.y, rc2.y);398ck_assert_int_ne(rc1.x, rc2.x);399
400efl_del(txt);401efl_del(win);402}
403EFL_END_TEST
404
405EFL_START_TEST(text_multiline_singleline_cursor_pos)406{
407Eo *txt, *win;408Eo *cursor, *cursor1, *cursor2;409Eina_Rect rc1, rc2;410win = win_add();411txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);412efl_text_markup_set(txt, "p1<ps>p<b>2</b>2<ps>p3<ps>");413cursor = efl_text_interactive_main_cursor_get(txt);414cursor1 = efl_ui_textbox_cursor_create(txt);415efl_text_cursor_object_position_set(cursor1, 4);416cursor2 = efl_ui_textbox_cursor_create(txt);417efl_text_cursor_object_position_set(cursor2, 8);418
419efl_text_multiline_set(txt, EINA_FALSE);420ck_assert_uint_eq(efl_text_cursor_object_content_get(cursor1), '2');421ck_assert_uint_eq(efl_text_cursor_object_content_get(cursor2), '3');422
423efl_text_cursor_object_position_set(cursor, 0);424rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);425efl_text_multiline_set(txt, EINA_TRUE);426ck_assert_uint_eq(efl_text_cursor_object_content_get(cursor1), '2');427ck_assert_uint_eq(efl_text_cursor_object_content_get(cursor2), '3');428rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);429ck_assert_int_eq(rc1.y, rc2.y);430ck_assert_int_eq(rc1.x, rc2.x);431
432efl_text_multiline_set(txt, EINA_FALSE);433efl_text_cursor_object_position_set(cursor, 2);434rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);435efl_text_multiline_set(txt, EINA_TRUE);436rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);437ck_assert_int_eq(rc1.y, rc2.y);438ck_assert_int_eq(rc1.x, rc2.x);439efl_text_multiline_set(txt, EINA_FALSE);440rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);441ck_assert_int_eq(rc1.y, rc2.y);442ck_assert_int_eq(rc1.x, rc2.x);443
444efl_text_multiline_set(txt, EINA_FALSE);445efl_text_cursor_object_position_set(cursor, 3);446rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);447efl_text_multiline_set(txt, EINA_TRUE);448rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);449ck_assert_int_ne(rc1.y, rc2.y);450ck_assert_int_ne(rc1.x, rc2.x);451efl_text_multiline_set(txt, EINA_FALSE);452rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);453ck_assert_int_eq(rc1.y, rc2.y);454ck_assert_int_eq(rc1.x, rc2.x);455
456efl_text_multiline_set(txt, EINA_FALSE);457efl_text_cursor_object_position_set(cursor, 4);458rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);459efl_text_multiline_set(txt, EINA_TRUE);460rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);461ck_assert_int_ne(rc1.y, rc2.y);462ck_assert_int_ne(rc1.x, rc2.x);463efl_text_multiline_set(txt, EINA_FALSE);464rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);465ck_assert_int_eq(rc1.y, rc2.y);466ck_assert_int_eq(rc1.x, rc2.x);467
468efl_text_multiline_set(txt, EINA_FALSE);469efl_text_cursor_object_position_set(cursor, 10);470rc1 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);471efl_text_multiline_set(txt, EINA_TRUE);472rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);473ck_assert_int_ne(rc1.y, rc2.y);474ck_assert_int_ne(rc1.x, rc2.x);475efl_text_multiline_set(txt, EINA_FALSE);476rc2 = efl_text_cursor_object_cursor_geometry_get(cursor, EFL_TEXT_CURSOR_TYPE_BEFORE);477ck_assert_int_eq(rc1.y, rc2.y);478ck_assert_int_eq(rc1.x, rc2.x);479
480
481efl_del(txt);482efl_del(win);483}
484EFL_END_TEST
485
486/*
487EFL_START_TEST(text_keyboard_mouse_cluster_cursor_movement)
488{
489Eo *txt;
490Eo *cursor;
491Eo *win = win_add();
492Evas *e;
493Eina_Rect rc, rc2;
494
495txt = efl_add(EFL_UI_TEXTBOX_CLASS, win);
496
497efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 300));
498efl_gfx_entity_size_set(txt, EINA_SIZE2D(300, 300));
499efl_ui_textbox_scrollable_set(txt, EINA_TRUE);
500get_me_to_those_events(txt);
501
502efl_text_markup_set(txt, "A\u1100\u1161\u11AA");
503cursor = efl_text_interactive_main_cursor_get(txt);
504efl_text_cursor_object_position_set(cursor, 1);
505
506e = evas_object_evas_get(txt);
507efl_ui_focus_util_focus(txt);
508evas_event_feed_key_down(e, "Right", "Right", "Right", "Right", time(NULL), NULL);
509
510ck_assert_int_eq(4, efl_text_cursor_object_position_get(cursor));
511
512efl_text_cursor_object_position_set(cursor, 1);
513efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
514efl_text_cursor_object_move(cursor, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
515rc = efl_text_cursor_object_content_geometry_get(cursor);
516rc2 = efl_ui_scrollable_viewport_geometry_get(txt);
517
518efl_text_cursor_object_position_set(cursor, 0);
519click_object_at(win, rc2.x + rc.x + (rc.w/2), rc2.y + rc.y + (rc.h/2));
520
521ck_assert_int_eq(4, efl_text_cursor_object_position_get(cursor));
522
523efl_del(txt);
524efl_del(win);
525}
526EFL_END_TEST
527*/
528
529void efl_ui_test_text(TCase *tc)530{
531tcase_add_test(tc, text_cnp);532tcase_add_test(tc, text_all_select_all_unselect);533tcase_add_test(tc, text_selection);534tcase_add_test(tc, text_user_change);535tcase_add_test(tc, text_scroll_mode);536tcase_add_test(tc, text_change_event);537tcase_add_test(tc, text_keys_handler);538tcase_add_test(tc, text_editable);539tcase_add_test(tc, text_multiline_selection);540tcase_add_test(tc, text_singleline_cursor_movement);541tcase_add_test(tc, text_multiline_singleline_cursor_pos);542tcase_add_test(tc, text_on_startup);543// works on some systemd and not others - is suepct font or harfbuzz system
544// dependency issue... for now - disable.
545// tcase_add_test(tc, text_keyboard_mouse_cluster_cursor_movement);
546}
547