Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / test / api / test-baseline.c
index 982c683..4e02cd0 100644 (file)
@@ -41,6 +41,70 @@ test_ot_layout_base (void)
                                       &position));
   g_assert_cmpint (46, ==, position);
 
+  g_assert (hb_ot_layout_get_baseline2 (font, HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT, HB_DIRECTION_TTB,
+                                       HB_SCRIPT_HAN,
+                                       hb_language_from_string ("en", -1),
+                                       &position));
+  g_assert_cmpint (46, ==, position);
+
+  g_assert (!hb_ot_layout_get_baseline (font, HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT, HB_DIRECTION_TTB,
+                                       HB_TAG ('h','a','n','i'),
+                                       HB_TAG ('E','N','G',' '),
+                                       &position));
+
+  hb_font_destroy (font);
+  hb_face_destroy (face);
+}
+
+static void
+test_ot_layout_base_with_fallback (void)
+{
+  hb_face_t *face = hb_test_open_font_file ("fonts/base.ttf");
+  hb_font_t *font = hb_font_create (face);
+
+  hb_position_t position;
+  hb_ot_layout_get_baseline_with_fallback (font, HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT, HB_DIRECTION_TTB,
+                                          HB_TAG ('h','a','n','i'),
+                                          HB_TAG ('E','N','G',' '),
+                                          &position);
+  g_assert_cmpint (46, ==, position);
+
+  hb_ot_layout_get_baseline_with_fallback2 (font, HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT, HB_DIRECTION_TTB,
+                                           HB_SCRIPT_HAN,
+                                           hb_language_from_string ("en", -1),
+                                           &position);
+  g_assert_cmpint (46, ==, position);
+
+  hb_ot_layout_get_baseline_with_fallback (font, HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT, HB_DIRECTION_TTB,
+                                          HB_TAG ('h','a','n','i'),
+                                          HB_TAG ('E','N','G',' '),
+                                          &position);
+  g_assert_cmpint (1000, ==, position);
+
+  hb_ot_layout_get_baseline_with_fallback (font, HB_OT_LAYOUT_BASELINE_TAG_MATH, HB_DIRECTION_LTR,
+                                          HB_TAG ('h','a','n','i'),
+                                          HB_TAG ('E','N','G',' '),
+                                          &position);
+  g_assert_cmpint (271, ==, position);
+
+  hb_font_destroy (font);
+  hb_face_destroy (face);
+
+  face = hb_test_open_font_file ("fonts/base2.ttf");
+  font = hb_font_create (face);
+
+  hb_ot_layout_get_baseline_with_fallback (font, HB_OT_LAYOUT_BASELINE_TAG_HANGING, HB_DIRECTION_LTR,
+                                          HB_SCRIPT_BENGALI,
+                                          HB_TAG ('E','N','G',' '),
+                                          &position);
+  g_assert_cmpint (622, ==, position);
+
+  hb_ot_layout_get_baseline_with_fallback (font, HB_OT_LAYOUT_BASELINE_TAG_HANGING, HB_DIRECTION_LTR,
+                                          HB_SCRIPT_TIBETAN,
+                                          HB_TAG ('E','N','G',' '),
+                                          &position);
+  g_assert_cmpint (600, ==, position);
+
   hb_font_destroy (font);
   hb_face_destroy (face);
 }
@@ -51,6 +115,7 @@ main (int argc, char **argv)
   hb_test_init (&argc, &argv);
 
   hb_test_add (test_ot_layout_base);
+  hb_test_add (test_ot_layout_base_with_fallback);
 
   return hb_test_run();
 }