diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-10-31 01:50:21 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-10-31 01:50:21 +0000 |
commit | 7c710faa1edd58109c4ac1972ae5aca10f1be87f (patch) | |
tree | 4abd52c5ccda75dea45d82965b5d244dfd868ab7 /tests/testmisc.c | |
parent | f33cbe522dbb5ccfff9e70ef108061813ed61cb8 (diff) | |
parent | ab776f328ba3540f6607ea0a9bc72a57b607b9ac (diff) | |
download | pango-7c710faa1edd58109c4ac1972ae5aca10f1be87f.tar.gz |
Merge branch 'glyph-extents-fixes' into 'main'
cairo: Produce meaningful logical glyph extents
See merge request GNOME/pango!490
Diffstat (limited to 'tests/testmisc.c')
-rw-r--r-- | tests/testmisc.c | 56 |
1 files changed, 47 insertions, 9 deletions
diff --git a/tests/testmisc.c b/tests/testmisc.c index 85a3b0b5..2e14f11e 100644 --- a/tests/testmisc.c +++ b/tests/testmisc.c @@ -125,9 +125,6 @@ test_line_height (void) g_object_unref (context); } -#if 0 -/* These tests fail since I had to revert 20ec670e124e446107 - */ static void test_line_height2 (void) { @@ -255,7 +252,6 @@ test_cursor_height2 (void) g_object_unref (layout); g_object_unref (context); } -#endif static void test_attr_list_update (void) @@ -661,6 +657,47 @@ test_empty_line_height (void) g_object_unref (context); } +static void +test_gravity_metrics (void) +{ + PangoFontMap *map; + PangoContext *context; + PangoFontDescription *desc; + PangoFont *font; + PangoGlyph glyph; + PangoGravity gravity; + PangoRectangle ink[4]; + PangoRectangle log[4]; + + map = pango_cairo_font_map_get_default (); + context = pango_font_map_create_context (map); + + desc = pango_font_description_from_string ("Cantarell 64"); + + glyph = 1; /* A */ + + for (gravity = PANGO_GRAVITY_SOUTH; gravity <= PANGO_GRAVITY_WEST; gravity++) + { + pango_font_description_set_gravity (desc, gravity); + font = pango_font_map_load_font (map, context, desc); + pango_font_get_glyph_extents (font, glyph, &ink[gravity], &log[gravity]); + g_object_unref (font); + } + + g_assert_cmpint (ink[PANGO_GRAVITY_EAST].width, ==, ink[PANGO_GRAVITY_SOUTH].height); + g_assert_cmpint (ink[PANGO_GRAVITY_EAST].height, ==, ink[PANGO_GRAVITY_SOUTH].width); + g_assert_cmpint (ink[PANGO_GRAVITY_NORTH].width, ==, ink[PANGO_GRAVITY_SOUTH].width); + g_assert_cmpint (ink[PANGO_GRAVITY_NORTH].height, ==, ink[PANGO_GRAVITY_SOUTH].height); + g_assert_cmpint (ink[PANGO_GRAVITY_WEST].width, ==, ink[PANGO_GRAVITY_SOUTH].height); + g_assert_cmpint (ink[PANGO_GRAVITY_WEST].height, ==, ink[PANGO_GRAVITY_SOUTH].width); + + g_assert_cmpint (log[PANGO_GRAVITY_SOUTH].width, ==, - log[PANGO_GRAVITY_NORTH].width); + g_assert_cmpint (log[PANGO_GRAVITY_EAST].width, ==, - log[PANGO_GRAVITY_WEST].width); + + pango_font_description_free (desc); + g_object_unref (context); +} + int main (int argc, char *argv[]) { @@ -672,11 +709,11 @@ main (int argc, char *argv[]) g_test_add_func ("/layout/short-string-crash", test_short_string_crash); g_test_add_func ("/language/emoji-crash", test_language_emoji_crash); g_test_add_func ("/layout/line-height", test_line_height); - //g_test_add_func ("/layout/line-height2", test_line_height2); - //g_test_add_func ("/layout/line-height3", test_line_height3); - //g_test_add_func ("/layout/run-height", test_run_height); - //g_test_add_func ("/layout/cursor-height", test_cursor_height); - //g_test_add_func ("/layout/cursor-height2", test_cursor_height2); + g_test_add_func ("/layout/line-height2", test_line_height2); + g_test_add_func ("/layout/line-height3", test_line_height3); + g_test_add_func ("/layout/run-height", test_run_height); + g_test_add_func ("/layout/cursor-height", test_cursor_height); + g_test_add_func ("/layout/cursor-height2", test_cursor_height2); g_test_add_func ("/attr-list/update", test_attr_list_update); g_test_add_func ("/misc/version-info", test_version_info); g_test_add_func ("/misc/is-zerowidth", test_is_zero_width); @@ -692,6 +729,7 @@ main (int argc, char *argv[]) g_test_add_func ("/layout/index-to-x", test_index_to_x); g_test_add_func ("/layout/extents", test_extents); g_test_add_func ("/layout/empty-line-height", test_empty_line_height); + g_test_add_func ("/layout/gravity-metrics", test_gravity_metrics); return g_test_run (); } |