diff --git a/legacy/evas/src/tests/evas_test_textblock.c b/legacy/evas/src/tests/evas_test_textblock.c index 86d8daa055..0cf74ff550 100644 --- a/legacy/evas/src/tests/evas_test_textblock.c +++ b/legacy/evas/src/tests/evas_test_textblock.c @@ -388,26 +388,71 @@ START_TEST(evas_textblock_cursor) fail_if(evas_textblock_cursor_compare(cur, main_cur)); /* Try positions beyond the left/right limits of lines. */ - evas_textblock_cursor_line_set(cur, 0); - evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); - evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); - fail_if(evas_textblock_cursor_compare(main_cur, cur)); + for (i = 0 ; i < 2 ; i++) + { + evas_textblock_cursor_line_set(cur, i); + evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); + evas_textblock_cursor_pos_set(main_cur, 5); + evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); - evas_textblock_cursor_line_char_last(cur); - evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); - evas_textblock_cursor_char_coord_set(main_cur, x + 50, y); - fail_if(evas_textblock_cursor_compare(main_cur, cur)); + evas_textblock_cursor_line_char_last(cur); + evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); + evas_textblock_cursor_pos_set(main_cur, 5); + evas_textblock_cursor_char_coord_set(main_cur, x + 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + } - evas_textblock_cursor_line_set(cur, 1); - evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); - evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); - fail_if(evas_textblock_cursor_compare(main_cur, cur)); +#ifdef HAVE_FRIBIDI + evas_object_textblock_text_markup_set(tb, + "testנסיוןtestנסיון" + "נסיוןtestנסיוןtest" + "testנסיוןtest" + "נסיוןtestנסיון" + "testנסיון
נסיון" + "נסיוןtest
test" + ); - evas_textblock_cursor_line_char_last(cur); - evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); - evas_textblock_cursor_char_coord_set(main_cur, x + 50, y); - fail_if(evas_textblock_cursor_compare(main_cur, cur)); + for (i = 0 ; i < 8 ; i++) + { + evas_textblock_cursor_line_set(cur, i); + evas_textblock_cursor_line_geometry_get(cur, &x, &y, &w, &h); + switch (i) + { + case 0: + case 2: + case 4: + case 5: + /* Ltr paragraph */ + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + evas_textblock_cursor_line_char_last(cur); + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x + w + 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + break; + case 1: + case 3: + case 6: + case 7: + /* Rtl paragraph */ + evas_textblock_cursor_line_char_last(cur); + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_line_char_first(cur); + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x + w + 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + break; + } + } +#endif + + evas_object_textblock_text_markup_set(tb, buf); /* Testing line geometry.*/ { Evas_Coord lx, ly, lw, lh; @@ -514,9 +559,6 @@ START_TEST(evas_textblock_cursor) fail_if(evas_textblock_cursor_compare(main_cur, cur)); } - - /* FIXME: Add tests that check positions left of/right of rtl lines. */ - END_TB_TEST(); } END_TEST