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