summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-50.1/test/intltest/testidna.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-50.1/test/intltest/testidna.h')
-rw-r--r--Build/source/libs/icu/icu-50.1/test/intltest/testidna.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-50.1/test/intltest/testidna.h b/Build/source/libs/icu/icu-50.1/test/intltest/testidna.h
new file mode 100644
index 00000000000..58567df59fd
--- /dev/null
+++ b/Build/source/libs/icu/icu-50.1/test/intltest/testidna.h
@@ -0,0 +1,120 @@
+/*
+ *******************************************************************************
+ *
+ * Copyright (C) 2003-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ *******************************************************************************
+ * file name: testidna.h
+ * encoding: US-ASCII
+ * tab size: 8 (not used)
+ * indentation:4
+ *
+ * created on: 2003feb1
+ * created by: Ram Viswanadha
+ */
+
+#ifndef TESTIDNA_H
+#define TESTIDNA_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_IDNA && !UCONFIG_NO_TRANSLITERATION
+
+#include "intltest.h"
+#include "unicode/parseerr.h"
+#include "unicode/uidna.h"
+
+U_CDECL_BEGIN
+typedef int32_t
+(U_EXPORT2 *TestFunc) ( const UChar *src, int32_t srcLength,
+ UChar *dest, int32_t destCapacity,
+ int32_t options, UParseError *parseError,
+ UErrorCode *status);
+typedef int32_t
+(U_EXPORT2 *CompareFunc) (const UChar *s1, int32_t s1Len,
+ const UChar *s2, int32_t s2Len,
+ int32_t options,
+ UErrorCode *status);
+
+
+U_CDECL_END
+
+// test the API
+
+class NamePrepTransform;
+
+/**
+ * @test
+ * @summary General test of HexadecimalToUnicodeTransliterator
+ */
+class TestIDNA : public IntlTest {
+public:
+ void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
+ void TestDataFile();
+ void TestToASCII();
+ void TestToUnicode();
+ void TestIDNToUnicode();
+ void TestIDNToASCII();
+ void TestCompare();
+ void TestErrorCases();
+ void TestChaining();
+ void TestRootLabelSeparator();
+ void TestCompareReferenceImpl();
+ void TestRefIDNA();
+ void TestIDNAMonkeyTest();
+ void TestConformance();
+ static NamePrepTransform* getInstance(UErrorCode& status);
+ static NamePrepTransform* gPrep;
+ virtual ~TestIDNA();
+
+private:
+ void testToASCII(const char* testName, TestFunc func);
+ void testToUnicode(const char* testName, TestFunc func);
+ void testIDNToUnicode(const char* testName, TestFunc func);
+ void testIDNToASCII(const char* testName, TestFunc func);
+ void testCompare(const char* testName, CompareFunc func);
+ void testChaining(const char* toASCIIName, TestFunc toASCII,
+ const char* toUnicodeName, TestFunc toUnicode);
+ void debug(const UChar* src, int32_t srcLength, int32_t options);
+ // main testing functions
+ void testAPI(const UChar *src, const UChar *expected, const char *testName,
+ UBool useSTD3ASCIIRules, UErrorCode expectedStatus,
+ UBool doCompare, UBool testUnassigned, TestFunc func, UBool testSTD3ASCIIRules=TRUE);
+
+ void testCompare(const UChar* s1, int32_t s1Len,
+ const UChar* s2, int32_t s2Len,
+ const char* testName, CompareFunc func,
+ UBool isEqual);
+
+ void testErrorCases(const char* IDNToASCIIName, TestFunc IDNToASCII,
+ const char* IDNToUnicodeName, TestFunc IDNToUnicode);
+
+ void testChaining(const UChar* src,int32_t numIterations,const char* testName,
+ UBool useSTD3ASCIIRules, UBool caseInsensitive, TestFunc func);
+
+ void testRootLabelSeparator(const char* testName, CompareFunc func,
+ const char* IDNToASCIIName, TestFunc IDNToASCII,
+ const char* IDNToUnicodeName, TestFunc IDNToUnicode);
+
+ void testCompareReferenceImpl(const UChar* src, int32_t srcLen);
+
+ UnicodeString testCompareReferenceImpl(UnicodeString& src,
+ TestFunc refIDNA, const char* refIDNAName,
+ TestFunc uIDNA, const char* uIDNAName,
+ int32_t options);
+
+ void testConformance(const char* toASCIIName, TestFunc toASCII,
+ const char* IDNToASCIIName, TestFunc IDNToASCII,
+ const char* IDNToUnicodeName, TestFunc IDNToUnicode,
+ const char* toUnicodeName, TestFunc toUnicode
+ );
+
+};
+
+// test the TRIE data structure
+int testData(TestIDNA& test);
+
+#endif /* #if !UCONFIG_NO_IDNA */
+
+#endif