X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..e4f10fab0c078f399c9deef476d9c9b73b47dff8:/icuSources/test/intltest/trnserr.cpp diff --git a/icuSources/test/intltest/trnserr.cpp b/icuSources/test/intltest/trnserr.cpp index 46155390..727f0aed 100644 --- a/icuSources/test/intltest/trnserr.cpp +++ b/icuSources/test/intltest/trnserr.cpp @@ -1,17 +1,15 @@ /******************************************************************** - * COPYRIGHT: - * Copyright (c) 2001-2004, International Business Machines Corporation and - * others. All Rights Reserved. + * Copyright (c) 2001-2009, International Business Machines + * Corporation and others. All Rights Reserved. + ********************************************************************* + * This test program is intended for testing error conditions of the + * transliterator APIs to make sure the exceptions are raised where + * necessary. + * + * Date Name Description + * 11/14/2001 hshih Creation. + * ********************************************************************/ -/************************************************************************ -* This test program is intended for testing error conditions of the -* transliterator APIs to make sure the exceptions are raised where -* necessary. -* -* Date Name Description -* 11/14/2001 hshih Creation. -* -************************************************************************/ #include "unicode/utypes.h" @@ -22,10 +20,8 @@ #include "unicode/utypes.h" #include "unicode/translit.h" #include "unicode/uniset.h" -#include "rbt.h" #include "unicode/unifilt.h" #include "cpdtrans.h" -#include "nultrans.h" #include #include #include @@ -43,6 +39,7 @@ TransliteratorErrorTest::runIndexedTest(int32_t index, UBool exec, TESTCASE(0,TestTransliteratorErrors); TESTCASE(1, TestUnicodeSetErrors); TESTCASE(2, TestRBTErrors); + TESTCASE(3, TestCoverage); //TESTCASE(3, TestUniToHexErrors); //TESTCASE(4, TestHexToUniErrors); // TODO: Add a subclass to test clone(). @@ -66,7 +63,7 @@ void TransliteratorErrorTest::TestTransliteratorErrors() { Transliterator* t= Transliterator::createInstance(trans, UTRANS_FORWARD, parseError, status); if(t==0 || U_FAILURE(status)){ - errln("FAIL: construction of Latin-Greek"); + dataerrln("FAIL: construction of Latin-Greek - %s", u_errorName(status)); return; } pos.contextLimit = 0; @@ -140,11 +137,9 @@ void TransliteratorErrorTest::TestTransliteratorErrors() { if(t1!=0 || U_SUCCESS(status)){ delete t1; errln("FAIL: construction of bogus ID \"LATINGREEK-GREEKLATIN\""); - } else { - delete t1; } status = U_ZERO_ERROR; - Transliterator* t2 = new RuleBasedTransliterator(newID, newIDRules, UTRANS_FORWARD, status); + Transliterator* t2 = Transliterator::createFromRules(newID, newIDRules, UTRANS_FORWARD, parseError, status); if (U_SUCCESS(status)) { Transliterator* t3 = t2->createInverse(status); if (U_SUCCESS(status)) { @@ -218,18 +213,18 @@ void TransliteratorErrorTest::TestRBTErrors() { UnicodeString rules="ab>y"; UnicodeString id="MyRandom-YReverse"; - UnicodeString goodPattern="[[:L:]&[\\u0000-\\uFFFF]]"; /* all BMP letters */ + //UnicodeString goodPattern="[[:L:]&[\\u0000-\\uFFFF]]"; /* all BMP letters */ UErrorCode status = U_ZERO_ERROR; UParseError parseErr; - UnicodeSet *set = new UnicodeSet(goodPattern, status); + /*UnicodeSet *set = new UnicodeSet(goodPattern, status); if (U_FAILURE(status)) { errln("FAIL: Was not able to create a good UnicodeSet based on valid patterns."); return; - } - RuleBasedTransliterator *t = new RuleBasedTransliterator(id, rules, UTRANS_REVERSE, set, parseErr, status); + }*/ + Transliterator *t = Transliterator::createFromRules(id, rules, UTRANS_REVERSE, parseErr, status); if (U_FAILURE(status)) { errln("FAIL: Was not able to create a good RBT to test registration."); - delete set; + //delete set; return; } Transliterator::registerInstance(t); @@ -264,4 +259,25 @@ void TransliteratorErrorTest::TestRBTErrors() { // delete t; //} +class StubTransliterator: public Transliterator{ +public: + StubTransliterator(): Transliterator(UNICODE_STRING_SIMPLE("Any-Null"), 0) {} + virtual void handleTransliterate(Replaceable& ,UTransPosition& offsets,UBool) const { + offsets.start = offsets.limit; + } + + virtual UClassID getDynamicClassID() const{ + static char classID = 0; + return (UClassID)&classID; + } +}; + +void TransliteratorErrorTest::TestCoverage() { + StubTransliterator stub; + + if (stub.clone() != NULL){ + errln("FAIL: default Transliterator::clone() should return NULL"); + } +} + #endif /* #if !UCONFIG_NO_TRANSLITERATION */