efl
700 строк · 20.8 Кб
1#ifdef HAVE_CONFIG_H
2# include "elementary_config.h"
3#endif
4
5#define EFL_ACCESS_OBJECT_BETA
6#define EFL_ACCESS_TEXT_BETA
7#define EFL_ACCESS_TEXT_PROTECTED
8#include <Elementary.h>
9#include "elm_suite.h"
10
11EFL_START_TEST(elm_entry_legacy_type_check)
12{
13Evas_Object *win, *entry;
14const char *type;
15
16win = win_add(NULL, "entry", ELM_WIN_BASIC);
17
18entry = elm_entry_add(win);
19
20type = elm_object_widget_type_get(entry);
21ck_assert(type != NULL);
22ck_assert(!strcmp(type, "Elm_Entry"));
23
24type = evas_object_type_get(entry);
25ck_assert(type != NULL);
26ck_assert(!strcmp(type, "elm_entry"));
27
28}
29EFL_END_TEST
30
31EFL_START_TEST(elm_entry_del)
32{
33Evas_Object *win, *entry;
34
35win = win_add(NULL, "entry", ELM_WIN_BASIC);
36
37entry = elm_entry_add(win);
38elm_object_text_set(entry, "TEST");
39
40}
41EFL_END_TEST
42
43void
44_dummy_cb(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
45const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
46{
47}
48
49EFL_START_TEST(elm_entry_signal_callback)
50{
51Evas_Object *win, *entry;
52void *data;
53int k;
54
55win = win_add(NULL, "entry", ELM_WIN_BASIC);
56
57entry = elm_entry_add(win);
58
59for (k = 1; k < 10; k++)
60{
61int *val = malloc(sizeof(int));
62*val = 42 * k;
63elm_layout_signal_callback_add(entry, "sig", "src", _dummy_cb, val);
64}
65
66data = elm_layout_signal_callback_del(entry, "notsig", "notsrc", _dummy_cb);
67fail_if(data);
68
69// this test verifies that the legacy wrapper returns the proper data
70// the eo API requires the data as input to "del()"
71for (k = 1; k < 10; k++)
72{
73int *val;
74data = elm_layout_signal_callback_del(entry, "sig", "src", _dummy_cb);
75fail_if(!data);
76val = (int *)data;
77ck_assert_int_ne(*val, 0);
78ck_assert_int_eq((*val) % 42, 0);
79free(data);
80}
81
82data = elm_layout_signal_callback_del(entry, "sig", "src", _dummy_cb);
83fail_if(data);
84
85}
86EFL_END_TEST
87
88EFL_START_TEST(elm_entry_atspi_text_char_get)
89{
90Evas_Object *win, *entry;
91Eina_Unicode *expected;
92Eina_Unicode val;
93
94const char *txt = "ĄA11Y Ł TEST";
95const char *mtxt = "<b>ĄA11Y</b> <title>Ł</> TEST";
96
97win = win_add(NULL, "entry", ELM_WIN_BASIC);
98
99entry = elm_entry_add(win);
100elm_object_text_set(entry, mtxt);
101
102expected = eina_unicode_utf8_to_unicode(txt, NULL);
103
104val = efl_access_text_character_get(entry, -1);
105ck_assert(val == 0);
106
107val = efl_access_text_character_get(entry, 0);
108ck_assert(val == expected[0]);
109
110val = efl_access_text_character_get(entry, 1);
111ck_assert(val == expected[1]);
112
113val = efl_access_text_character_get(entry, 2);
114ck_assert(val == expected[2]);
115
116val = efl_access_text_character_get(entry, 6);
117ck_assert(val == expected[6]);
118
119val = efl_access_text_character_get(entry, 26);
120ck_assert(val == 0);
121
122free(expected);
123}
124EFL_END_TEST
125
126EFL_START_TEST(elm_entry_atspi_text_char_count)
127{
128Evas_Object *win, *entry;
129int val;
130
131const char *mtxt = "<b>AĄ11Y</b> <title>Ł</> TEST";
132
133win = win_add(NULL, "entry", ELM_WIN_BASIC);
134
135entry = elm_entry_add(win);
136elm_object_text_set(entry, mtxt);
137
138val = efl_access_text_character_count_get(entry);
139ck_assert(val == 12);
140
141}
142EFL_END_TEST
143
144EFL_START_TEST(elm_entry_atspi_text_string_get_char)
145{
146Evas_Object *win, *entry;
147char *val;
148int start, end;
149
150const char *txt = "Lorem ipśum dolor sit amęt";
151
152win = win_add(NULL, "entry", ELM_WIN_BASIC);
153
154entry = elm_entry_add(win);
155elm_object_text_set(entry, txt);
156
157start = 1;
158efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
159ck_assert_str_eq(val, "o");
160ck_assert(start == 1);
161ck_assert(end == 2);
162if (val) free(val);
163
164start = 8;
165efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
166ck_assert_str_eq(val, "ś");
167ck_assert(start == 8);
168ck_assert(end == 9);
169if (val) free(val);
170
171start = 11;
172efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
173ck_assert_str_eq(val, " ");
174ck_assert(start == 11);
175ck_assert(end == 12);
176if (val) free(val);
177
178start = 111;
179efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
180ck_assert(start == -1);
181ck_assert(end == -1);
182ck_assert(val == NULL);
183
184}
185EFL_END_TEST
186
187EFL_START_TEST(elm_entry_atspi_text_string_get_word)
188{
189Evas_Object *win, *entry;
190char *val;
191int start, end;
192
193const char *txt = "Lorem ipśum dolor sit amęt";
194
195win = win_add(NULL, "entry", ELM_WIN_BASIC);
196
197entry = elm_entry_add(win);
198elm_object_text_set(entry, txt);
199
200start = 1;
201efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
202ck_assert_str_eq(val, "Lorem");
203ck_assert(start == 0);
204ck_assert(end == 5);
205if (val) free(val);
206
207start = 6;
208efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
209ck_assert_str_eq(val, "ipśum");
210ck_assert(start == 6);
211ck_assert(end == 11);
212if (val) free(val);
213
214start = 19;
215efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
216ck_assert_str_eq(val, "dolor");
217ck_assert(start == 14);
218ck_assert(end == 19);
219if (val) free(val);
220
221start = 111;
222efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
223ck_assert(start == -1);
224ck_assert(end == -1);
225ck_assert(val == NULL);
226if (val) free(val);
227
228}
229EFL_END_TEST
230
231EFL_START_TEST(elm_entry_atspi_text_string_get_paragraph)
232{
233Evas_Object *win, *entry;
234char *val;
235int start, end;
236
237const char *txt = "Lorem ipśum<br> dolor sit<br> amęt";
238
239win = win_add(NULL, "entry", ELM_WIN_BASIC);
240
241entry = elm_entry_add(win);
242elm_object_text_set(entry, txt);
243
244start = 1;
245efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
246ck_assert_str_eq(val, "Lorem ipśum");
247ck_assert(start == 0);
248ck_assert(end == 11);
249if (val) free(val);
250
251start = 20;
252efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
253ck_assert_str_eq(val, " dolor sit");
254ck_assert(start == 12);
255ck_assert(end == 24);
256if (val) free(val);
257
258start = 25;
259efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
260ck_assert_str_eq(val, " amęt");
261ck_assert(start == 25);
262ck_assert(end == 30);
263if (val) free(val);
264
265start = 111;
266efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
267ck_assert(start == -1);
268ck_assert(end == -1);
269ck_assert(val == NULL);
270if (val) free(val);
271
272}
273EFL_END_TEST
274
275EFL_START_TEST(elm_entry_atspi_text_string_get_line)
276{
277Evas_Object *win, *entry;
278char *val;
279int start, end;
280
281const char *txt = "Lorem ipśum<br> dolor sit amęt";
282
283win = win_add(NULL, "entry", ELM_WIN_BASIC);
284
285entry = elm_entry_add(win);
286evas_object_resize(entry, 500, 500);
287
288elm_object_text_set(entry, txt);
289
290start = 1;
291efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end, &val);
292
293ck_assert_str_eq(val, "Lorem ipśum");
294ck_assert(start == 0);
295ck_assert(end == 11);
296if (val) free(val);
297
298start = 13;
299efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end, &val);
300ck_assert_str_eq(val, " dolor sit amęt");
301ck_assert(start == 12);
302ck_assert(end == 29);
303if (val) free(val);
304
305}
306EFL_END_TEST
307
308EFL_START_TEST(elm_entry_atspi_text_text_get)
309{
310Evas_Object *win, *entry;
311char *val;
312const char *txt = "Lorem Xpśum dolor sit amęt";
313
314win = win_add(NULL, "entry", ELM_WIN_BASIC);
315
316entry = elm_entry_add(win);
317elm_object_text_set(entry, txt);
318
319// invalid ranges
320val = efl_access_text_get(entry, 6, 100);
321ck_assert(val == NULL);
322val = efl_access_text_get(entry, -6, 10);
323ck_assert(val == NULL);
324val = efl_access_text_get(entry, -6, -10);
325ck_assert(val == NULL);
326val = efl_access_text_get(entry, 60, 100);
327ck_assert(val == NULL);
328
329// proper range
330val = efl_access_text_get(entry, 6, 17);
331ck_assert_str_eq(val, "Xpśum dolor");
332
333if (val) free(val);
334}
335EFL_END_TEST
336
337EFL_START_TEST(elm_entry_atspi_text_selections)
338{
339Evas_Object *win, *entry;
340int val, start, end;
341const char *str;
342Eina_Bool ret;
343const char *txt = "Lorem ipśum<br> dolor sit\n amęt";
344
345win = win_add(NULL, "entry", ELM_WIN_BASIC);
346
347entry = elm_entry_add(win);
348elm_object_text_set(entry, txt);
349
350val = efl_access_text_selections_count_get(entry);
351ck_assert(val == 0);
352
353elm_entry_select_region_set(entry, 2, 4);
354val = efl_access_text_selections_count_get(entry);
355ck_assert(val == 1);
356efl_access_text_access_selection_get(entry, 0, &start, &end);
357ck_assert(start == 2);
358ck_assert(end == 4);
359
360elm_entry_select_region_set(entry, 6, 10);
361val = efl_access_text_selections_count_get(entry);
362ck_assert(val == 1);
363efl_access_text_access_selection_get(entry, 0, &start, &end);
364ck_assert(start == 6);
365ck_assert(end == 10);
366
367elm_entry_select_none(entry);
368ret = efl_access_text_selection_add(entry, 2, 5);
369ck_assert(ret == EINA_TRUE);
370str = elm_entry_selection_get(entry);
371ck_assert_str_eq(str, "rem");
372
373ret = efl_access_text_selection_remove(entry, 0);
374ck_assert(ret == EINA_TRUE);
375str = elm_entry_selection_get(entry);
376ck_assert(str == NULL);
377
378}
379EFL_END_TEST
380
381EFL_START_TEST(elm_atspi_role_get)
382{
383Evas_Object *win, *entry;
384Efl_Access_Role role;
385
386win = win_add(NULL, "entry", ELM_WIN_BASIC);
387
388entry = elm_entry_add(win);
389role = efl_access_object_role_get(entry);
390
391ck_assert(role == EFL_ACCESS_ROLE_ENTRY);
392
393}
394EFL_END_TEST
395
396static Eina_Bool
397end_test()
398{
399ecore_main_loop_quit();
400return EINA_FALSE;
401}
402
403EFL_START_TEST(elm_entry_magnifier)
404{
405Evas_Object *win, *entry;
406Evas *e;
407char buf[4096];
408
409win = win_add_focused(NULL, "entry", ELM_WIN_BASIC);
410e = evas_object_evas_get(win);
411evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
412
413entry = elm_entry_add(win);
414elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
415snprintf(buf, sizeof(buf),
416"This is an entry widget in this window that<br/>"
417"uses markup <b>like this</> for styling and<br/>"
418"formatting <em>like this</>, as well as<br/>"
419"<a href=X><link>links in the text</></a>, so enter text<br/>"
420"in here to edit it. By the way, links are<br/>"
421"called <a href=anc-02>Anchors</a> so you will need<br/>"
422"to refer to them this way.<br/>"
423"<br/>"
424
425"Also you can stick in items with (relsize + ascent): "
426"<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
427" (full) "
428"<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
429" (to the left)<br/>"
430
431"Also (size + ascent): "
432"<item size=16x16 vsize=ascent href=emoticon/haha></item>"
433" (full) "
434"<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
435" (before this)<br/>"
436
437"And as well (absize + ascent): "
438"<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
439" (full) "
440"<item absize=64x64 vsize=full href=emoticon/not-impressed></item>"
441" or even paths to image files on disk too like: "
442"<item absize=96x128 vsize=full href=file://%s/images/sky_01.jpg></item>"
443" ... end."
444, elm_app_data_dir_get()
445);
446elm_object_text_set(entry, buf);
447evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
448evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
449evas_object_show(entry);
450elm_win_resize_object_add(win, entry);
451evas_object_show(win);
452evas_object_resize(entry, 600, 400);
453evas_object_resize(win, 600, 400);
454get_me_to_those_events(e);
455
456evas_event_feed_mouse_out(e, 0, NULL);
457evas_event_feed_mouse_in(e, 0, NULL);
458evas_event_feed_mouse_move(e, 200, 100, 0, NULL);
459evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
460real_timer_add(elm_config_longpress_timeout_get() + 0.1, end_test, NULL);
461}
462EFL_END_TEST
463
464EFL_START_TEST(elm_entry_text_set)
465{
466Evas_Object *win, *entry;
467const char *entry_text = "hello world";
468const char *entry_text2 = "scrollable";
469
470win = win_add(NULL, "entry", ELM_WIN_BASIC);
471
472entry = elm_entry_add(win);
473
474ck_assert(elm_layout_text_set(entry, NULL, entry_text));
475ck_assert_str_eq(elm_object_text_get(entry), entry_text);
476
477elm_entry_scrollable_set(entry, EINA_TRUE);
478ck_assert(elm_layout_text_set(entry, NULL, entry_text2));
479ck_assert_str_eq(elm_object_text_get(entry), entry_text2);
480}
481EFL_END_TEST
482
483EFL_START_TEST(elm_entry_guide_text_set)
484{
485Evas_Object *win, *entry;
486const char *markup_text = "<font_size=32 color=#FFF>markup_test</font_size>";
487const char *markup_text2 = "<font_size=24 color=#FFF>test_markup</font_size>";
488
489win = win_add(NULL, "entry", ELM_WIN_BASIC);
490
491entry = elm_entry_add(win);
492
493elm_object_part_text_set(entry, "elm.guide", markup_text);
494elm_entry_editable_set(entry, EINA_FALSE);
495ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text);
496
497elm_object_part_text_set(entry, "elm.guide", markup_text2);
498elm_entry_single_line_set(entry, EINA_FALSE);
499ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text2);
500}
501EFL_END_TEST
502
503EFL_START_TEST(elm_entry_file_get_set)
504{
505Evas_Object *win, *entry;
506const char *file_path = NULL;
507Elm_Text_Format format = ELM_TEXT_FORMAT_PLAIN_UTF8;
508
509win = win_add(NULL, "entry", ELM_WIN_BASIC);
510entry = elm_entry_add(win);
511
512ck_assert(elm_entry_file_set(entry, TESTS_SRC_DIR"/testfile_entry.txt", ELM_TEXT_FORMAT_PLAIN_UTF8));
513elm_entry_file_get(entry, &file_path, &format);
514fprintf(stderr, "elm_entry_file_get_set1 %s, %s, %d\n", elm_object_text_get(entry), file_path, format);
515
516ck_assert_str_eq(elm_object_text_get(entry), "hello world<br/>");
517ck_assert_str_eq(file_path, TESTS_SRC_DIR"/testfile_entry.txt");
518ck_assert(format == ELM_TEXT_FORMAT_PLAIN_UTF8);
519
520ck_assert(elm_entry_file_set(entry, TESTS_SRC_DIR"/testfile_entry2.txt", ELM_TEXT_FORMAT_PLAIN_UTF8));
521elm_entry_file_get(entry, &file_path, &format);
522fprintf(stderr, "elm_entry_file_get_set2 %s, %s, %d\n", elm_object_text_get(entry), file_path, format);
523
524ck_assert_str_eq(elm_object_text_get(entry), "hello elementary<br/>hello entry<br/>");
525ck_assert_str_eq(file_path, TESTS_SRC_DIR"/testfile_entry2.txt");
526ck_assert(format == ELM_TEXT_FORMAT_PLAIN_UTF8);
527
528ck_assert(elm_entry_file_set(entry, NULL, ELM_TEXT_FORMAT_PLAIN_UTF8));
529elm_entry_file_get(entry, &file_path, &format);
530fprintf(stderr, "elm_entry_file_get_set3 %s, %s, %d\n", elm_object_text_get(entry), file_path, format);
531
532ck_assert_str_eq(elm_object_text_get(entry), "");
533ck_assert(file_path == NULL);
534ck_assert(format == ELM_TEXT_FORMAT_PLAIN_UTF8);
535
536fprintf(stderr, "elm_entry_file_get_set4\n");
537
538}
539EFL_END_TEST
540
541EFL_START_TEST(elm_entry_test_text_class)
542{
543Evas_Object *win, *entry1, *entry2, *entry3, *entry4;
544const char *filename = NULL;
545int w1 = 0, h1 = 0, w2 = 0, h2 = 0, w3 = 0, h3 = 0;
546const char *font;
547int font_size;
548
549win = win_add(NULL, "entry", ELM_WIN_BASIC);
550entry1 = elm_entry_add(win);
551entry2 = elm_entry_add(win);
552entry3 = elm_entry_add(win);
553
554elm_object_text_set(entry1, "hello");
555elm_object_text_set(entry2, "hello");
556elm_object_text_set(entry3, "hello");
557
558edje_object_file_get(elm_layout_edje_get(entry1), &filename, NULL);
559ck_assert(filename != NULL);
560
561ck_assert(edje_file_text_class_set(filename, "entry_text", "Serif:Style=Bold", 24));
562
563ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry1), "entry_text", &font, &font_size));
564ck_assert_int_eq(font_size, 24);
565ck_assert_str_eq(font, "Serif:Style=Bold");
566ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry2), "entry_text", &font, &font_size));
567ck_assert_int_eq(font_size, 24);
568ck_assert_str_eq(font, "Serif:Style=Bold");
569ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry3), "entry_text", &font, &font_size));
570ck_assert_int_eq(font_size, 24);
571ck_assert_str_eq(font, "Serif:Style=Bold");
572
573evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry1), &w1, &h1);
574evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry2), &w2, &h2);
575evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry3), &w3, &h3);
576
577ck_assert_int_eq(w1, w2);
578ck_assert_int_eq(h1, h2);
579ck_assert_int_eq(w2, w3);
580ck_assert_int_eq(h2, h3);
581
582ck_assert(edje_object_text_class_set(elm_layout_edje_get(entry1), "entry_text", "Sans", 50));
583ck_assert(edje_object_text_class_set(elm_layout_edje_get(entry2), "entry_text", "Serif", 20));
584
585ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry1), "entry_text", &font, &font_size));
586ck_assert_int_eq(font_size, 50);
587ck_assert_str_eq(font, "Sans");
588ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry2), "entry_text", &font, &font_size));
589ck_assert_int_eq(font_size, 20);
590ck_assert_str_eq(font, "Serif");
591ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry3), "entry_text", &font, &font_size));
592ck_assert_int_eq(font_size, 24);
593ck_assert_str_eq(font, "Serif:Style=Bold");
594
595evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry1), &w1, &h1);
596evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry2), &w2, &h2);
597evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry3), &w3, &h3);
598
599ck_assert_int_ne(w1, w2);
600ck_assert_int_ne(h1, h2);
601ck_assert_int_ne(w2, w3);
602ck_assert_int_ne(h2, h3);
603
604entry4 = elm_entry_add(win);
605
606elm_object_text_set(entry4, "hello");
607ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry4), "entry_text", &font, &font_size));
608ck_assert_int_eq(font_size, 24);
609ck_assert_str_eq(font, "Serif:Style=Bold");
610}
611EFL_END_TEST
612
613EFL_START_TEST(elm_entry_test_burmese)
614{
615Evas_Object *win, *textblock;
616Evas_Textblock_Style *style;
617int w;
618
619win = win_add(NULL, "entry", ELM_WIN_BASIC);
620textblock = evas_object_textblock_add(win);
621
622style = evas_textblock_style_new();
623evas_textblock_style_set(style, "DEFAULT='font=arial font_size=20 color=red'");
624evas_object_textblock_style_set(textblock, style);
625evas_textblock_style_free(style);
626style = NULL;
627
628evas_object_textblock_text_markup_set(textblock, "\u1006\u200C\u1031\u200C\u1031\u200C\u1031");
629evas_object_textblock_size_native_get(textblock, &w, NULL);
630ck_assert_int_ne(w, 0);
631}
632EFL_END_TEST
633
634EFL_START_TEST(elm_entry_keycode)
635{
636Evas_Object *win, *entry;
637
638win = win_add(NULL, "entry", ELM_WIN_BASIC);
639entry = elm_entry_add(win);
640evas_object_show(entry);
641
642elm_entry_entry_set(entry, "Hello World");
643Evas *e = evas_object_evas_get(entry);
644elm_object_focus_set(entry, EINA_TRUE);
645evas_key_modifier_on(e, "Control");
646evas_event_feed_key_down_with_keycode(e, "", "a", "", "", time(NULL), NULL, 38);
647ecore_main_loop_iterate();
648evas_event_feed_key_down(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);
649ck_assert_str_eq(elm_object_text_get(entry), "");
650
651evas_object_del(entry);
652evas_object_del(win);
653}
654EFL_END_TEST
655
656EFL_START_TEST(elm_entry_textnodes_with_no_format)
657{
658Evas_Object *win, *entry;
659
660win = win_add(NULL, "entry", ELM_WIN_BASIC);
661entry = elm_entry_add(win);
662evas_object_show(entry);
663
664elm_entry_entry_set(entry, "<br/><br/>");
665Evas_Object *tb = elm_entry_textblock_get(entry);
666Evas_Textblock_Cursor *c1 = evas_object_textblock_cursor_new(tb);
667Evas_Textblock_Cursor *c2 = evas_object_textblock_cursor_new(tb);
668evas_textblock_cursor_char_next(c2);
669evas_textblock_cursor_range_delete(c1, c2);
670elm_entry_cursor_pos_set(entry, 0);
671ck_assert(elm_entry_cursor_down(entry));
672
673evas_object_del(entry);
674evas_object_del(win);
675}
676EFL_END_TEST
677
678void elm_test_entry(TCase *tc)
679{
680tcase_add_test(tc, elm_entry_legacy_type_check);
681tcase_add_test(tc, elm_entry_del);
682tcase_add_test(tc, elm_entry_signal_callback);
683tcase_add_test(tc, elm_entry_atspi_text_char_get);
684tcase_add_test(tc, elm_entry_atspi_text_char_count);
685tcase_add_test(tc, elm_entry_atspi_text_string_get_char);
686tcase_add_test(tc, elm_entry_atspi_text_string_get_word);
687tcase_add_test(tc, elm_entry_atspi_text_string_get_paragraph);
688tcase_add_test(tc, elm_entry_atspi_text_string_get_line);
689tcase_add_test(tc, elm_entry_atspi_text_text_get);
690tcase_add_test(tc, elm_entry_atspi_text_selections);
691tcase_add_test(tc, elm_atspi_role_get);
692tcase_add_test(tc, elm_entry_text_set);
693tcase_add_test(tc, elm_entry_guide_text_set);
694tcase_add_test(tc, elm_entry_magnifier);
695tcase_add_test(tc, elm_entry_file_get_set);
696tcase_add_test(tc, elm_entry_test_text_class);
697tcase_add_test(tc, elm_entry_test_burmese);
698tcase_add_test(tc, elm_entry_keycode);
699tcase_add_test(tc, elm_entry_textnodes_with_no_format);
700}
701