summaryrefslogtreecommitdiff
path: root/src/tests/elementary/elm_test_entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/elementary/elm_test_entry.c')
-rw-r--r--src/tests/elementary/elm_test_entry.c190
1 files changed, 176 insertions, 14 deletions
diff --git a/src/tests/elementary/elm_test_entry.c b/src/tests/elementary/elm_test_entry.c
index 1b383b2936..85ada68a49 100644
--- a/src/tests/elementary/elm_test_entry.c
+++ b/src/tests/elementary/elm_test_entry.c
@@ -155,28 +155,28 @@ EFL_START_TEST(elm_entry_atspi_text_string_get_char)
elm_object_text_set(entry, txt);
start = 1;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
ck_assert_str_eq(val, "o");
ck_assert(start == 1);
ck_assert(end == 2);
if (val) free(val);
start = 8;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
ck_assert_str_eq(val, "ś");
ck_assert(start == 8);
ck_assert(end == 9);
if (val) free(val);
start = 11;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
ck_assert_str_eq(val, " ");
ck_assert(start == 11);
ck_assert(end == 12);
if (val) free(val);
start = 111;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
ck_assert(start == -1);
ck_assert(end == -1);
ck_assert(val == NULL);
@@ -198,28 +198,28 @@ EFL_START_TEST(elm_entry_atspi_text_string_get_word)
elm_object_text_set(entry, txt);
start = 1;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
ck_assert_str_eq(val, "Lorem");
ck_assert(start == 0);
ck_assert(end == 5);
if (val) free(val);
start = 6;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
ck_assert_str_eq(val, "ipśum");
ck_assert(start == 6);
ck_assert(end == 11);
if (val) free(val);
start = 19;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
ck_assert_str_eq(val, "dolor");
ck_assert(start == 14);
ck_assert(end == 19);
if (val) free(val);
start = 111;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
ck_assert(start == -1);
ck_assert(end == -1);
ck_assert(val == NULL);
@@ -242,28 +242,28 @@ EFL_START_TEST(elm_entry_atspi_text_string_get_paragraph)
elm_object_text_set(entry, txt);
start = 1;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
ck_assert_str_eq(val, "Lorem ipśum");
ck_assert(start == 0);
ck_assert(end == 11);
if (val) free(val);
start = 20;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
ck_assert_str_eq(val, " dolor sit");
ck_assert(start == 12);
ck_assert(end == 24);
if (val) free(val);
start = 25;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
ck_assert_str_eq(val, " amęt");
ck_assert(start == 25);
ck_assert(end == 30);
if (val) free(val);
start = 111;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
ck_assert(start == -1);
ck_assert(end == -1);
ck_assert(val == NULL);
@@ -288,7 +288,7 @@ EFL_START_TEST(elm_entry_atspi_text_string_get_line)
elm_object_text_set(entry, txt);
start = 1;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end, &val);
ck_assert_str_eq(val, "Lorem ipśum");
ck_assert(start == 0);
@@ -296,7 +296,7 @@ EFL_START_TEST(elm_entry_atspi_text_string_get_line)
if (val) free(val);
start = 13;
- val = efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end);
+ efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end, &val);
ck_assert_str_eq(val, " dolor sit amęt");
ck_assert(start == 12);
ck_assert(end == 29);
@@ -480,6 +480,26 @@ EFL_START_TEST(elm_entry_text_set)
}
EFL_END_TEST
+EFL_START_TEST(elm_entry_guide_text_set)
+{
+ Evas_Object *win, *entry;
+ const char *markup_text = "<font_size=32 color=#FFF>markup_test</font_size>";
+ const char *markup_text2 = "<font_size=24 color=#FFF>test_markup</font_size>";
+
+ win = win_add(NULL, "entry", ELM_WIN_BASIC);
+
+ entry = elm_entry_add(win);
+
+ elm_object_part_text_set(entry, "elm.guide", markup_text);
+ elm_entry_editable_set(entry, EINA_FALSE);
+ ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text);
+
+ elm_object_part_text_set(entry, "elm.guide", markup_text2);
+ elm_entry_single_line_set(entry, EINA_FALSE);
+ ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text2);
+}
+EFL_END_TEST
+
EFL_START_TEST(elm_entry_file_get_set)
{
Evas_Object *win, *entry;
@@ -518,6 +538,143 @@ EFL_START_TEST(elm_entry_file_get_set)
}
EFL_END_TEST
+EFL_START_TEST(elm_entry_test_text_class)
+{
+ Evas_Object *win, *entry1, *entry2, *entry3, *entry4;
+ const char *filename = NULL;
+ int w1 = 0, h1 = 0, w2 = 0, h2 = 0, w3 = 0, h3 = 0;
+ const char *font;
+ int font_size;
+
+ win = win_add(NULL, "entry", ELM_WIN_BASIC);
+ entry1 = elm_entry_add(win);
+ entry2 = elm_entry_add(win);
+ entry3 = elm_entry_add(win);
+
+ elm_object_text_set(entry1, "hello");
+ elm_object_text_set(entry2, "hello");
+ elm_object_text_set(entry3, "hello");
+
+ edje_object_file_get(elm_layout_edje_get(entry1), &filename, NULL);
+ ck_assert(filename != NULL);
+
+ ck_assert(edje_file_text_class_set(filename, "entry_text", "Serif:Style=Bold", 24));
+
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry1), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 24);
+ ck_assert_str_eq(font, "Serif:Style=Bold");
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry2), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 24);
+ ck_assert_str_eq(font, "Serif:Style=Bold");
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry3), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 24);
+ ck_assert_str_eq(font, "Serif:Style=Bold");
+
+ evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry1), &w1, &h1);
+ evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry2), &w2, &h2);
+ evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry3), &w3, &h3);
+
+ ck_assert_int_eq(w1, w2);
+ ck_assert_int_eq(h1, h2);
+ ck_assert_int_eq(w2, w3);
+ ck_assert_int_eq(h2, h3);
+
+ ck_assert(edje_object_text_class_set(elm_layout_edje_get(entry1), "entry_text", "Sans", 50));
+ ck_assert(edje_object_text_class_set(elm_layout_edje_get(entry2), "entry_text", "Serif", 20));
+
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry1), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 50);
+ ck_assert_str_eq(font, "Sans");
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry2), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 20);
+ ck_assert_str_eq(font, "Serif");
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry3), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 24);
+ ck_assert_str_eq(font, "Serif:Style=Bold");
+
+ evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry1), &w1, &h1);
+ evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry2), &w2, &h2);
+ evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry3), &w3, &h3);
+
+ ck_assert_int_ne(w1, w2);
+ ck_assert_int_ne(h1, h2);
+ ck_assert_int_ne(w2, w3);
+ ck_assert_int_ne(h2, h3);
+
+ entry4 = elm_entry_add(win);
+
+ elm_object_text_set(entry4, "hello");
+ ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry4), "entry_text", &font, &font_size));
+ ck_assert_int_eq(font_size, 24);
+ ck_assert_str_eq(font, "Serif:Style=Bold");
+}
+EFL_END_TEST
+
+EFL_START_TEST(elm_entry_test_burmese)
+{
+ Evas_Object *win, *textblock;
+ Evas_Textblock_Style *style;
+ int w;
+
+ win = win_add(NULL, "entry", ELM_WIN_BASIC);
+ textblock = evas_object_textblock_add(win);
+
+ style = evas_textblock_style_new();
+ evas_textblock_style_set(style, "DEFAULT='font=arial font_size=20 color=red'");
+ evas_object_textblock_style_set(textblock, style);
+ evas_textblock_style_free(style);
+ style = NULL;
+
+ evas_object_textblock_text_markup_set(textblock, "\u1006\u200C\u1031\u200C\u1031\u200C\u1031");
+ evas_object_textblock_size_native_get(textblock, &w, NULL);
+ ck_assert_int_ne(w, 0);
+}
+EFL_END_TEST
+
+EFL_START_TEST(elm_entry_keycode)
+{
+ Evas_Object *win, *entry;
+
+ win = win_add(NULL, "entry", ELM_WIN_BASIC);
+ entry = elm_entry_add(win);
+ evas_object_show(entry);
+
+ elm_entry_entry_set(entry, "Hello World");
+ Evas *e = evas_object_evas_get(entry);
+ elm_object_focus_set(entry, EINA_TRUE);
+ evas_key_modifier_on(e, "Control");
+ evas_event_feed_key_down_with_keycode(e, "", "a", "", "", time(NULL), NULL, 38);
+ ecore_main_loop_iterate();
+ evas_event_feed_key_down(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);
+ ck_assert_str_eq(elm_object_text_get(entry), "");
+
+ evas_object_del(entry);
+ evas_object_del(win);
+}
+EFL_END_TEST
+
+EFL_START_TEST(elm_entry_textnodes_with_no_format)
+{
+ Evas_Object *win, *entry;
+
+ win = win_add(NULL, "entry", ELM_WIN_BASIC);
+ entry = elm_entry_add(win);
+ evas_object_show(entry);
+
+ elm_entry_entry_set(entry, "<br/><br/>");
+ Evas_Object *tb = elm_entry_textblock_get(entry);
+ Evas_Textblock_Cursor *c1 = evas_object_textblock_cursor_new(tb);
+ Evas_Textblock_Cursor *c2 = evas_object_textblock_cursor_new(tb);
+ evas_textblock_cursor_char_next(c2);
+ evas_textblock_cursor_range_delete(c1, c2);
+ elm_entry_cursor_pos_set(entry, 0);
+ ck_assert(elm_entry_cursor_down(entry));
+
+ evas_object_del(entry);
+ evas_object_del(win);
+}
+EFL_END_TEST
+
void elm_test_entry(TCase *tc)
{
tcase_add_test(tc, elm_entry_legacy_type_check);
@@ -533,6 +690,11 @@ void elm_test_entry(TCase *tc)
tcase_add_test(tc, elm_entry_atspi_text_selections);
tcase_add_test(tc, elm_atspi_role_get);
tcase_add_test(tc, elm_entry_text_set);
+ tcase_add_test(tc, elm_entry_guide_text_set);
tcase_add_test(tc, elm_entry_magnifier);
tcase_add_test(tc, elm_entry_file_get_set);
+ tcase_add_test(tc, elm_entry_test_text_class);
+ tcase_add_test(tc, elm_entry_test_burmese);
+ tcase_add_test(tc, elm_entry_keycode);
+ tcase_add_test(tc, elm_entry_textnodes_with_no_format);
}