From: Hyunjee Kim Date: Tue, 14 Apr 2020 03:13:25 +0000 (+0900) Subject: [UTC][base-utils][ACR-1523][UTC for uidna] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=da953b35287b94de66f03a0f93f1f35ee38d6125;p=test%2Ftct%2Fnative%2Fapi.git [UTC][base-utils][ACR-1523][UTC for uidna] Change-Id: Iad8dbc4de6851607f32fde37c6e4e043017801a4 Signed-off-by: Hyunjee Kim --- diff --git a/src/utc/base-utils/CMakeLists.txt b/src/utc/base-utils/CMakeLists.txt index c38fffd92..11cb7d23a 100644 --- a/src/utc/base-utils/CMakeLists.txt +++ b/src/utc/base-utils/CMakeLists.txt @@ -42,6 +42,7 @@ SET(TC_SOURCES utc-capi-base-utils-utext.c utc-capi-base-utils-uscript.c utc-capi-base-utils-unumsys.c + utc-capi-base-utils-uidna.c ) PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED diff --git a/src/utc/base-utils/tct-base-utils-core_mobile.h b/src/utc/base-utils/tct-base-utils-core_mobile.h index 862484a1b..d29103861 100755 --- a/src/utc/base-utils/tct-base-utils-core_mobile.h +++ b/src/utc/base-utils/tct-base-utils-core_mobile.h @@ -93,6 +93,8 @@ extern void utc_capi_base_utils_uscript_startup(void); extern void utc_capi_base_utils_uscript_cleanup(void); extern void utc_capi_base_utils_unumsys_startup(void); extern void utc_capi_base_utils_unumsys_cleanup(void); +extern void utc_capi_base_utils_uidna_startup(void); +extern void utc_capi_base_utils_uidna_cleanup(void); extern int utc_capi_base_utils_i18n_ucalendar_set_default_timezone_p(void); extern int utc_capi_base_utils_i18n_ucalendar_set_default_timezone_n(void); @@ -2436,6 +2438,28 @@ extern int utc_capi_base_utils_i18n_unumsys_get_description_p(void); extern int utc_capi_base_utils_i18n_unumsys_get_description_n1(void); extern int utc_capi_base_utils_i18n_unumsys_get_description_n2(void); extern int utc_capi_base_utils_i18n_unumsys_get_description_n3(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_n(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_n(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_errors_p(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_errors_n(void); +extern int utc_capi_base_utils_i18n_uidna_info_destroy_p(void); +extern int utc_capi_base_utils_i18n_uidna_info_destroy_n(void); testcase tc_array[] = { {"utc_capi_base_utils_i18n_ucalendar_set_default_timezone_p",utc_capi_base_utils_i18n_ucalendar_set_default_timezone_p,utc_capi_base_utils_ucalendar_startup,utc_capi_base_utils_ucalendar_cleanup}, @@ -4780,6 +4804,28 @@ testcase tc_array[] = { {"utc_capi_base_utils_i18n_unumsys_get_description_n1",utc_capi_base_utils_i18n_unumsys_get_description_n1,utc_capi_base_utils_unumsys_startup,utc_capi_base_utils_unumsys_cleanup}, {"utc_capi_base_utils_i18n_unumsys_get_description_n2",utc_capi_base_utils_i18n_unumsys_get_description_n2,utc_capi_base_utils_unumsys_startup,utc_capi_base_utils_unumsys_cleanup}, {"utc_capi_base_utils_i18n_unumsys_get_description_n3",utc_capi_base_utils_i18n_unumsys_get_description_n3,utc_capi_base_utils_unumsys_startup,utc_capi_base_utils_unumsys_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_p",utc_capi_base_utils_i18n_uidna_label_to_ascii_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_n",utc_capi_base_utils_i18n_uidna_label_to_ascii_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_p",utc_capi_base_utils_i18n_uidna_label_to_unicode_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_n",utc_capi_base_utils_i18n_uidna_label_to_unicode_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_p",utc_capi_base_utils_i18n_uidna_name_to_ascii_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_n",utc_capi_base_utils_i18n_uidna_name_to_ascii_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_p",utc_capi_base_utils_i18n_uidna_name_to_unicode_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_n",utc_capi_base_utils_i18n_uidna_name_to_unicode_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p",utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n",utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p",utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n",utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p",utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n",utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p",utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n",utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p",utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n",utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_errors_p",utc_capi_base_utils_i18n_uidna_info_get_errors_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_errors_n",utc_capi_base_utils_i18n_uidna_info_get_errors_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_destroy_p",utc_capi_base_utils_i18n_uidna_info_destroy_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_destroy_n",utc_capi_base_utils_i18n_uidna_info_destroy_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, {NULL, NULL} }; diff --git a/src/utc/base-utils/tct-base-utils-core_wearable.h b/src/utc/base-utils/tct-base-utils-core_wearable.h index 862484a1b..d29103861 100755 --- a/src/utc/base-utils/tct-base-utils-core_wearable.h +++ b/src/utc/base-utils/tct-base-utils-core_wearable.h @@ -93,6 +93,8 @@ extern void utc_capi_base_utils_uscript_startup(void); extern void utc_capi_base_utils_uscript_cleanup(void); extern void utc_capi_base_utils_unumsys_startup(void); extern void utc_capi_base_utils_unumsys_cleanup(void); +extern void utc_capi_base_utils_uidna_startup(void); +extern void utc_capi_base_utils_uidna_cleanup(void); extern int utc_capi_base_utils_i18n_ucalendar_set_default_timezone_p(void); extern int utc_capi_base_utils_i18n_ucalendar_set_default_timezone_n(void); @@ -2436,6 +2438,28 @@ extern int utc_capi_base_utils_i18n_unumsys_get_description_p(void); extern int utc_capi_base_utils_i18n_unumsys_get_description_n1(void); extern int utc_capi_base_utils_i18n_unumsys_get_description_n2(void); extern int utc_capi_base_utils_i18n_unumsys_get_description_n3(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_n(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_n(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p(void); +extern int utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_errors_p(void); +extern int utc_capi_base_utils_i18n_uidna_info_get_errors_n(void); +extern int utc_capi_base_utils_i18n_uidna_info_destroy_p(void); +extern int utc_capi_base_utils_i18n_uidna_info_destroy_n(void); testcase tc_array[] = { {"utc_capi_base_utils_i18n_ucalendar_set_default_timezone_p",utc_capi_base_utils_i18n_ucalendar_set_default_timezone_p,utc_capi_base_utils_ucalendar_startup,utc_capi_base_utils_ucalendar_cleanup}, @@ -4780,6 +4804,28 @@ testcase tc_array[] = { {"utc_capi_base_utils_i18n_unumsys_get_description_n1",utc_capi_base_utils_i18n_unumsys_get_description_n1,utc_capi_base_utils_unumsys_startup,utc_capi_base_utils_unumsys_cleanup}, {"utc_capi_base_utils_i18n_unumsys_get_description_n2",utc_capi_base_utils_i18n_unumsys_get_description_n2,utc_capi_base_utils_unumsys_startup,utc_capi_base_utils_unumsys_cleanup}, {"utc_capi_base_utils_i18n_unumsys_get_description_n3",utc_capi_base_utils_i18n_unumsys_get_description_n3,utc_capi_base_utils_unumsys_startup,utc_capi_base_utils_unumsys_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_p",utc_capi_base_utils_i18n_uidna_label_to_ascii_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_n",utc_capi_base_utils_i18n_uidna_label_to_ascii_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_p",utc_capi_base_utils_i18n_uidna_label_to_unicode_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_n",utc_capi_base_utils_i18n_uidna_label_to_unicode_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_p",utc_capi_base_utils_i18n_uidna_name_to_ascii_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_n",utc_capi_base_utils_i18n_uidna_name_to_ascii_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_p",utc_capi_base_utils_i18n_uidna_name_to_unicode_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_n",utc_capi_base_utils_i18n_uidna_name_to_unicode_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p",utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n",utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p",utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n",utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p",utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n",utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p",utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n",utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p",utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n",utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_errors_p",utc_capi_base_utils_i18n_uidna_info_get_errors_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_get_errors_n",utc_capi_base_utils_i18n_uidna_info_get_errors_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_destroy_p",utc_capi_base_utils_i18n_uidna_info_destroy_p,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, + {"utc_capi_base_utils_i18n_uidna_info_destroy_n",utc_capi_base_utils_i18n_uidna_info_destroy_n,utc_capi_base_utils_uidna_startup,utc_capi_base_utils_uidna_cleanup}, {NULL, NULL} }; diff --git a/src/utc/base-utils/utc-capi-base-utils-uidna.c b/src/utc/base-utils/utc-capi-base-utils-uidna.c new file mode 100644 index 000000000..c3e12f43b --- /dev/null +++ b/src/utc/base-utils/utc-capi-base-utils-uidna.c @@ -0,0 +1,595 @@ +#include "assert.h" +#include +#include + +#define I18N_UPRV_LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0])) + +static int ret = I18N_ERROR_NONE; +static int i; +static i18n_uidna_h uidna; + +/** +* @function utc_capi_base_utils_uidna_startup +* @description Called before each test +* @parameter NA +* @return NA +*/ +void utc_capi_base_utils_uidna_startup(void) +{ +} + +/** +* @function utc_capi_base_utils_uidna_cleanup +* @description Called after each test +* @parameter NA +* @return NA +*/ +void utc_capi_base_utils_uidna_cleanup(void) +{ + if (!uidna) + i18n_uidna_destroy(uidna); +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_ascii_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_ASCII and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_ascii_p(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + static const i18n_uchar fa_sharps16[] = { 0x66, 0x61, 0xdf, 0 }; + + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_ascii(uidna, fA_sharps16, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_ascii_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_ASCII and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_ascii_n(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_ascii(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_ascii(uidna, fA_sharps16, -1, NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_label_to_ascii(uidna, fA_sharps16, -1, NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_ascii(uidna, fA_sharps16, -1, (i18n_uchar *)fA_sharps16, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_unicode_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_unicode and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_unicode_p(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_unicode(uidna, fA_sharps16, i18n_ustring_get_length(fA_sharps16), dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_unicode_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_unicode and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_unicode_n(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_unicode(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_unicode(uidna, fA_sharps16, -1, NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_label_to_unicode(uidna, fA_sharps16, -1, NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_unicode(uidna, fA_sharps16, -1, (i18n_uchar *)fA_sharps16, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_ascii_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_name_to_ASCII and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_ascii_p(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_ascii(uidna, fA_sharps16, i18n_ustring_get_length(fA_sharps16), dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_ascii_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_name_to_ASCII and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_ascii_n(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_ascii(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_ascii(uidna, fA_sharps16, -1, NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_name_to_ascii(uidna, fA_sharps16, -1, NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_ascii(uidna, fA_sharps16, -1, (i18n_uchar *)fA_sharps16, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_unicode_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_name_to_unicode and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_unicode_p(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode(uidna, fA_sharps16, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_unicode_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_name_to_unicode and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_unicode_n(void) +{ + static const i18n_uchar fA_sharps16[] = { 0x66, 0x41, 0xdf, 0 }; + i18n_uchar dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_unicode(uidna, fA_sharps16, -1, NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_name_to_unicode(uidna, fA_sharps16, -1, NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_unicode(uidna, fA_sharps16, -1, (i18n_uchar *)fA_sharps16, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_ascii_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_ascii_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_ascii_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_ascii_UTF8_n(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_ascii_UTF8(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_ascii_UTF8(uidna, fA_sharps8, -1, NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_label_to_ascii_UTF8(uidna, fA_sharps8, -1, NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_ascii_UTF8(uidna, fA_sharps8, -1, (char *)fA_sharps8, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_unicode_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_unicode_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_unicode_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_label_to_unicode_UTF8_n(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_label_to_unicode_UTF8(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_unicode_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_label_to_unicode_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_label_to_unicode_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), (char *)fA_sharps8, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_unicode_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_ascii_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_label_to_unicode_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_ascii_UTF8_n(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_ascii_UTF8(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_ascii_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_name_to_ascii_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_ascii_UTF8(uidna, fA_sharps8, (int32_t)strlen(fA_sharps8), (char *)fA_sharps8, 4, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_name_to_unicode_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + assert_eq(length, 4); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_name_to_unicode_UTF8 and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_name_to_unicode_UTF8_n(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, NULL, -3, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, NULL, 0, &info, &length); + assert_eq(ret, I18N_ERROR_BUFFER_OVERFLOW); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, NULL, -2, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, (char *)fA_sharps8, 4, &info, &length); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_info_get_is_trans_different and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + + i18n_ubool is_trans_different; + ret = i18n_uidna_info_get_is_trans_different(info, &is_trans_different); + assert_eq(is_trans_different, true); + assert_eq(ret, I18N_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_info_get_is_trans_different and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_info_get_is_trans_different_n(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + + i18n_ubool is_trans_different; + ret = i18n_uidna_info_get_is_trans_different(NULL, &is_trans_different); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_info_get_is_trans_different(info, NULL); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_info_get_errors_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_info_get_errors and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_info_get_errors_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + + uint32_t errors; + ret = i18n_uidna_info_get_errors(info, &errors); + assert_eq(ret, I18N_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_info_get_errors_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_info_get_errors and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_info_get_errors_n(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + + uint32_t errors; + ret = i18n_uidna_info_get_errors(NULL, &errors); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + ret = i18n_uidna_info_get_errors(info, NULL); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_info_destroy_p + * @since_tizen 6.0 + * @description Calls i18n_uidna_info_destroy and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_info_destroy_p(void) +{ + static const char fA_sharps8[] = { 0x66, 0x41, (char)0xc3, (char)0x9f, 0 }; + char dest[10]; + i18n_uidna_info_h info; + int32_t length; + + ret = i18n_uidna_create(I18N_UIDNA_DEFAULT, &uidna); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_name_to_unicode_UTF8(uidna, fA_sharps8, -1, dest, I18N_UPRV_LENGTHOF(dest), &info, &length); + assert_eq(ret, I18N_ERROR_NONE); + + ret = i18n_uidna_info_destroy(info); + assert_eq(ret, I18N_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_capi_base_utils_i18n_uidna_info_destroy_n + * @since_tizen 6.0 + * @description Calls i18n_uidna_info_destroy and checks whether function succeeded. + */ +int utc_capi_base_utils_i18n_uidna_info_destroy_n(void) +{ + ret = i18n_uidna_info_destroy(NULL); + assert_eq(ret, I18N_ERROR_INVALID_PARAMETER); + + return 0; +} +