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