Evas tests: Added more textblock tests, including one to verify my last fix.

SVN revision: 61233
This commit is contained in:
Tom Hacohen 2011-07-11 08:56:19 +00:00
parent e01d587617
commit f046b06c23
1 changed files with 173 additions and 0 deletions

View File

@ -313,6 +313,34 @@ START_TEST(evas_textblock_cursor)
}
}
/* Format positions */
const Evas_Object_Textblock_Node_Format *fnode;
fnode = evas_textblock_node_format_first_get(tb);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
evas_textblock_cursor_copy(cur, main_cur);
fail_if(evas_textblock_cursor_pos_get(cur) != 9);
fail_if(evas_textblock_cursor_format_get(cur) != fnode);
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(evas_textblock_cursor_pos_get(cur) != 16);
fail_if(evas_textblock_cursor_format_get(cur) != fnode);
evas_textblock_cursor_format_next(main_cur);
fail_if(evas_textblock_cursor_compare(main_cur, cur));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(evas_textblock_cursor_pos_get(cur) != 9);
fail_if(evas_textblock_cursor_format_get(cur) != fnode);
evas_textblock_cursor_format_prev(main_cur);
fail_if(evas_textblock_cursor_compare(main_cur, cur));
evas_textblock_cursor_char_next(main_cur);
evas_textblock_cursor_format_prev(main_cur);
fail_if(evas_textblock_cursor_compare(main_cur, cur));
/* FIXME: There is a lot more to be done. */
END_TB_TEST();
@ -414,6 +442,150 @@ START_TEST(evas_textblock_text_getters)
}
END_TEST
/* Formats */
START_TEST(evas_textblock_formats)
{
START_TB_TEST();
const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a <br> te<ps>st<item></>.";
const Evas_Object_Textblock_Node_Format *fnode;
evas_object_textblock_text_markup_set(tb, buf);
/* Walk from the start */
fnode = evas_textblock_node_format_first_get(tb);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b"));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode),
"+ font_size=15 wrap=none"));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode),
"- font_size=13"));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- "));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "\n"));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "ps"));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ item"));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- "));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(fnode);
/* Walk backwards */
fnode = evas_textblock_node_format_last_get(tb);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- "));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ item"));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "ps"));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "\n"));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- "));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode),
"- font_size=13"));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode),
"+ font_size=15 wrap=none"));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(!fnode);
fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b"));
fnode = evas_textblock_node_format_prev_get(fnode);
fail_if(fnode);
/* Cursor and format detection */
fnode = evas_textblock_node_format_first_get(tb);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(evas_textblock_cursor_format_is_visible_get(cur));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(evas_textblock_cursor_format_is_visible_get(cur));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(evas_textblock_cursor_format_is_visible_get(cur));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(evas_textblock_cursor_format_is_visible_get(cur));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
fnode = evas_textblock_node_format_next_get(fnode);
fail_if(!fnode);
evas_textblock_cursor_at_format_set(cur, fnode);
fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
size_t i = 0;
evas_textblock_cursor_paragraph_first(cur);
do
{
switch (i)
{
case 2:
case 3:
case 6:
case 7:
case 10:
case 14:
case 17:
case 18:
fail_if(!evas_textblock_cursor_is_format(cur));
break;
default:
fail_if(evas_textblock_cursor_is_format(cur));
fail_if(evas_textblock_cursor_format_is_visible_get(cur));
break;
}
i++;
}
while (evas_textblock_cursor_char_next(cur));
END_TB_TEST();
}
END_TEST
/* Different text styles, for example, shadow. */
START_TEST(evas_textblock_style)
{
@ -487,5 +659,6 @@ void evas_test_textblock(TCase *tc)
tcase_add_test(tc, evas_textblock_style);
tcase_add_test(tc, evas_textblock_aux);
tcase_add_test(tc, evas_textblock_text_getters);
tcase_add_test(tc, evas_textblock_formats);
}