diff --git a/glib/tests/utf8-misc.c b/glib/tests/utf8-misc.c index be9e00dcb..dfa7ebb43 100644 --- a/glib/tests/utf8-misc.c +++ b/glib/tests/utf8-misc.c @@ -408,6 +408,23 @@ test_mark (void) g_assert (!g_unichar_ismark ('a')); } +static void +test_title (void) +{ + g_assert (g_unichar_istitle (0x01c5)); + g_assert (g_unichar_istitle (0x1f88)); + g_assert (g_unichar_istitle (0x1fcc)); + g_assert (!g_unichar_ismark ('a')); + + g_assert (g_unichar_totitle (0x01c6) == 0x01c5); + g_assert (g_unichar_totitle (0x01c4) == 0x01c5); + g_assert (g_unichar_totitle (0x01c5) == 0x01c5); + g_assert (g_unichar_totitle (0x1f80) == 0x1f88); + g_assert (g_unichar_totitle (0x1f88) == 0x1f88); + g_assert (g_unichar_totitle ('a') == 'A'); + g_assert (g_unichar_totitle ('A') == 'A'); +} + int main (int argc, char *argv[]) @@ -425,6 +442,7 @@ main (int argc, g_test_add_func ("/unicode/combining-class", test_combining_class); g_test_add_func ("/unicode/mirror", test_mirror); g_test_add_func ("/unicode/mark", test_mark); + g_test_add_func ("/unicode/title", test_title); return g_test_run(); } diff --git a/glib/tests/utf8-pointer.c b/glib/tests/utf8-pointer.c index 2c5e38624..6ef27d30f 100644 --- a/glib/tests/utf8-pointer.c +++ b/glib/tests/utf8-pointer.c @@ -92,15 +92,38 @@ test_length (void) } static void -test_misc (void) +test_find (void) { - char *s; - s = g_utf8_strreverse ("1234", -1); - g_assert (strcmp (s, "4321") == 0); - g_free (s); - s = g_utf8_strreverse ("1234", 3); - g_assert (strcmp (s, "321") == 0); - g_free (s); + /* U+0B0B Oriya Letter Vocalic R (\340\254\213) + * U+10900 Phoenician Letter Alf (\360\220\244\200) + * U+0041 Latin Capital Letter A (\101) + * U+1EB6 Latin Capital Letter A With Breve And Dot Below (\341\272\266) + */ + const gchar *str = "\340\254\213\360\220\244\200\101\341\272\266"; + const gchar *p = str + strlen (str); + const gchar *q; + + q = g_utf8_find_prev_char (str, p); + g_assert (q == str + 8); + q = g_utf8_find_prev_char (str, q); + g_assert (q == str + 7); + q = g_utf8_find_prev_char (str, q); + g_assert (q == str + 3); + q = g_utf8_find_prev_char (str, q); + g_assert (q == str); + q = g_utf8_find_prev_char (str, q); + g_assert (q == NULL); + + p = str + 2; + q = g_utf8_find_next_char (p, NULL); + g_assert (q == str + 3); + q = g_utf8_find_next_char (q, NULL); + g_assert (q == str + 7); + + q = g_utf8_find_next_char (p, str + 6); + g_assert (q == str + 3); + q = g_utf8_find_next_char (q, str + 6); + g_assert (q == NULL); } int main (int argc, char *argv[]) @@ -109,7 +132,7 @@ int main (int argc, char *argv[]) g_test_add_data_func ("/utf8/offsets", longline, test_utf8); g_test_add_func ("/utf8/lengths", test_length); - g_test_add_func ("/utf8/reverse", test_misc); + g_test_add_func ("/utf8/find", test_find); return g_test_run (); }