OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ******************************************************************************* |
| 3 * |
| 4 * Copyright (C) 2003-2006, International Business Machines |
| 5 * Corporation and others. All Rights Reserved. |
| 6 * |
| 7 ******************************************************************************* |
| 8 * file name: testidna.h |
| 9 * encoding: US-ASCII |
| 10 * tab size: 8 (not used) |
| 11 * indentation:4 |
| 12 * |
| 13 * created on: 2003feb1 |
| 14 * created by: Ram Viswanadha |
| 15 */ |
| 16 |
| 17 #ifndef TESTIDNA_H |
| 18 #define TESTIDNA_H |
| 19 |
| 20 #include "unicode/utypes.h" |
| 21 |
| 22 #if !UCONFIG_NO_IDNA && !UCONFIG_NO_TRANSLITERATION |
| 23 |
| 24 #include "intltest.h" |
| 25 #include "unicode/parseerr.h" |
| 26 #include "unicode/uidna.h" |
| 27 |
| 28 U_CDECL_BEGIN |
| 29 typedef int32_t |
| 30 (U_EXPORT2 *TestFunc) ( const UChar *src, int32_t srcLength, |
| 31 UChar *dest, int32_t destCapacity, |
| 32 int32_t options, UParseError *parseError, |
| 33 UErrorCode *status); |
| 34 typedef int32_t |
| 35 (U_EXPORT2 *CompareFunc) (const UChar *s1, int32_t s1Len, |
| 36 const UChar *s2, int32_t s2Len, |
| 37 int32_t options, |
| 38 UErrorCode *status); |
| 39 |
| 40 |
| 41 U_CDECL_END |
| 42 |
| 43 // test the API |
| 44 |
| 45 class NamePrepTransform; |
| 46 |
| 47 /** |
| 48 * @test |
| 49 * @summary General test of HexadecimalToUnicodeTransliterator |
| 50 */ |
| 51 class TestIDNA : public IntlTest { |
| 52 public: |
| 53 void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=
NULL); |
| 54 void TestDataFile(); |
| 55 void TestToASCII(); |
| 56 void TestToUnicode(); |
| 57 void TestIDNToUnicode(); |
| 58 void TestIDNToASCII(); |
| 59 void TestCompare(); |
| 60 void TestErrorCases(); |
| 61 void TestChaining(); |
| 62 void TestRootLabelSeparator(); |
| 63 void TestCompareReferenceImpl(); |
| 64 void TestRefIDNA(); |
| 65 void TestIDNAMonkeyTest(); |
| 66 void TestConformance(); |
| 67 static NamePrepTransform* getInstance(UErrorCode& status); |
| 68 static NamePrepTransform* gPrep; |
| 69 virtual ~TestIDNA(); |
| 70 |
| 71 private: |
| 72 void testToASCII(const char* testName, TestFunc func); |
| 73 void testToUnicode(const char* testName, TestFunc func); |
| 74 void testIDNToUnicode(const char* testName, TestFunc func); |
| 75 void testIDNToASCII(const char* testName, TestFunc func); |
| 76 void testCompare(const char* testName, CompareFunc func); |
| 77 void testChaining(const char* toASCIIName, TestFunc toASCII, |
| 78 const char* toUnicodeName, TestFunc toUnicode); |
| 79 void debug(const UChar* src, int32_t srcLength, int32_t options); |
| 80 // main testing functions |
| 81 void testAPI(const UChar *src, const UChar *expected, const char *testName, |
| 82 UBool useSTD3ASCIIRules, UErrorCode expectedStatus, |
| 83 UBool doCompare, UBool testUnassigned, TestFunc func, UBool testSTD
3ASCIIRules=TRUE); |
| 84 |
| 85 void testCompare(const UChar* s1, int32_t s1Len, |
| 86 const UChar* s2, int32_t s2Len, |
| 87 const char* testName, CompareFunc func, |
| 88 UBool isEqual); |
| 89 |
| 90 void testErrorCases(const char* IDNToASCIIName, TestFunc IDNToASCII, |
| 91 const char* IDNToUnicodeName, TestFunc IDNToUnicode); |
| 92 |
| 93 void testChaining(const UChar* src,int32_t numIterations,const char* testNam
e, |
| 94 UBool useSTD3ASCIIRules, UBool caseInsensitive, TestFunc func)
; |
| 95 |
| 96 void testRootLabelSeparator(const char* testName, CompareFunc func, |
| 97 const char* IDNToASCIIName, TestFunc IDNToASCII, |
| 98 const char* IDNToUnicodeName, TestFunc IDNToUnicode)
; |
| 99 |
| 100 void testCompareReferenceImpl(const UChar* src, int32_t srcLen); |
| 101 |
| 102 UnicodeString testCompareReferenceImpl(UnicodeString& src, |
| 103 TestFunc refIDNA, const char* refIDNAName, |
| 104 TestFunc uIDNA, const char* uIDNAName, |
| 105 int32_t options); |
| 106 |
| 107 void testConformance(const char* toASCIIName, TestFunc toASCII, |
| 108 const char* IDNToASCIIName, TestFunc IDNToASCII, |
| 109 const char* IDNToUnicodeName, TestFunc IDNToUnicode, |
| 110 const char* toUnicodeName, TestFunc toUnicode |
| 111 ); |
| 112 |
| 113 }; |
| 114 |
| 115 // test the TRIE data structure |
| 116 int testData(TestIDNA& test); |
| 117 |
| 118 #endif /* #if !UCONFIG_NO_IDNA */ |
| 119 |
| 120 #endif |
OLD | NEW |