IDNTest.java revision 561ee011997c6c2f1befbfaa9d5f0a99771c1d63
1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package org.apache.harmony.luni.tests.java.net; 18 19import java.net.IDN; 20 21import junit.framework.TestCase; 22 23public class IDNTest extends TestCase { 24 25 /** 26 * @tests {@link java.net.IDN#toASCII(String)} 27 * 28 * @since 1.6 29 */ 30 public void test_ToASCII_LString() { 31 try { 32 IDN.toASCII(null); 33 fail("should throw NullPointerException"); 34 } catch (NullPointerException e) { 35 // expected 36 } 37 38 try { 39 IDN.toASCII("www.m\uE400kitorppa.edu"); 40 fail("should throw IllegalArgumentException"); 41 } catch (IllegalArgumentException e) { 42 // expected 43 } 44 45 try { 46 IDN.toASCII("www.\u672C\uFE73\uFFFF.jp"); 47 fail("should throw IllegalArgumentException"); 48 } catch (IllegalArgumentException e) { 49 // expected 50 } 51 52 assertEquals("www.xn--gwtq9nb2a.jp", IDN 53 .toASCII("www.\u65E5\u672C\u5E73.jp")); 54 assertEquals( 55 "www.xn--vckk7bxa0eza9ezc9d.com", 56 IDN 57 .toASCII("www.\u30CF\u30F3\u30C9\u30DC\u30FC\u30EB\u30B5\u30E0\u30BA.com")); 58 assertEquals("www.xn--frgbolaget-q5a.nu", IDN 59 .toASCII("www.f\u00E4rgbolaget.nu")); 60 assertEquals("www.xn--bcher-kva.de", IDN.toASCII("www.b\u00FCcher.de")); 61 assertEquals("www.xn--brndendekrlighed-vobh.com", IDN 62 .toASCII("www.br\u00E6ndendek\u00E6rlighed.com")); 63 assertEquals("www.xn--rksmrgs-5wao1o.se", IDN 64 .toASCII("www.r\u00E4ksm\u00F6rg\u00E5s.se")); 65 assertEquals("www.xn--9d0bm53a3xbzui.com", IDN 66 .toASCII("www.\uC608\uBE44\uAD50\uC0AC.com")); 67 assertEquals("xn--lck1c3crb1723bpq4a.com", IDN 68 .toASCII("\u7406\u5BB9\u30CA\u30AB\u30E0\u30E9.com")); 69 assertEquals("xn--l8je6s7a45b.org", IDN 70 .toASCII("\u3042\u30FC\u308B\u3044\u3093.org")); 71 assertEquals("www.xn--frjestadsbk-l8a.net", IDN 72 .toASCII("www.f\u00E4rjestadsbk.net")); 73 assertEquals("www.xn--mkitorppa-v2a.edu", IDN 74 .toASCII("www.m\u00E4kitorppa.edu")); 75 } 76 77 /** 78 * @tests {@link java.net.IDN#toASCII(String, int)} 79 * 80 * @since 1.6 81 */ 82 public void test_ToASCII_LString_I() { 83 try { 84 IDN.toASCII("www.br\u00E6ndendek\u00E6rlighed.com", 85 IDN.USE_STD3_ASCII_RULES); 86 } catch (IllegalArgumentException e) { 87 // expected 88 } 89 90 try { 91 IDN.toASCII("www.r\u00E4ksm\u00F6rg\u00E5s.se", 92 IDN.USE_STD3_ASCII_RULES); 93 } catch (IllegalArgumentException e) { 94 // expected 95 } 96 97 try { 98 IDN.toASCII("www.f\u00E4rjestadsbk.net", IDN.ALLOW_UNASSIGNED 99 | IDN.USE_STD3_ASCII_RULES); 100 } catch (IllegalArgumentException e) { 101 // expected 102 } 103 104 assertEquals("www.xn--gwtq9nb2a.jp", IDN.toASCII( 105 "www.\u65E5\u672C\u5E73.jp", 0)); 106 assertEquals( 107 "www.xn--vckk7bxa0eza9ezc9d.com", 108 IDN 109 .toASCII( 110 "www.\u30CF\u30F3\u30C9\u30DC\u30FC\u30EB\u30B5\u30E0\u30BA.com", 111 0)); 112 assertEquals("www.xn--frgbolaget-q5a.nu", IDN.toASCII( 113 "www.f\u00E4rgbolaget.nu", IDN.ALLOW_UNASSIGNED)); 114 assertEquals("www.xn--bcher-kva.de", IDN.toASCII("www.b\u00FCcher.de", 115 IDN.ALLOW_UNASSIGNED)); 116 assertEquals("www.google.com", IDN.toASCII("www.google\u002Ecom", 117 IDN.USE_STD3_ASCII_RULES)); 118 } 119 120 /** 121 * @tests {@link java.net.IDN#toUnicode(String)} 122 * 123 * @since 1.6 124 */ 125 public void test_ToUnicode_LString() { 126 try { 127 IDN.toUnicode(null); 128 fail("should throw NullPointerException"); 129 } catch (NullPointerException e) { 130 // expected 131 } 132 133 assertEquals("", IDN.toUnicode("")); 134 assertEquals("www.bcher.de", IDN.toUnicode("www.bcher.de")); 135 assertEquals("www.b\u00FCcher.de", IDN.toUnicode("www.b\u00FCcher.de")); 136 assertEquals("www.\u65E5\u672C\u5E73.jp", IDN 137 .toUnicode("www.\u65E5\u672C\u5E73.jp")); 138 assertEquals("www.\u65E5\u672C\u5E73.jp", IDN.toUnicode("www\uFF0Exn--gwtq9nb2a\uFF61jp")); 139 assertEquals("www.\u65E5\u672C\u5E73.jp", IDN.toUnicode("www.xn--gwtq9nb2a.jp")); 140 } 141 142 /** 143 * @tests {@link java.net.IDN#toUnicode(String, int)} 144 * 145 * @since 1.6 146 */ 147 public void test_ToUnicode_LString_I() { 148 assertEquals("", IDN.toUnicode("", IDN.ALLOW_UNASSIGNED)); 149 assertEquals("www.f\u00E4rgbolaget.nu", IDN.toUnicode( 150 "www.f\u00E4rgbolaget.nu", IDN.USE_STD3_ASCII_RULES)); 151 assertEquals("www.r\u00E4ksm\u00F6rg\u00E5s.nu", IDN.toUnicode( 152 "www.r\u00E4ksm\u00F6rg\u00E5s\u3002nu", 153 IDN.USE_STD3_ASCII_RULES)); 154 // RI bug. It cannot parse "www.xn--gwtq9nb2a.jp" when 155 // USE_STD3_ASCII_RULES is set. 156 assertEquals("www.\u65E5\u672C\u5E73.jp", IDN.toUnicode( 157 "www\uFF0Exn--gwtq9nb2a\uFF61jp", IDN.USE_STD3_ASCII_RULES)); 158 159 } 160} 161