Home | History | Annotate | Download | only in stringprep
      1 /* GENERATED SOURCE. DO NOT MODIFY. */
      2 //  2016 and later: Unicode, Inc. and others.
      3 // License & terms of use: http://www.unicode.org/copyright.html#License
      4 /*
      5  *******************************************************************************
      6  * Copyright (C) 2003-2011, International Business Machines Corporation and    *
      7  * others. All Rights Reserved.                                                *
      8  *******************************************************************************
      9 */
     10 package android.icu.dev.test.stringprep;
     11 
     12 import android.icu.text.IDNA;
     13 import android.icu.text.StringPrepParseException;
     14 import android.icu.testsharding.MainTestShard;
     15 
     16 /**
     17  * @author ram
     18  *
     19  * To change the template for this generated type comment go to
     20  * Window>Preferences>Java>Code Generation>Code and Comments
     21  */
     22 @MainTestShard
     23 public class TestData {
     24     public static final char[][] unicodeIn ={
     25         {
     26             0x0644, 0x064A, 0x0647, 0x0645, 0x0627, 0x0628, 0x062A, 0x0643, 0x0644,
     27             0x0645, 0x0648, 0x0634, 0x0639, 0x0631, 0x0628, 0x064A, 0x061F
     28         },
     29         {
     30             0x4ED6, 0x4EEC, 0x4E3A, 0x4EC0, 0x4E48, 0x4E0D, 0x8BF4, 0x4E2D, 0x6587,
     31 
     32         },
     33         {
     34             0x0050, 0x0072, 0x006F, 0x010D, 0x0070, 0x0072, 0x006F, 0x0073, 0x0074,
     35             0x011B, 0x006E, 0x0065, 0x006D, 0x006C, 0x0075, 0x0076, 0x00ED, 0x010D,
     36             0x0065, 0x0073, 0x006B, 0x0079,
     37         },
     38         {
     39             0x05DC, 0x05DE, 0x05D4, 0x05D4, 0x05DD, 0x05E4, 0x05E9, 0x05D5, 0x05D8,
     40             0x05DC, 0x05D0, 0x05DE, 0x05D3, 0x05D1, 0x05E8, 0x05D9, 0x05DD, 0x05E2,
     41             0x05D1, 0x05E8, 0x05D9, 0x05EA,
     42         },
     43         {
     44             0x092F, 0x0939, 0x0932, 0x094B, 0x0917, 0x0939, 0x093F, 0x0928, 0x094D,
     45             0x0926, 0x0940, 0x0915, 0x094D, 0x092F, 0x094B, 0x0902, 0x0928, 0x0939,
     46             0x0940, 0x0902, 0x092C, 0x094B, 0x0932, 0x0938, 0x0915, 0x0924, 0x0947,
     47             0x0939, 0x0948, 0x0902,
     48         },
     49         {
     50             0x306A, 0x305C, 0x307F, 0x3093, 0x306A, 0x65E5, 0x672C, 0x8A9E, 0x3092,
     51             0x8A71, 0x3057, 0x3066, 0x304F, 0x308C, 0x306A, 0x3044, 0x306E, 0x304B,
     52 
     53         },
     54     /*
     55         {
     56             0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
     57             0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
     58             0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C,
     59         },
     60     */
     61         {
     62             0x043F, 0x043E, 0x0447, 0x0435, 0x043C, 0x0443, 0x0436, 0x0435, 0x043E,
     63             0x043D, 0x0438, 0x043D, 0x0435, 0x0433, 0x043E, 0x0432, 0x043E, 0x0440,
     64             0x044F, 0x0442, 0x043F, 0x043E, 0x0440, 0x0443, 0x0441, 0x0441, 0x043A,
     65             0x0438,
     66         },
     67         {
     68             0x0050, 0x006F, 0x0072, 0x0071, 0x0075, 0x00E9, 0x006E, 0x006F, 0x0070,
     69             0x0075, 0x0065, 0x0064, 0x0065, 0x006E, 0x0073, 0x0069, 0x006D, 0x0070,
     70             0x006C, 0x0065, 0x006D, 0x0065, 0x006E, 0x0074, 0x0065, 0x0068, 0x0061,
     71             0x0062, 0x006C, 0x0061, 0x0072, 0x0065, 0x006E, 0x0045, 0x0073, 0x0070,
     72             0x0061, 0x00F1, 0x006F, 0x006C,
     73         },
     74         {
     75             0x4ED6, 0x5011, 0x7232, 0x4EC0, 0x9EBD, 0x4E0D, 0x8AAA, 0x4E2D, 0x6587,
     76 
     77         },
     78         {
     79             0x0054, 0x1EA1, 0x0069, 0x0073, 0x0061, 0x006F, 0x0068, 0x1ECD, 0x006B,
     80             0x0068, 0x00F4, 0x006E, 0x0067, 0x0074, 0x0068, 0x1EC3, 0x0063, 0x0068,
     81             0x1EC9, 0x006E, 0x00F3, 0x0069, 0x0074, 0x0069, 0x1EBF, 0x006E, 0x0067,
     82             0x0056, 0x0069, 0x1EC7, 0x0074,
     83         },
     84         {
     85             0x0033, 0x5E74, 0x0042, 0x7D44, 0x91D1, 0x516B, 0x5148, 0x751F,
     86         },
     87         {
     88             0x5B89, 0x5BA4, 0x5948, 0x7F8E, 0x6075, 0x002D, 0x0077, 0x0069, 0x0074,
     89             0x0068, 0x002D, 0x0053, 0x0055, 0x0050, 0x0045, 0x0052, 0x002D, 0x004D,
     90             0x004F, 0x004E, 0x004B, 0x0045, 0x0059, 0x0053,
     91         },
     92         {
     93             0x0048, 0x0065, 0x006C, 0x006C, 0x006F, 0x002D, 0x0041, 0x006E, 0x006F,
     94             0x0074, 0x0068, 0x0065, 0x0072, 0x002D, 0x0057, 0x0061, 0x0079, 0x002D,
     95             0x305D, 0x308C, 0x305E, 0x308C, 0x306E, 0x5834, 0x6240,
     96         },
     97         {
     98             0x3072, 0x3068, 0x3064, 0x5C4B, 0x6839, 0x306E, 0x4E0B, 0x0032,
     99         },
    100         {
    101             0x004D, 0x0061, 0x006A, 0x0069, 0x3067, 0x004B, 0x006F, 0x0069, 0x3059,
    102             0x308B, 0x0035, 0x79D2, 0x524D,
    103         },
    104         {
    105             0x30D1, 0x30D5, 0x30A3, 0x30FC, 0x0064, 0x0065, 0x30EB, 0x30F3, 0x30D0,
    106 
    107         },
    108         {
    109             0x305D, 0x306E, 0x30B9, 0x30D4, 0x30FC, 0x30C9, 0x3067,
    110         },
    111         // test non-BMP code points
    112         {
    113             0xD800, 0xDF00, 0xD800, 0xDF01, 0xD800, 0xDF02, 0xD800, 0xDF03, 0xD800, 0xDF05,
    114             0xD800, 0xDF06, 0xD800, 0xDF07, 0xD800, 0xDF09, 0xD800, 0xDF0A, 0xD800, 0xDF0B,
    115 
    116         },
    117         {
    118             0xD800, 0xDF0D, 0xD800, 0xDF0C, 0xD800, 0xDF1E, 0xD800, 0xDF0F, 0xD800, 0xDF16,
    119             0xD800, 0xDF15, 0xD800, 0xDF14, 0xD800, 0xDF12, 0xD800, 0xDF10, 0xD800, 0xDF20,
    120             0xD800, 0xDF21,
    121 
    122         },
    123         // Greek
    124         {
    125             0x03b5, 0x03bb, 0x03bb, 0x03b7, 0x03bd, 0x03b9, 0x03ba, 0x03ac
    126         },
    127         // Maltese
    128         {
    129             0x0062, 0x006f, 0x006e, 0x0121, 0x0075, 0x0073, 0x0061, 0x0127,
    130             0x0127, 0x0061
    131         },
    132         // Russian
    133         {
    134             0x043f, 0x043e, 0x0447, 0x0435, 0x043c, 0x0443, 0x0436, 0x0435,
    135             0x043e, 0x043d, 0x0438, 0x043d, 0x0435, 0x0433, 0x043e, 0x0432,
    136             0x043e, 0x0440, 0x044f, 0x0442, 0x043f, 0x043e, 0x0440, 0x0443,
    137             0x0441, 0x0441, 0x043a, 0x0438
    138         },
    139 
    140     };
    141 
    142     public static final String[] asciiIn = {
    143         "xn--egbpdaj6bu4bxfgehfvwxn",
    144         "xn--ihqwcrb4cv8a8dqg056pqjye",
    145         "xn--Proprostnemluvesky-uyb24dma41a",
    146         "xn--4dbcagdahymbxekheh6e0a7fei0b",
    147         "xn--i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd",
    148         "xn--n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa",
    149     /*  "xn--989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c",*/
    150         "xn--b1abfaaepdrnnbgefbaDotcwatmq2g4l",
    151         "xn--PorqunopuedensimplementehablarenEspaol-fmd56a",
    152         "xn--ihqwctvzc91f659drss3x8bo0yb",
    153         "xn--TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g",
    154         "xn--3B-ww4c5e180e575a65lsy2b",
    155         "xn---with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n",
    156         "xn--Hello-Another-Way--fc4qua05auwb3674vfr0b",
    157         "xn--2-u9tlzr9756bt3uc0v",
    158         "xn--MajiKoi5-783gue6qz075azm5e",
    159         "xn--de-jg4avhby1noc0d",
    160         "xn--d9juau41awczczp",
    161         "XN--097CCDEKGHQJK",
    162         "XN--db8CBHEJLGH4E0AL",
    163         "xn--hxargifdar",                       // Greek
    164         "xn--bonusaa-5bb1da",                   // Maltese
    165         "xn--b1abfaaepdrnnbgefbadotcwatmq2g4l", // Russian (Cyrillic)
    166        };
    167 
    168     public static final String[] domainNames = {
    169         "slip129-37-118-146.nc.us.ibm.net",
    170         "saratoga.pe.utexas.edu",
    171         "dial-120-45.ots.utexas.edu",
    172         "woo-085.dorms.waller.net",
    173         "hd30-049.hil.compuserve.com",
    174         "pem203-31.pe.ttu.edu",
    175         "56K-227.MaxTNT3.pdq.net",
    176         "dial-36-2.ots.utexas.edu",
    177         "slip129-37-23-152.ga.us.ibm.net",
    178         "ts45ip119.cadvision.com",
    179         "sdn-ts-004txaustP05.dialsprint.net",
    180         "bar-tnt1s66.erols.com",
    181         "101.st-louis-15.mo.dial-access.att.net",
    182         "h92-245.Arco.COM",
    183         "dial-13-2.ots.utexas.edu",
    184         "net-redynet29.datamarkets.com.ar",
    185         "ccs-shiva28.reacciun.net.ve",
    186         "7.houston-11.tx.dial-access.att.net",
    187         "ingw129-37-120-26.mo.us.ibm.net",
    188         "dialup6.austintx.com",
    189         "dns2.tpao.gov.tr",
    190         "slip129-37-119-194.nc.us.ibm.net",
    191         "cs7.dillons.co.uk.203.119.193.in-addr.arpa",
    192         "swprd1.innovplace.saskatoon.sk.ca",
    193         "bikini.bologna.maraut.it",
    194         "node91.subnet159-198-79.baxter.com",
    195         "cust19.max5.new-york.ny.ms.uu.net",
    196         "balexander.slip.andrew.cmu.edu",
    197         "pool029.max2.denver.co.dynip.alter.net",
    198         "cust49.max9.new-york.ny.ms.uu.net",
    199         "s61.abq-dialin2.hollyberry.com",
    200 
    201     };
    202 
    203     public static final String[] domainNames1Uni = {
    204         "\u0917\u0928\u0947\u0936.sanjose.ibm.com",
    205         "www.\u0121.com",
    206         //"www.\u00E0\u00B3\u00AF.com",
    207         "www.\u00C2\u00A4.com",
    208         "www.\u00C2\u00A3.com",
    209         // "\\u0025", //'%' (0x0025) produces U_IDNA_STD3_ASCII_RULES_ERROR
    210         // "\\u005C\\u005C", //'\' (0x005C) produces U_IDNA_STD3_ASCII_RULES_ERROR
    211         //"@",
    212         //"\\u002F",
    213         //"www.\\u0021.com",
    214         //"www.\\u0024.com",
    215         //"\\u003f",
    216         // These yeild U_IDNA_PROHIBITED_ERROR
    217         //"\\u00CF\\u0082.com",
    218         //"\\u00CE\\u00B2\\u00C3\\u009Fss.com",
    219         //"\\u00E2\\u0098\\u00BA.com",
    220         "\u00C3\u00BC.com"
    221     };
    222     public static final String[] domainNamesToASCIIOut = {
    223         "xn--31b8a2bwd.sanjose.ibm.com",
    224         "www.xn--vea.com",
    225         //"www.xn--3 -iia80t.com",
    226         "www.xn--bba7j.com",
    227         "www.xn--9a9j.com",
    228        // "\u0025",
    229        // "\u005C\u005C",
    230        // "@",
    231        // "\u002F",
    232        // "www.\u0021.com",
    233        // "www.\u0024.com",
    234        // "\u003f",
    235         "xn--14-ria7423a.com"
    236 
    237     };
    238 
    239     public static final String[] domainNamesToUnicodeOut = {
    240         "\u0917\u0928\u0947\u0936.sanjose.ibm.com",
    241         "www.\u0121.com",
    242         //"www.\u00E0\u0033\u0020\u0304.com",
    243         "www.\u00E2\u00A4.com",
    244         "www.\u00E2\u00A3.com",
    245        // "\u0025",
    246        // "\u005C\u005C",
    247        // "@",
    248        // "\u002F",
    249        // "www.\u0021.com",
    250        // "www.\u0024.com",
    251        // "\u003f",
    252         "\u00E3\u0031\u2044\u0034.com"
    253 
    254     };
    255 
    256 
    257     public static class ErrorCase{
    258 
    259         public char[] unicode;
    260         public String ascii;
    261         public Exception expected;
    262         public boolean useSTD3ASCIIRules;
    263         public boolean testToUnicode;
    264         public boolean testLabel;
    265         ErrorCase(char[] uniIn, String asciiIn, Exception ex,
    266                    boolean std3, boolean testToUni, boolean testlabel){
    267             unicode = uniIn;
    268             ascii = asciiIn;
    269             expected = ex;
    270             useSTD3ASCIIRules = std3;
    271             testToUnicode = testToUni;
    272             testLabel = testlabel;
    273 
    274         }
    275     }
    276     public static final ErrorCase[] errorCases = {
    277 
    278 
    279         new ErrorCase( new char[]{
    280             0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    281             0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
    282             0x070F,/*prohibited*/
    283             0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
    284             0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    285 
    286         },
    287         "www.xn--8mb5595fsoa28orucya378bqre2tcwop06c5qbw82a1rffmae0361dea96b.com",
    288         new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR),
    289         false, true, true),
    290 
    291         new ErrorCase( new char[]{
    292                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    293                 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
    294                 0x0221, 0x0234/*Unassigned code points*/,
    295                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    296 
    297             },
    298             "www.xn--6la2bz548fj1gua391bf1gb1n59ab29a7ia.com",
    299 
    300             new StringPrepParseException("",StringPrepParseException.UNASSIGNED_ERROR),
    301             false, true, true
    302         ),
    303        new ErrorCase( new char[]{
    304                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    305                 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
    306                 0x0644, 0x064A, 0x0647,/*Arabic code points. Cannot mix RTL with LTR*/
    307                 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
    308                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    309 
    310             },
    311             "www.xn--ghBGI4851OiyA33VqrD6Az86C4qF83CtRv93D5xBk15AzfG0nAgA0578DeA71C.com",
    312             new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR),
    313             false, true, true
    314         ),
    315         new ErrorCase( new char[]{
    316                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    317                 /* labels cannot begin with an HYPHEN */
    318                 0x002D, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
    319                 0x002E,
    320                 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
    321                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    322 
    323 
    324             },
    325             "www.xn----b95Ew8SqA315Ao5FbuMlnNmhA.com",
    326             new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
    327             true, true, false
    328         ),
    329         new ErrorCase( new char[]{
    330                 /* correct ACE-prefix followed by unicode */
    331                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    332                 0x0078, 0x006e, 0x002d,0x002d,  /* ACE Prefix */
    333                 0x002D, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
    334                 0x002D,
    335                 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
    336                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    337 
    338 
    339             },
    340             /* wrong ACE-prefix followed by valid ACE-encoded ASCII */
    341             "www.XY-----b91I0V65S96C2A355Cw1E5yCeQr19CsnP1mFfmAE0361DeA96B.com",
    342             new StringPrepParseException("",StringPrepParseException.ACE_PREFIX_ERROR),
    343             false, false, false
    344         ),
    345         /* cannot verify U_IDNA_VERIFICATION_ERROR */
    346 
    347         new ErrorCase( new char[]{
    348             0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    349             0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
    350             0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
    351             0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C,
    352             0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    353 
    354           },
    355           "www.xn--989AoMsVi5E83Db1D2A355Cv1E0vAk1DwRv93D5xBh15A0Dt30A5JpSD879Ccm6FeA98C.com",
    356           new StringPrepParseException("",StringPrepParseException.LABEL_TOO_LONG_ERROR),
    357           false, true, true
    358         ),
    359         new ErrorCase( new char[]{
    360             0x0077, 0x0077, 0x0077, 0x002e, /* www. */
    361             0x0030, 0x0644, 0x064A, 0x0647, 0x0031, /* Arabic code points squashed between EN codepoints */
    362             0x002e, 0x0063, 0x006f, 0x006d, /* com. */
    363 
    364           },
    365           "www.xn--01-tvdmo.com",
    366           new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR),
    367           false, true, true
    368         ),
    369 
    370         new ErrorCase( new char[]{
    371             0x0077, 0x0077, 0x0077, 0x002e, // www.
    372             0x206C, 0x0644, 0x064A, 0x0647, 0x206D, // Arabic code points squashed between BN codepoints
    373             0x002e, 0x0063, 0x006f, 0x006d, // com.
    374 
    375           },
    376           "www.XN--ghbgi278xia.com",
    377           new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR),
    378           false, true, true
    379         ),
    380         new ErrorCase( new char[] {
    381             0x0077, 0x0077, 0x0077, 0x002e, // www.
    382             0x002D, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, // HYPHEN at the start of label
    383             0x002e, 0x0063, 0x006f, 0x006d, // com.
    384 
    385           },
    386           "www.-abcde.com",
    387           new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
    388           true, false /* ToUnicode preserves casing for this case */, false
    389         ),
    390         new ErrorCase( new char[] {
    391             0x0077, 0x0077, 0x0077, 0x002e, // www.
    392             0x0041, 0x0042, 0x0043, 0x0044, 0x0045,0x002D, // HYPHEN at the end of the label
    393             0x002e, 0x0063, 0x006f, 0x006d, // com.
    394 
    395           },
    396           "www.abcde-.com",
    397           new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
    398           true, false /* ToUnicode preserves casing for this case */, false
    399         ),
    400         new ErrorCase( new char[]{
    401             0x0077, 0x0077, 0x0077, 0x002e, // www.
    402             0x0041, 0x0042, 0x0043, 0x0044, 0x0045,0x0040, // Containing non LDH code point
    403             0x002e, 0x0063, 0x006f, 0x006d, // com.
    404 
    405           },
    406           "www.abcde@.com",
    407           new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
    408           true, false /* ToUnicode preserves casing for this case */, false
    409         ),
    410         new ErrorCase( new char[]{
    411             0x0077, 0x0077, 0x0077, 0x002e, // www.
    412              // zero length label
    413             0x002e, 0x0063, 0x006f, 0x006d, // com.
    414           },
    415           "www..com",
    416           new StringPrepParseException("",StringPrepParseException.ZERO_LENGTH_LABEL),
    417           true, true, false
    418         ),
    419     };
    420 
    421 
    422      public static final class ConformanceTestCase{
    423          String comment;
    424          String input;
    425          String output;
    426          String profile;
    427          int flags;
    428          Exception expected;
    429          private static byte[] getBytes(String in){
    430              if(in==null){
    431                  return null;
    432              }
    433              byte[] bytes = new byte[in.length()];
    434              for(int i=0; i < in.length();i++){
    435                  bytes[i] = (byte)in.charAt(i);
    436              }
    437              return bytes;
    438          }
    439          ConformanceTestCase(String comt, String in, String out,
    440                               String prof, int flg, Exception ex)
    441                               {
    442 
    443              try{
    444                  comment = comt;
    445                  byte[] bytes = getBytes(in);
    446                  input = new String(bytes,"UTF-8");
    447                  bytes = getBytes(out);
    448                  output = (bytes==null)? null : new String(bytes,"UTF-8");
    449                  profile = prof;
    450                  flags = flg;
    451                  expected = ex;
    452              }catch (Exception e){
    453                  e.printStackTrace();
    454                  throw new RuntimeException();
    455              }
    456          }
    457        }
    458 
    459        public static final ConformanceTestCase[] conformanceTestCases =
    460        {
    461 
    462          new ConformanceTestCase(
    463            "Case folding ASCII U+0043 U+0041 U+0046 U+0045",
    464            "\u0043\u0041\u0046\u0045", "\u0063\u0061\u0066\u0065",
    465            "Nameprep", IDNA.DEFAULT,
    466            null
    467 
    468          ),
    469          new ConformanceTestCase(
    470            "Case folding 8bit U+00DF (german sharp s)",
    471            "\u00C3\u009F", "\u0073\u0073",
    472            "Nameprep", IDNA.DEFAULT,
    473            null
    474          ),
    475          new ConformanceTestCase(
    476            "Non-ASCII multibyte space character U+1680",
    477            "\u00E1\u009A\u0080", null,
    478            "Nameprep", IDNA.DEFAULT,
    479            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    480          ),
    481          new ConformanceTestCase(
    482            "Non-ASCII 8bit control character U+0085",
    483            "\u00C2\u0085", null,
    484            "Nameprep", IDNA.DEFAULT,
    485            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    486          ),
    487          new ConformanceTestCase(
    488            "Non-ASCII multibyte control character U+180E",
    489            "\u00E1\u00A0\u008E", null,
    490            "Nameprep", IDNA.DEFAULT,
    491            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    492          ),
    493          new ConformanceTestCase(
    494            "Non-ASCII control character U+1D175",
    495            "\u00F0\u009D\u0085\u00B5", null,
    496            "Nameprep", IDNA.DEFAULT,
    497            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    498          ),
    499          new ConformanceTestCase(
    500            "Plane 0 private use character U+F123",
    501            "\u00EF\u0084\u00A3", null,
    502            "Nameprep", IDNA.DEFAULT,
    503            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    504          ),
    505          new ConformanceTestCase(
    506            "Plane 15 private use character U+F1234",
    507            "\u00F3\u00B1\u0088\u00B4", null,
    508            "Nameprep", IDNA.DEFAULT,
    509            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    510          ),
    511          new ConformanceTestCase(
    512            "Plane 16 private use character U+10F234",
    513            "\u00F4\u008F\u0088\u00B4", null,
    514            "Nameprep", IDNA.DEFAULT,
    515            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    516          ),
    517          new ConformanceTestCase(
    518            "Non-character code point U+8FFFE",
    519            "\u00F2\u008F\u00BF\u00BE", null,
    520            "Nameprep", IDNA.DEFAULT,
    521            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    522          ),
    523          new ConformanceTestCase(
    524            "Non-character code point U+10FFFF",
    525            "\u00F4\u008F\u00BF\u00BF", null,
    526            "Nameprep", IDNA.DEFAULT,
    527            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    528          ),
    529      /*
    530          {
    531            "Surrogate code U+DF42",
    532            "\u00ED\u00BD\u0082", null, "Nameprep", InternationalizedDomainNames.DEFAULT,
    533            U_IDNA_PROHIBITED_ERROR
    534          },
    535     */
    536          new ConformanceTestCase(
    537            "Non-plain text character U+FFFD",
    538            "\u00EF\u00BF\u00BD", null,
    539            "Nameprep", IDNA.DEFAULT,
    540            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    541          ),
    542          new ConformanceTestCase(
    543            "Ideographic description character U+2FF5",
    544            "\u00E2\u00BF\u00B5", null,
    545            "Nameprep", IDNA.DEFAULT,
    546            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    547          ),
    548          new ConformanceTestCase(
    549            "Display property character U+0341",
    550            "\u00CD\u0081", "\u00CC\u0081",
    551            "Nameprep", IDNA.DEFAULT,
    552            null
    553 
    554          ),
    555 
    556          new ConformanceTestCase(
    557            "Left-to-right mark U+200E",
    558            "\u00E2\u0080\u008E", "\u00CC\u0081",
    559            "Nameprep", IDNA.DEFAULT,
    560            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    561          ),
    562          new ConformanceTestCase(
    563 
    564            "Deprecated U+202A",
    565            "\u00E2\u0080\u00AA", "\u00CC\u0081",
    566            "Nameprep", IDNA.DEFAULT,
    567            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    568          ),
    569          new ConformanceTestCase(
    570            "Language tagging character U+E0001",
    571            "\u00F3\u00A0\u0080\u0081", "\u00CC\u0081",
    572            "Nameprep", IDNA.DEFAULT,
    573            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    574          ),
    575          new ConformanceTestCase(
    576            "Language tagging character U+E0042",
    577            "\u00F3\u00A0\u0081\u0082", null,
    578            "Nameprep", IDNA.DEFAULT,
    579            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
    580          ),
    581          new ConformanceTestCase(
    582            "Bidi: RandALCat character U+05BE and LCat characters",
    583            "\u0066\u006F\u006F\u00D6\u00BE\u0062\u0061\u0072", null,
    584            "Nameprep", IDNA.DEFAULT,
    585            new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR)
    586          ),
    587          new ConformanceTestCase(
    588            "Bidi: RandALCat character U+FD50 and LCat characters",
    589            "\u0066\u006F\u006F\u00EF\u00B5\u0090\u0062\u0061\u0072", null,
    590            "Nameprep",IDNA.DEFAULT ,
    591            new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR)
    592          ),
    593          new ConformanceTestCase(
    594            "Bidi: RandALCat character U+FB38 and LCat characters",
    595            "\u0066\u006F\u006F\u00EF\u00B9\u00B6\u0062\u0061\u0072", "\u0066\u006F\u006F \u00d9\u008e\u0062\u0061\u0072",
    596            "Nameprep", IDNA.DEFAULT,
    597            null
    598          ),
    599          new ConformanceTestCase(
    600            "Bidi: RandALCat without trailing RandALCat U+0627 U+0031",
    601            "\u00D8\u00A7\u0031", null,
    602            "Nameprep", IDNA.DEFAULT,
    603            new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR)
    604          ),
    605          new ConformanceTestCase(
    606            "Bidi: RandALCat character U+0627 U+0031 U+0628",
    607            "\u00D8\u00A7\u0031\u00D8\u00A8", "\u00D8\u00A7\u0031\u00D8\u00A8",
    608            "Nameprep", IDNA.DEFAULT,
    609            null
    610          ),
    611          new ConformanceTestCase(
    612            "Unassigned code point U+E0002",
    613            "\u00F3\u00A0\u0080\u0082", null,
    614            "Nameprep", IDNA.DEFAULT,
    615            new StringPrepParseException("",StringPrepParseException.UNASSIGNED_ERROR)
    616          ),
    617 
    618     /*  // Invalid UTF-8
    619          {
    620            "Larger test (shrinking)",
    621            "X\u00C2\u00AD\u00C3\u00DF\u00C4\u00B0\u00E2\u0084\u00A1\u006a\u00cc\u008c\u00c2\u00a0\u00c2"
    622            "\u00aa\u00ce\u00b0\u00e2\u0080\u0080", "xssi\u00cc\u0087""tel\u00c7\u00b0 a\u00ce\u00b0 ",
    623            "Nameprep",
    624            InternationalizedDomainNames.DEFAULT, U_ZERO_ERROR
    625          },
    626         {
    627 
    628            "Larger test (expanding)",
    629            "X\u00C3\u00DF\u00e3\u008c\u0096\u00C4\u00B0\u00E2\u0084\u00A1\u00E2\u0092\u009F\u00E3\u008c\u0080",
    630            "xss\u00e3\u0082\u00ad\u00e3\u0083\u00ad\u00e3\u0083\u00a1\u00e3\u0083\u00bc\u00e3\u0083\u0088"
    631            "\u00e3\u0083\u00ab""i\u00cc\u0087""tel\u0028""d\u0029\u00e3\u0082\u00a2\u00e3\u0083\u0091"
    632            "\u00e3\u0083\u00bc\u00e3\u0083\u0088"
    633            "Nameprep",
    634            InternationalizedDomainNames.DEFAULT, U_ZERO_ERROR
    635          },
    636       */
    637     };
    638 }
    639