Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / icu / source / test / intltest / utxttest.h
1 /********************************************************************
2  * COPYRIGHT: 
3  * Copyright (c) 2005-2012, 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
37 private:
38     struct m {                              // Map between native indices & code points.
39         int         nativeIdx;
40         UChar32     cp;
41     };
42
43     void TestString(const UnicodeString &s);
44     void TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *cpMap);
45     void TestAccessNoClone(const UnicodeString &us, UText *ut, int cpCount, m *cpMap);
46     void TestCMR   (const UnicodeString &us, UText *ut, int cpCount, m *nativeMap, m *utf16Map);
47     void TestCopyMove(const UnicodeString &us, UText *ut, UBool move,
48                       int32_t nativeStart, int32_t nativeLimit, int32_t nativeDest,
49                       int32_t u16Start, int32_t u16Limit, int32_t u16Dest);
50     void TestReplace(const UnicodeString &us,  // reference UnicodeString in which to do the replace 
51             UText         *ut,                 // UnicodeText object under test.
52             int32_t       nativeStart,         // Range to be replaced, in UText native units. 
53             int32_t       nativeLimit,
54             int32_t       u16Start,            // Range to be replaced, in UTF-16 units
55             int32_t       u16Limit,            //    for use in the reference UnicodeString.
56             const UnicodeString &repStr);      // The replacement string
57
58
59 };
60
61
62 #endif