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