mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-10 07:39:16 +00:00
parent
7ddc231195
commit
8ca80c4b6d
2 changed files with 68 additions and 1 deletions
|
@ -156,7 +156,8 @@ enum UDisplayContext {
|
|||
UDISPCTX_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 0,
|
||||
/**
|
||||
* A possible setting for SUBSTITUTE_HANDLING:
|
||||
* Returns a null value when no data is available.
|
||||
* Returns a null value with error code set to U_ILLEGAL_ARGUMENT_ERROR when no
|
||||
* data is available.
|
||||
* @stable ICU 58
|
||||
*/
|
||||
UDISPCTX_NO_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 1
|
||||
|
|
|
@ -47,6 +47,7 @@ static void TestLocDataErrorCodeChaining(void);
|
|||
static void TestLocDataWithRgTag(void);
|
||||
static void TestLanguageExemplarsFallbacks(void);
|
||||
static void TestDisplayNameBrackets(void);
|
||||
static void TestIllegalArgumentWhenNoDataWithNoSubstitute(void);
|
||||
|
||||
static void TestUnicodeDefines(void);
|
||||
|
||||
|
@ -264,6 +265,7 @@ void addLocaleTest(TestNode** root)
|
|||
TESTCASE(TestUnicodeDefines);
|
||||
TESTCASE(TestEnglishExemplarCharacters);
|
||||
TESTCASE(TestDisplayNameBrackets);
|
||||
TESTCASE(TestIllegalArgumentWhenNoDataWithNoSubstitute);
|
||||
TESTCASE(TestIsRightToLeft);
|
||||
TESTCASE(TestToUnicodeLocaleKey);
|
||||
TESTCASE(TestToLegacyKey);
|
||||
|
@ -1215,6 +1217,70 @@ static void TestDisplayNameBrackets()
|
|||
}
|
||||
}
|
||||
|
||||
/*------------------------------
|
||||
* TestIllegalArgumentWhenNoDataWithNoSubstitute
|
||||
*/
|
||||
|
||||
static void TestIllegalArgumentWhenNoDataWithNoSubstitute()
|
||||
{
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UChar getName[kDisplayNameBracketsMax];
|
||||
UDisplayContext contexts[] = {
|
||||
UDISPCTX_NO_SUBSTITUTE,
|
||||
};
|
||||
ULocaleDisplayNames* ldn = uldn_openForContext("en", contexts, 1, &status);
|
||||
|
||||
uldn_localeDisplayName(ldn, "efg", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_localeDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
uldn_languageDisplayName(ldn, "zz", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_languageDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
uldn_scriptDisplayName(ldn, "Aaaa", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_scriptDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
uldn_regionDisplayName(ldn, "KK", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_regionDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
uldn_variantDisplayName(ldn, "ZZ", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_variantDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
uldn_keyDisplayName(ldn, "zz", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_keyDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
status = U_ZERO_ERROR;
|
||||
uldn_keyValueDisplayName(ldn, "ca", "zz", getName, kDisplayNameBracketsMax, &status);
|
||||
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
|
||||
log_err("FAIL uldn_keyValueDisplayName should return U_ILLEGAL_ARGUMENT_ERROR "
|
||||
"while no resource under UDISPCTX_NO_SUBSTITUTE");
|
||||
}
|
||||
|
||||
uldn_close(ldn);
|
||||
}
|
||||
|
||||
/*------------------------------
|
||||
* TestISOFunctions
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue