1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 2005-2014, International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 /************************************************************************ 7 * Tests for the UText and UTextIterator text abstraction classses 8 * 9 ************************************************************************/ 10 11 12 #ifndef UTXTTEST_H 13 #define UTXTTEST_H 14 15 #include "unicode/utypes.h" 16 #include "unicode/unistr.h" 17 #include "unicode/utext.h" 18 19 #include "intltest.h" 20 21 /** 22 * @test 23 * @summary Testing the Replaceable class 24 */ 25 class UTextTest : public IntlTest { 26 public: 27 UTextTest(); 28 virtual ~UTextTest(); 29 30 void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL); 31 void TextTest(); 32 void ErrorTest(); 33 void FreezeTest(); 34 void Ticket5560(); 35 void Ticket6847(); 36 void Ticket10562(); 37 void Ticket10983(); 38 39 private: 40 struct m { // Map between native indices & code points. 41 int nativeIdx; 42 UChar32 cp; 43 }; 44 45 void TestString(const UnicodeString &s); 46 void TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *cpMap); 47 void TestAccessNoClone(const UnicodeString &us, UText *ut, int cpCount, m *cpMap); 48 void TestCMR (const UnicodeString &us, UText *ut, int cpCount, m *nativeMap, m *utf16Map); 49 void TestCopyMove(const UnicodeString &us, UText *ut, UBool move, 50 int32_t nativeStart, int32_t nativeLimit, int32_t nativeDest, 51 int32_t u16Start, int32_t u16Limit, int32_t u16Dest); 52 void TestReplace(const UnicodeString &us, // reference UnicodeString in which to do the replace 53 UText *ut, // UnicodeText object under test. 54 int32_t nativeStart, // Range to be replaced, in UText native units. 55 int32_t nativeLimit, 56 int32_t u16Start, // Range to be replaced, in UTF-16 units 57 int32_t u16Limit, // for use in the reference UnicodeString. 58 const UnicodeString &repStr); // The replacement string 59 60 61 }; 62 63 64 #endif 65