Home | History | Annotate | Download | only in intltest
      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