[test] Test hb_ot_color_has_{colr,cpal}_data

This commit is contained in:
Ebrahim Byagowi 2018-10-21 09:51:15 +03:30 committed by Khaled Hosny
parent b8ee3a0ec8
commit 6795dcfc08
3 changed files with 29 additions and 4 deletions

View File

@ -1,5 +1,6 @@
/* /*
* Copyright © 2018 Ebrahim Byagowi * Copyright © 2018 Ebrahim Byagowi
* Copyright © 2018 Khaled Hosny
* *
* This is part of HarfBuzz, a text shaping library. * This is part of HarfBuzz, a text shaping library.
* *
@ -140,7 +141,7 @@ colr_cpal_rendering (hb_face_t *face, cairo_font_face_t *cairo_face)
hb_ot_color_get_palette_colors (face, palette, 0, &num_colors, colors); hb_ot_color_get_palette_colors (face, palette, 0, &num_colors, colors);
if (num_colors) if (num_colors)
{ {
// If we have more than one palette, use a better namin // If we have more than one palette, use a simpler naming
if (palette_count == 1) if (palette_count == 1)
sprintf (output_path, "out/colr-%d.svg", gid); sprintf (output_path, "out/colr-%d.svg", gid);
else else

View File

@ -117,7 +117,7 @@ hb_ot_color_get_palette_name_id (hb_face_t *face, unsigned int palette)
} }
/** /**
* hb_ot_color_get_palette_count: * hb_ot_color_get_palette_entry_count:
* @face: a font face. * @face: a font face.
* *
* Returns: Number of entries on each palette * Returns: Number of entries on each palette
@ -206,7 +206,8 @@ hb_ot_color_get_palette_colors (hb_face_t *face,
* @gid: * @gid:
* @start_offset: * @start_offset:
* @count: (inout) (optional): * @count: (inout) (optional):
* @color_indices: (array length=color_count) (optional): * @gids: (array length=count) (optional):
* @color_indices: (array length=count) (optional):
* *
* Returns: * Returns:
* *
@ -250,7 +251,7 @@ hb_ot_color_get_color_layers (hb_face_t *face,
* or if @palette is not between 0 and hb_ot_color_get_palette_count(), * or if @palette is not between 0 and hb_ot_color_get_palette_count(),
* the result is #HB_OT_COLOR_PALETTE_FLAG_DEFAULT. * the result is #HB_OT_COLOR_PALETTE_FLAG_DEFAULT.
* *
* Since: DONTREPLACEME * Since: REPLACEME
*/ */
hb_ot_color_palette_flags_t hb_ot_color_palette_flags_t
hb_ot_color_get_palette_flags (hb_face_t *face, unsigned int palette) hb_ot_color_get_palette_flags (hb_face_t *face, unsigned int palette)

View File

@ -1,5 +1,6 @@
/* /*
* Copyright © 2016 Google, Inc. * Copyright © 2016 Google, Inc.
* Copyright © 2018 Ebrahim Byagowi
* *
* This is part of HarfBuzz, a text shaping library. * This is part of HarfBuzz, a text shaping library.
* *
@ -321,6 +322,13 @@ test_hb_ot_color_get_color_layers (void)
unsigned int color_indices[1]; unsigned int color_indices[1];
unsigned int count = 1; unsigned int count = 1;
g_assert_cmpuint (hb_ot_color_get_color_layers (cpal_v1, 0, 0,
NULL, NULL, NULL), ==, 0);
g_assert_cmpuint (hb_ot_color_get_color_layers (cpal_v1, 1, 0,
NULL, NULL, NULL), ==, 0);
g_assert_cmpuint (hb_ot_color_get_color_layers (cpal_v1, 2, 0,
NULL, NULL, NULL), ==, 2);
unsigned int num_layers; unsigned int num_layers;
num_layers = hb_ot_color_get_color_layers (cpal_v1, 2, 0, &count, layer_gids, num_layers = hb_ot_color_get_color_layers (cpal_v1, 2, 0, &count, layer_gids,
color_indices); color_indices);
@ -340,6 +348,20 @@ test_hb_ot_color_get_color_layers (void)
g_assert_cmpuint (color_indices[0], ==, 0); g_assert_cmpuint (color_indices[0], ==, 0);
} }
static void
test_hb_ot_color_has_data (void)
{
hb_face_t *empty = hb_face_get_empty ();
g_assert (hb_ot_color_has_colr_data (empty) == FALSE);
g_assert (hb_ot_color_has_colr_data (cpal_v0) == TRUE);
g_assert (hb_ot_color_has_colr_data (cpal_v1) == TRUE);
g_assert (hb_ot_color_has_cpal_data (empty) == FALSE);
g_assert (hb_ot_color_has_cpal_data (cpal_v0) == TRUE);
g_assert (hb_ot_color_has_cpal_data (cpal_v1) == TRUE);
}
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
@ -360,6 +382,7 @@ main (int argc, char **argv)
hb_test_add (test_hb_ot_color_get_palette_colors_v1); hb_test_add (test_hb_ot_color_get_palette_colors_v1);
hb_test_add (test_hb_ot_color_get_palette_entry); hb_test_add (test_hb_ot_color_get_palette_entry);
hb_test_add (test_hb_ot_color_get_color_layers); hb_test_add (test_hb_ot_color_get_color_layers);
hb_test_add (test_hb_ot_color_has_data);
status = hb_test_run(); status = hb_test_run();
hb_face_destroy (cpal_v0); hb_face_destroy (cpal_v0);
hb_face_destroy (cpal_v1); hb_face_destroy (cpal_v1);