diff options
Diffstat (limited to 'src/tests/elementary/elm_test_entry.c')
-rw-r--r-- | src/tests/elementary/elm_test_entry.c | 190 |
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); } |