]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/tmsgfmt.cpp
ICU-59117.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / tmsgfmt.cpp
index df01894045b68d2ad5aa2302f8fac540ddcf9654..26c44cddabeeb95726db8b6656f861d6b40f744c 100644 (file)
@@ -1,3 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
  * Copyright (c) 1997-2016, International Business Machines Corporation and
@@ -30,6 +32,7 @@
 #include "unicode/messagepattern.h"
 #include "unicode/selfmt.h"
 #include "unicode/gregocal.h"
+#include "unicode/strenum.h"
 #include <stdio.h>
 
 void
@@ -139,7 +142,7 @@ void TestMessageFormat::testBug3()
             continue;
         }
         Formattable result;
-        FieldPosition pos(0);
+        FieldPosition pos(FieldPosition::DONT_CARE);
         buffer.remove();
         form->format(myNumber, buffer, pos);
         success = U_ZERO_ERROR;
@@ -161,7 +164,7 @@ void TestMessageFormat::testBug1()
                                "1.0<=Arg<2.0",
                                "2.0<-Arg"};
     ChoiceFormat *cf = new ChoiceFormat(limit, formats, 3);
-    FieldPosition status(0);
+    FieldPosition status(FieldPosition::DONT_CARE);
     UnicodeString toAppendTo;
     cf->format((int32_t)1, toAppendTo, status);
     if (toAppendTo != "1.0<=Arg<2.0") {
@@ -319,7 +322,7 @@ void TestMessageFormat::PatternTest()
         //it_out << "Pat out: " << form->toPattern(buffer));
         UnicodeString result;
         int32_t count = 4;
-        FieldPosition fieldpos(0);
+        FieldPosition fieldpos(FieldPosition::DONT_CARE);
         form->format(testArgs, count, result, fieldpos, success);
         if (U_FAILURE(success)) {
             dataerrln("MessageFormat failed test #3 - %s", u_errorName(success));
@@ -379,7 +382,7 @@ void TestMessageFormat::sample()
     UnicodeString abc("abc");
     UnicodeString def("def");
     Formattable testArgs1[] = { abc, def };
-    FieldPosition fieldpos(0);
+    FieldPosition fieldpos(FieldPosition::DONT_CARE);
     assertEquals("format",
                  "There are abc files on def",
                  form->format(testArgs1, 2, buffer2, fieldpos, success));
@@ -778,6 +781,7 @@ void TestMessageFormat::testMsgFormatSelect(/* char* par */)
     err = U_ZERO_ERROR;
     //Create the MessageFormat with Plural format with embedded select format(nested pattern)
     MessageFormat* msgFmt5 = internalCreate(t5.unescape(), Locale("fr"),err,(char*)"From TestMessageFormat::TestSelectFormat create t5");
+    // with no data the above should fail but it seems to construct an invalid MessageFormat with no reported error. See #13079
     if (!U_FAILURE(err)) {
         //Arguments 
         Formattable testArgs10[] = {"Kirti",(int32_t)6,"female"};  
@@ -1000,7 +1004,7 @@ void TestMessageFormat::testSetLocale()
 
     MessageFormat msg( formatStr, err);
     result = "";
-    FieldPosition pos(0);
+    FieldPosition pos(FieldPosition::DONT_CARE);
     result = msg.format(
         arguments,
         3,
@@ -1072,7 +1076,7 @@ void TestMessageFormat::testFormat()
 
     err = U_ZERO_ERROR;
     MessageFormat msg( formatStr, err);
-    FieldPosition fp(0);
+    FieldPosition fp(FieldPosition::DONT_CARE);
 
     result = "";
     fp = 0;
@@ -1404,7 +1408,7 @@ static void _testCopyConstructor2()
     UnicodeString formatStr("Hello World on {0,date,full}", "");
     UnicodeString resultStr(" ", "");
     UnicodeString result;
-    FieldPosition fp(0);
+    FieldPosition fp(FieldPosition::DONT_CARE);
     UDate d = Calendar::getNow();
     const Formattable fargs( d, Formattable::kIsDate );
 
@@ -1550,7 +1554,7 @@ void TestMessageFormat::TestRBNF(void) {
             if (U_FAILURE(ec)) {
                 errln((UnicodeString)"Failed to parse test argument " + values[j]);
             } else {
-                FieldPosition fp(0);
+                FieldPosition fp(FieldPosition::DONT_CARE);
                 UnicodeString result;
                 fmt->format(args, 1, result, fp, ec);
                 logln((UnicodeString)"value: " + toString(args[0]) + " --> " + result + UnicodeString(" ec: ") + u_errorName(ec));
@@ -1642,7 +1646,7 @@ void TestMessageFormat::TestCompatibleApostrophe() {
     }
 
     Formattable zero0[] = { (int32_t)0 };
-    FieldPosition fieldpos(0);
+    FieldPosition fieldpos(FieldPosition::DONT_CARE);
     UnicodeString buffer1, buffer2;
     assertEquals("incompatible ICU MessageFormat compatibility-apostrophe behavior",
             "ab12'3'4''.yz",
@@ -1846,7 +1850,7 @@ void TestMessageFormat::TestTrimArgumentName() {
         return;
     }
     Formattable args[1] = { (int32_t)2 };
-    FieldPosition ignore(0);
+    FieldPosition ignore(FieldPosition::DONT_CARE);
     UnicodeString result;
     assertEquals("trim-numbered-arg format() failed", "a  #,#2.0  z",
                  m.format(args, 1, result, ignore, errorCode));
@@ -1871,7 +1875,7 @@ void TestMessageFormat::TestSelectOrdinal() {
         return;
     }
     Formattable args[1] = { (int32_t)21 };
-    FieldPosition ignore(0);
+    FieldPosition ignore(FieldPosition::DONT_CARE);
     UnicodeString result;
     assertEquals("plural-and-ordinal format(21) failed", "21 files, 21st file",
                  m.format(args, 1, result, ignore, errorCode), TRUE);