| /******************************************************************** |
| * COPYRIGHT: |
| * Copyright (c) 1997-2015, International Business Machines Corporation and |
| * others. All Rights Reserved. |
| ********************************************************************/ |
| |
| #ifndef UNICODESTRINGTEST_H |
| #define UNICODESTRINGTEST_H |
| |
| #include "unicode/locid.h" |
| #include "unicode/unistr.h" |
| #include "intltest.h" |
| |
| U_NAMESPACE_BEGIN |
| |
| class Appendable; |
| |
| U_NAMESPACE_END |
| |
| /** |
| * Perform API and functionality tests for class UnicodeString |
| **/ |
| class UnicodeStringTest: public IntlTest { |
| public: |
| UnicodeStringTest() {} |
| virtual ~UnicodeStringTest(); |
| |
| void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); |
| |
| /** |
| * Test some basic methods (insert, remove, replace, ...) |
| **/ |
| void TestBasicManipulation(void); |
| /** |
| * Test the methods for comparison |
| **/ |
| void TestCompare(void); |
| /** |
| * Test the methods for extracting |
| **/ |
| void TestExtract(void); |
| /** |
| * More extensively test methods for removing and replacing |
| **/ |
| void TestRemoveReplace(void); |
| /** |
| * Test language specific case conversions |
| **/ |
| void TestSearching(void); |
| /** |
| * Test methods for padding, trimmimg and truncating |
| **/ |
| void TestSpacePadding(void); |
| /** |
| * Test methods startsWith and endsWith |
| **/ |
| void TestPrefixAndSuffix(void); |
| void TestStartsWithAndEndsWithNulTerminated(); |
| /** |
| * Test method findAndReplace |
| **/ |
| void TestFindAndReplace(void); |
| /** |
| * Test method reverse |
| **/ |
| void TestReverse(void); |
| /** |
| * Test a few miscellaneous methods (isBogus, hashCode,...) |
| **/ |
| void TestMiscellaneous(void); |
| /** |
| * Test the functionality of allocating UnicodeStrings on the stack |
| **/ |
| void TestStackAllocation(void); |
| /** |
| * Test the unescape() function. |
| */ |
| void TestUnescape(void); |
| |
| void _testUnicodeStringHasMoreChar32Than(const UnicodeString &s, int32_t start, int32_t length, int32_t number); |
| void TestCountChar32(); |
| void TestBogus(); |
| void TestStringEnumeration(); |
| void TestNameSpace(); |
| void TestUTF32(); |
| void TestUTF8(); |
| void TestReadOnlyAlias(); |
| void doTestAppendable(UnicodeString &dest, Appendable &app); |
| void TestAppendable(); |
| void TestUnicodeStringImplementsAppendable(); |
| void TestSizeofUnicodeString(); |
| void TestMoveSwap(); |
| }; |
| |
| class StringCaseTest: public IntlTest { |
| public: |
| StringCaseTest(); |
| virtual ~StringCaseTest(); |
| |
| void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0); |
| |
| void TestCaseConversion(); |
| |
| void TestCasingImpl(const UnicodeString &input, |
| const UnicodeString &output, |
| int32_t whichCase, |
| void *iter, const char *localeID, uint32_t options); |
| void TestCasing(); |
| void TestFullCaseFoldingIterator(); |
| void TestGreekUpper(); |
| |
| private: |
| void assertGreekUpper(const char *s, const char *expected); |
| |
| Locale GREEK_LOCALE_; |
| }; |
| |
| #endif |