1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/******************************************************************** 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * COPYRIGHT: 383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * Copyright (c) 1997-2012, International Business Machines Corporation and 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ********************************************************************/ 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef UNICODESTRINGTEST_H 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define UNICODESTRINGTEST_H 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/unistr.h" 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "intltest.h" 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 13b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehoU_NAMESPACE_BEGIN 14b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho 15b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehoclass Appendable; 16b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho 17b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehoU_NAMESPACE_END 18b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Perform API and functionality tests for class UnicodeString 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruclass UnicodeStringTest: public IntlTest { 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeStringTest() {} 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual ~UnicodeStringTest(); 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test some basic methods (insert, remove, replace, ...) 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestBasicManipulation(void); 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the methods for comparison 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestCompare(void); 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the methods for extracting 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestExtract(void); 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * More extensively test methods for removing and replacing 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestRemoveReplace(void); 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test language specific case conversions 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestSearching(void); 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods for padding, trimmimg and truncating 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestSpacePadding(void); 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test methods startsWith and endsWith 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestPrefixAndSuffix(void); 57b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestStartsWithAndEndsWithNulTerminated(); 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test method findAndReplace 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestFindAndReplace(void); 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test method reverse 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestReverse(void); 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test a few miscellaneous methods (isBogus, hashCode,...) 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestMiscellaneous(void); 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the functionality of allocating UnicodeStrings on the stack 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru **/ 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestStackAllocation(void); 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the unescape() function. 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestUnescape(void); 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void _testUnicodeStringHasMoreChar32Than(const UnicodeString &s, int32_t start, int32_t length, int32_t number); 80b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestCountChar32(); 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestBogus(); 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestStringEnumeration(); 83b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestNameSpace(); 84b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestUTF32(); 85b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestUTF8(); 86b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestReadOnlyAlias(); 87b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void doTestAppendable(UnicodeString &dest, Appendable &app); 88b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestAppendable(); 89b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestUnicodeStringImplementsAppendable(); 90b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestSizeofUnicodeString(); 91b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 92b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 93b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruclass StringCaseTest: public IntlTest { 94b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru StringCaseTest() {} 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual ~StringCaseTest(); 9783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0); 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestCaseConversion(); 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestCasingImpl(const UnicodeString &input, 103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UnicodeString &output, 104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t whichCase, 105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void *iter, const char *localeID, uint32_t options); 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void TestCasing(); 10783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius void TestFullCaseFoldingIterator(); 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 111