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