]> granicus.if.org Git - icu/commitdiff
ICU-10195 Fix CLDR_FIELD_NAME[] array so getting localized name for UDATPG_DAY_FIELD...
authorPeter Edberg <pedberg@unicode.org>
Thu, 27 Jun 2013 07:41:56 +0000 (07:41 +0000)
committerPeter Edberg <pedberg@unicode.org>
Thu, 27 Jun 2013 07:41:56 +0000 (07:41 +0000)
X-SVN-Rev: 33859

icu4c/source/i18n/dtptngen.cpp
icu4c/source/test/cintltst/udatpg_test.c

index ec205d60e8c00cadddc99e9e2586e64a9e11a09f..ddb553272d183b7a1d3199d1907b3254576b4293 100644 (file)
@@ -205,7 +205,7 @@ static const char* const CLDR_FIELD_APPEND[] = {
 };
 
 static const char* const CLDR_FIELD_NAME[] = {
-    "era", "year", "quarter", "month", "week", "*", "weekday", "day", "*", "*", "dayperiod",
+    "era", "year", "quarter", "month", "week", "*", "weekday", "*", "*", "day", "dayperiod",
     "hour", "minute", "second", "*", "zone"
 };
 
index 6bdcb1435ac833c11d4be39fb3e8b9e673a2c314..1ca28623e053d46e7a864f518de6923c91f18cf5 100644 (file)
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2007-2012, International Business Machines
+*   Copyright (C) 2007-2013, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -111,9 +111,24 @@ static void TestOpenClose() {
     udatpg_close(dtpg2);
 }
 
+typedef struct {
+    UDateTimePatternField field;
+    UChar name[12];
+} AppendItemNameData;
+
+static const AppendItemNameData appendItemNameData[] = { /* for Finnish */
+    { UDATPG_YEAR_FIELD,    {0x0076,0x0075,0x006F,0x0073,0x0069,0} }, /* "vuosi" */
+    { UDATPG_MONTH_FIELD,   {0x006B,0x0075,0x0075,0x006B,0x0061,0x0075,0x0073,0x0069,0} }, /* "kuukausi" */
+    { UDATPG_WEEKDAY_FIELD, {0x0076,0x0069,0x0069,0x006B,0x006F,0x006E,0x0070,0x00E4,0x0069,0x0076,0x00E4,0} }, /* "viikonpäivä" */
+    { UDATPG_DAY_FIELD,     {0x0070,0x00E4,0x0069,0x0076,0x00E4,0} }, /* "päivä" */
+    { UDATPG_HOUR_FIELD,    {0x0074,0x0075,0x006E,0x0074,0x0069,0} }, /* "tunti" */
+    { UDATPG_FIELD_COUNT,   {0}        }  /* terminator */
+};
+
 static void TestUsage() {
     UErrorCode errorCode=U_ZERO_ERROR;
     UDateTimePatternGenerator *dtpg;
+    const AppendItemNameData * appItemNameDataPtr;
     UChar bestPattern[20];
     UChar result[20];
     int32_t length;    
@@ -193,6 +208,14 @@ static void TestUsage() {
         return;
     }
     
+    for (appItemNameDataPtr = appendItemNameData; appItemNameDataPtr->field <  UDATPG_FIELD_COUNT; appItemNameDataPtr++) {
+        int32_t nameLength;
+        const UChar * namePtr = udatpg_getAppendItemName(dtpg, appItemNameDataPtr->field, &nameLength);
+        if ( namePtr == NULL || u_strncmp(appItemNameDataPtr->name, namePtr, nameLength) != 0 ) {
+            log_err("udatpg_getAppendItemName returns invalid name for field %d\n", (int)appItemNameDataPtr->field);
+        }
+    }
+    
     /* set append name to hr */
     udatpg_setAppendItemName( dtpg, UDATPG_HOUR_FIELD, appendItemName, 7 );
     r = udatpg_getAppendItemName(dtpg, UDATPG_HOUR_FIELD, &length);