(root)/
harfbuzz-8.3.0/
test/
api/
test-coretext.c
       1  /*
       2   * Copyright © 2022 Red Hat, Inc.
       3   *
       4   *  This is part of HarfBuzz, a text shaping library.
       5   *
       6   * Permission is hereby granted, without written agreement and without
       7   * license or royalty fees, to use, copy, modify, and distribute this
       8   * software and its documentation for any purpose, provided that the
       9   * above copyright notice and the following two paragraphs appear in
      10   * all copies of this software.
      11   *
      12   * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
      13   * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
      14   * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
      15   * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
      16   * DAMAGE.
      17   *
      18   * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
      19   * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
      20   * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
      21   * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
      22   * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
      23   *
      24   * Author: Matthias Clasen
      25   */
      26  
      27  
      28  #include "hb-test.h"
      29  
      30  #include "hb-coretext.h"
      31  
      32  CTFontRef
      33  get_ctfont (void)
      34  {
      35    CTFontCollectionRef collection;
      36    CFArrayRef ctfaces;
      37    CTFontDescriptorRef desc;
      38    CTFontRef ctfont;
      39  
      40    collection = CTFontCollectionCreateFromAvailableFonts (0);
      41    ctfaces = CTFontCollectionCreateMatchingFontDescriptors (collection);
      42  
      43    desc = CFArrayGetValueAtIndex (ctfaces, 0);
      44    ctfont = CTFontCreateWithFontDescriptor (desc, 0.0, NULL);
      45  
      46    return ctfont;
      47  }
      48  
      49  static void
      50  test_native_coretext_basic (void)
      51  {
      52    CTFontRef ctfont;
      53    hb_font_t *font;
      54    CTFontRef ctfont2;
      55  
      56    ctfont = get_ctfont ();
      57  
      58    g_assert_nonnull (ctfont);
      59  
      60    font = hb_coretext_font_create (ctfont);
      61  
      62    ctfont2 = hb_coretext_font_get_ct_font (font);
      63  
      64    g_assert_true (ctfont2 == ctfont);
      65  
      66    hb_font_destroy (font);
      67  
      68    CFRelease (ctfont);
      69  }
      70  
      71  int
      72  main (int argc, char **argv)
      73  {
      74    hb_test_init (&argc, &argv);
      75  
      76    hb_test_add (test_native_coretext_basic);
      77  
      78    return hb_test_run ();
      79  }