[pango] Add test for glyphitem-iter
- From: Behdad Esfahbod <behdad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango] Add test for glyphitem-iter
- Date: Sat, 8 Aug 2015 14:16:29 +0000 (UTC)
commit acbd5a6d4d92715263b3e99113caa7ac7a002776
Author: Behdad Esfahbod <behdad behdad org>
Date: Sat Aug 8 16:10:36 2015 +0200
Add test for glyphitem-iter
Fails right now. Fix coming.
tests/testiter.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
---
diff --git a/tests/testiter.c b/tests/testiter.c
index 4e70ce4..1d8069b 100644
--- a/tests/testiter.c
+++ b/tests/testiter.c
@@ -233,6 +233,57 @@ test_layout_iter (void)
}
g_object_unref (layout);
+ g_object_unref (context);
+}
+
+static void
+test_glyphitem_iter (void)
+{
+ PangoFontMap *fontmap;
+ PangoContext *context;
+ PangoLayout *layout;
+ PangoLayoutLine *line;
+ const char *text;
+ GSList *l;
+
+ fontmap = pango_cairo_font_map_get_default ();
+ context = pango_font_map_create_context (fontmap);
+
+ layout = pango_layout_new (context);
+ /* This shouldn't form any ligatures. */
+ pango_layout_set_text (layout, "test تست", -1);
+ text = pango_layout_get_text (layout);
+
+ line = pango_layout_get_line (layout, 0);
+ for (l = line->runs; l; l = l->next)
+ {
+ PangoGlyphItem *run = l->data;
+ int direction;
+
+ for (direction = 0; direction < 2; direction++)
+ {
+ PangoGlyphItemIter iter;
+ gboolean have_cluster;
+
+
+ for (have_cluster = direction ?
+ pango_glyph_item_iter_init_start (&iter, run, text) :
+ pango_glyph_item_iter_init_end (&iter, run, text);
+ have_cluster;
+ have_cluster = direction ?
+ pango_glyph_item_iter_next_cluster (&iter) :
+ pango_glyph_item_iter_prev_cluster (&iter))
+ {
+ verbose ("start index %d end index %d\n", iter.start_index, iter.end_index);
+ g_assert (iter.start_index < iter.end_index);
+ g_assert (iter.start_index + 2 >= iter.end_index);
+ g_assert (iter.start_char + 1 == iter.end_char);
+ }
+ }
+ }
+
+ g_object_unref (layout);
+ g_object_unref (context);
}
int
@@ -241,6 +292,7 @@ main (int argc, char *argv[])
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/layout/iter", test_layout_iter);
+ g_test_add_func ("/layout/iter", test_glyphitem_iter);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]