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