ICU-6714 Add test for new string prep profiles in ICU4J.
X-SVN-Rev: 25748
This commit is contained in:
parent
7f4e9d2cec
commit
c00b453f63
@ -0,0 +1,170 @@
|
||||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2009, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.test.stringprep;
|
||||
|
||||
import com.ibm.icu.dev.test.TestFmwk;
|
||||
import com.ibm.icu.text.StringPrep;
|
||||
import com.ibm.icu.text.StringPrepParseException;
|
||||
|
||||
/**
|
||||
* @author Michael Ow
|
||||
*
|
||||
*/
|
||||
public class TestStringPrepProfiles extends TestFmwk {
|
||||
public static void main(String[] args) throws Exception {
|
||||
new TestStringPrepProfiles().run(args);
|
||||
}
|
||||
|
||||
/*
|
||||
* The format of the test cases should be the following:
|
||||
* {
|
||||
* Profile name
|
||||
* src string1
|
||||
* expected result1
|
||||
* src string2
|
||||
* expected result2
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* *Note: For expected failures add FAIL to beginning of the source string and for expected result use "FAIL".
|
||||
*/
|
||||
private static String[][] testCases = {
|
||||
{
|
||||
"RFC4013_SASLPREP",
|
||||
"user:\u00A0\u0AC6\u1680\u00ADpassword1",
|
||||
"user: \u0AC6 password1"
|
||||
},
|
||||
{
|
||||
"RFC4011_MIB",
|
||||
"Policy\u034F\u200DBase\u0020d\u1806\u200C",
|
||||
"PolicyBase d"
|
||||
},
|
||||
{
|
||||
"RFC4505_TRACE",
|
||||
"Anony\u0020\u00A0mous\u3000\u0B9D\u034F\u00AD",
|
||||
"Anony\u0020\u00A0mous\u3000\u0B9D\u034F\u00AD"
|
||||
},
|
||||
{
|
||||
"RFC4518_LDAP",
|
||||
"Ldap\uFB01\u00ADTest\u0020\u00A0\u2062ing",
|
||||
"LdapfiTest ing"
|
||||
},
|
||||
{
|
||||
"RFC4518_LDAP_CI",
|
||||
"Ldap\uFB01\u00ADTest\u0020\u00A0\u2062ing12345",
|
||||
"ldapfitest ing12345"
|
||||
},
|
||||
{
|
||||
"RFC3920_RESOURCEPREP",
|
||||
"ServerXM\u2060\uFE00\uFE09PP s p ",
|
||||
"ServerXMPP s p "
|
||||
},
|
||||
{
|
||||
"RFC3920_NODEPREP",
|
||||
"Server\u200DXMPPGreEK\u03D0",
|
||||
"serverxmppgreek\u03B2"
|
||||
},
|
||||
{
|
||||
"RFC3722_ISCSI",
|
||||
"InternetSmallComputer\uFB01\u0032\u2075Interface",
|
||||
"internetsmallcomputerfi25interface",
|
||||
"FAILThisShouldFailBecauseOfThis\u002F",
|
||||
"FAIL"
|
||||
},
|
||||
{
|
||||
"RFC3530_NFS4_CS_PREP",
|
||||
"\u00ADUser\u2060Name@ \u06DDDOMAIN.com",
|
||||
"UserName@ \u06DDDOMAIN.com"
|
||||
},
|
||||
{
|
||||
"RFC3530_NFS4_CS_PREP_CI",
|
||||
"\u00ADUser\u2060Name@ \u06DDDOMAIN.com",
|
||||
"username@ \u06DDdomain.com"
|
||||
},
|
||||
{
|
||||
"RFC3530_NFS4_CIS_PREP",
|
||||
"AA\u200C\u200D @@DomAin.org",
|
||||
"aa @@domain.org"
|
||||
},
|
||||
{
|
||||
"RFC3530_NFS4_MIXED_PREP_PREFIX",
|
||||
"PrefixUser \u007F\uFB01End",
|
||||
"PrefixUser \u007FfiEnd"
|
||||
},
|
||||
{
|
||||
"RFC3530_NFS4_MIXED_PREP_SUFFIX",
|
||||
"SuffixDomain \u007F\uFB01EnD",
|
||||
"suffixdomain \u007Ffiend"
|
||||
}
|
||||
};
|
||||
|
||||
private int getOptionFromProfileName(String profileName) {
|
||||
if (profileName.equals("RFC4013_SASLPREP")) {
|
||||
return StringPrep.RFC4013_SASLPREP;
|
||||
} else if (profileName.equals("RFC4011_MIB")) {
|
||||
return StringPrep.RFC4011_MIB;
|
||||
} else if (profileName.equals("RFC4505_TRACE")) {
|
||||
return StringPrep.RFC4505_TRACE;
|
||||
} else if (profileName.equals("RFC4518_LDAP")) {
|
||||
return StringPrep.RFC4518_LDAP;
|
||||
} else if (profileName.equals("RFC4518_LDAP_CI")) {
|
||||
return StringPrep.RFC4518_LDAP_CI;
|
||||
} else if (profileName.equals("RFC3920_RESOURCEPREP")) {
|
||||
return StringPrep.RFC3920_RESOURCEPREP;
|
||||
} else if (profileName.equals("RFC3920_NODEPREP")) {
|
||||
return StringPrep.RFC3920_NODEPREP;
|
||||
} else if (profileName.equals("RFC3722_ISCSI")) {
|
||||
return StringPrep.RFC3722_ISCSI;
|
||||
} else if (profileName.equals("RFC3530_NFS4_CS_PREP")) {
|
||||
return StringPrep.RFC3530_NFS4_CS_PREP;
|
||||
} else if (profileName.equals("RFC3530_NFS4_CS_PREP_CI")) {
|
||||
return StringPrep.RFC3530_NFS4_CS_PREP_CI;
|
||||
} else if (profileName.equals("RFC3530_NFS4_CIS_PREP")) {
|
||||
return StringPrep.RFC3530_NFS4_CIS_PREP;
|
||||
} else if (profileName.equals("RFC3530_NFS4_MIXED_PREP_PREFIX")) {
|
||||
return StringPrep.RFC3530_NFS4_MIXED_PREP_PREFIX;
|
||||
} else if (profileName.equals("RFC3530_NFS4_MIXED_PREP_SUFFIX")) {
|
||||
return StringPrep.RFC3530_NFS4_MIXED_PREP_SUFFIX;
|
||||
}
|
||||
|
||||
// Should not happen.
|
||||
return -1;
|
||||
}
|
||||
|
||||
public void TestProfiles() {
|
||||
String profileName = null;
|
||||
StringPrep sprep = null;
|
||||
String result = null;
|
||||
String src = null;
|
||||
String expected = null;
|
||||
|
||||
for (int i = 0; i < testCases.length; i++) {
|
||||
for (int j = 0; j < testCases[i].length; j++) {
|
||||
if (j == 0) {
|
||||
profileName = testCases[i][j];
|
||||
|
||||
sprep = StringPrep.getInstance(getOptionFromProfileName(profileName));
|
||||
} else {
|
||||
src = testCases[i][j];
|
||||
expected = testCases[i][++j];
|
||||
try {
|
||||
result = sprep.prepare(src, StringPrep.ALLOW_UNASSIGNED);
|
||||
if (src.startsWith("FAIL")) {
|
||||
errln("Failed: Expected error for Test[" + i +"] Profile: " + profileName);
|
||||
} else if (!result.equals(expected)) {
|
||||
errln("Failed: Test[" + i + "] Result string does not match expected string for StringPrep test for profile: " + profileName);
|
||||
}
|
||||
} catch (StringPrepParseException ex) {
|
||||
if (!src.startsWith("FAIL")) {
|
||||
errln("Failed: Test[" + i + "] StringPrep profile " + profileName + " got error: " + ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user