[test/buffer] Test reverse() and reverse_clusters()
[profile/ivi/org.tizen.video-player.git] / test / test-unicode.c
index f610c1d..c696341 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Codethink Limited
+ * Copyright © 2011 Codethink Limited
  *
  *  This is part of HarfBuzz, a text shaping library.
  *
@@ -35,7 +35,6 @@ test_nil (void)
 
   g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_UNKNOWN);
 
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
   hb_unicode_funcs_destroy (uf);
 }
 
@@ -45,10 +44,14 @@ test_glib (void)
   hb_unicode_funcs_t *uf = hb_glib_get_unicode_funcs ();
 
   g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_LATIN);
+}
 
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 0);
-  hb_unicode_funcs_destroy (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 0);
+static void
+test_default (void)
+{
+  hb_unicode_funcs_t *uf = hb_unicode_funcs_get_default ();
+
+  g_assert_cmpint (hb_unicode_get_script (uf, 'd'), ==, HB_SCRIPT_LATIN);
 }
 
 static gboolean freed0, freed1;
@@ -92,7 +95,6 @@ test_custom (void)
   g_assert_cmpint (hb_unicode_get_script (uf, 'a'), ==, HB_SCRIPT_LATIN);
   g_assert_cmpint (hb_unicode_get_script (uf, '0'), ==, HB_SCRIPT_UNKNOWN);
 
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
   g_assert (!freed0 && !freed1);
   hb_unicode_funcs_destroy (uf);
   g_assert (freed0 && !freed1);
@@ -120,12 +122,13 @@ a_is_for_arabic_get_script (hb_unicode_funcs_t *ufuncs,
 static void
 test_subclassing_nil (void)
 {
-  hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
-  hb_unicode_funcs_t *aa = hb_unicode_funcs_create (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 2);
+  hb_unicode_funcs_t *uf, *aa;
+
+  uf = hb_unicode_funcs_create (NULL);
+
+  aa = hb_unicode_funcs_create (uf);
+
   hb_unicode_funcs_destroy (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
 
   hb_unicode_funcs_set_script_func (aa, a_is_for_arabic_get_script,
                                     unique_pointer1, free_up);
@@ -133,9 +136,6 @@ test_subclassing_nil (void)
   g_assert_cmpint (hb_unicode_get_script (aa, 'a'), ==, HB_SCRIPT_ARABIC);
   g_assert_cmpint (hb_unicode_get_script (aa, 'b'), ==, HB_SCRIPT_UNKNOWN);
 
-
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (aa), ==, 1);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
   g_assert (!freed0 && !freed1);
   hb_unicode_funcs_destroy (aa);
   g_assert (!freed0 && freed1);
@@ -145,12 +145,10 @@ test_subclassing_nil (void)
 static void
 test_subclassing_glib (void)
 {
-  hb_unicode_funcs_t *uf = hb_glib_get_unicode_funcs ();
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 0);
-  hb_unicode_funcs_t *aa = hb_unicode_funcs_create (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 0);
-  hb_unicode_funcs_destroy (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 0);
+  hb_unicode_funcs_t *uf, *aa;
+
+  uf = hb_glib_get_unicode_funcs ();
+  aa = hb_unicode_funcs_create (uf);
 
   hb_unicode_funcs_set_script_func (aa, a_is_for_arabic_get_script,
                                     unique_pointer1, free_up);
@@ -158,7 +156,6 @@ test_subclassing_glib (void)
   g_assert_cmpint (hb_unicode_get_script (aa, 'a'), ==, HB_SCRIPT_ARABIC);
   g_assert_cmpint (hb_unicode_get_script (aa, 'b'), ==, HB_SCRIPT_LATIN);
 
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (aa), ==, 1);
   g_assert (!freed0 && !freed1);
   hb_unicode_funcs_destroy (aa);
   g_assert (!freed0 && freed1);
@@ -168,18 +165,16 @@ test_subclassing_glib (void)
 static void
 test_subclassing_deep (void)
 {
-  hb_unicode_funcs_t *uf = hb_unicode_funcs_create (NULL);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
+  hb_unicode_funcs_t *uf, *aa;
+
+  uf = hb_unicode_funcs_create (NULL);
 
   hb_unicode_funcs_set_script_func (uf, simple_get_script,
                                     unique_pointer0, free_up);
 
-  hb_unicode_funcs_t *aa = hb_unicode_funcs_create (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (aa), ==, 1);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 2);
+  aa = hb_unicode_funcs_create (uf);
 
   hb_unicode_funcs_destroy (uf);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
 
   /* make sure the 'uf' didn't get freed, since 'aa' holds a ref */
   g_assert (!freed0);
@@ -191,8 +186,6 @@ test_subclassing_deep (void)
   g_assert_cmpint (hb_unicode_get_script (aa, 'b'), ==, HB_SCRIPT_LATIN);
   g_assert_cmpint (hb_unicode_get_script (aa, '0'), ==, HB_SCRIPT_UNKNOWN);
 
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (aa), ==, 1);
-  g_assert_cmpint (hb_unicode_funcs_get_reference_count (uf), ==, 1);
   g_assert (!freed0 && !freed1);
   hb_unicode_funcs_destroy (aa);
   g_assert (freed0 && freed1);
@@ -206,10 +199,14 @@ main (int argc, char **argv)
 
   g_test_add_func ("/unicode/nil", test_nil);
   g_test_add_func ("/unicode/glib", test_glib);
+  g_test_add_func ("/unicode/default", test_default);
   g_test_add_func ("/unicode/custom", test_custom);
   g_test_add_func ("/unicode/subclassing/nil", test_subclassing_nil);
   g_test_add_func ("/unicode/subclassing/glib", test_subclassing_glib);
   g_test_add_func ("/unicode/subclassing/deep", test_subclassing_deep);
 
+  /* XXX test all methods for their defaults and various (glib, icu, default) implementations. */
+  /* XXX test glib & icu two-way script conversion */
+
   return g_test_run ();
 }