Evas tests: Added more cursor tests, this time with bidi.

SVN revision: 61369
This commit is contained in:
Tom Hacohen 2011-07-14 14:25:42 +00:00
parent 00e8406b24
commit 8b59100774
1 changed files with 61 additions and 19 deletions

View File

@ -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נסיון<ps>"
"נסיוןtestנסיוןtest<ps>"
"testנסיוןtest<ps>"
"נסיוןtestנסיון<ps>"
"testנסיון<br>נסיון<ps>"
"נסיוןtest<br>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