/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.harmony.tests.java.net;
import java.net.IDN;
import junit.framework.TestCase;
public class IDNTest extends TestCase {
/**
* {@link java.net.IDN#toASCII(String)}
* @since 1.6
*/
public void test_ToASCII_LString() {
try {
IDN.toASCII(null);
fail("should throw NullPointerException");
} catch (NullPointerException e) {
// expected
}
try {
IDN.toASCII("www.m\uE400kitorppa.edu");
fail("should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
// expected
}
try {
IDN.toASCII("www.\u672C\uFE73\uFFFF.jp");
fail("should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
// expected
}
assertEquals("www.xn--gwtq9nb2a.jp", IDN
.toASCII("www.\u65E5\u672C\u5E73.jp"));
assertEquals(
"www.xn--vckk7bxa0eza9ezc9d.com",
IDN
.toASCII("www.\u30CF\u30F3\u30C9\u30DC\u30FC\u30EB\u30B5\u30E0\u30BA.com"));
assertEquals("www.xn--frgbolaget-q5a.nu", IDN
.toASCII("www.f\u00E4rgbolaget.nu"));
assertEquals("www.xn--bcher-kva.de", IDN.toASCII("www.b\u00FCcher.de"));
assertEquals("www.xn--brndendekrlighed-vobh.com", IDN
.toASCII("www.br\u00E6ndendek\u00E6rlighed.com"));
assertEquals("www.xn--rksmrgs-5wao1o.se", IDN
.toASCII("www.r\u00E4ksm\u00F6rg\u00E5s.se"));
assertEquals("www.xn--9d0bm53a3xbzui.com", IDN
.toASCII("www.\uC608\uBE44\uAD50\uC0AC.com"));
assertEquals("xn--lck1c3crb1723bpq4a.com", IDN
.toASCII("\u7406\u5BB9\u30CA\u30AB\u30E0\u30E9.com"));
assertEquals("xn--l8je6s7a45b.org", IDN
.toASCII("\u3042\u30FC\u308B\u3044\u3093.org"));
assertEquals("www.xn--frjestadsbk-l8a.net", IDN
.toASCII("www.f\u00E4rjestadsbk.net"));
assertEquals("www.xn--mkitorppa-v2a.edu", IDN
.toASCII("www.m\u00E4kitorppa.edu"));
}
/**
* {@link java.net.IDN#toASCII(String, int)}
* @since 1.6
*/
public void test_ToASCII_LString_I() {
try {
IDN.toASCII("www.br\u00E6ndendek\u00E6rlighed.com",
IDN.USE_STD3_ASCII_RULES);
} catch (IllegalArgumentException e) {
// expected
}
try {
IDN.toASCII("www.r\u00E4ksm\u00F6rg\u00E5s.se",
IDN.USE_STD3_ASCII_RULES);
} catch (IllegalArgumentException e) {
// expected
}
try {
IDN.toASCII("www.f\u00E4rjestadsbk.net", IDN.ALLOW_UNASSIGNED
| IDN.USE_STD3_ASCII_RULES);
} catch (IllegalArgumentException e) {
// expected
}
assertEquals("www.xn--gwtq9nb2a.jp", IDN.toASCII(
"www.\u65E5\u672C\u5E73.jp", 0));
assertEquals(
"www.xn--vckk7bxa0eza9ezc9d.com",
IDN
.toASCII(
"www.\u30CF\u30F3\u30C9\u30DC\u30FC\u30EB\u30B5\u30E0\u30BA.com",
0));
assertEquals("www.xn--frgbolaget-q5a.nu", IDN.toASCII(
"www.f\u00E4rgbolaget.nu", IDN.ALLOW_UNASSIGNED));
assertEquals("www.xn--bcher-kva.de", IDN.toASCII("www.b\u00FCcher.de",
IDN.ALLOW_UNASSIGNED));
assertEquals("www.google.com", IDN.toASCII("www.google\u002Ecom",
IDN.USE_STD3_ASCII_RULES));
}
/**
* {@link java.net.IDN#toUnicode(String)}
* @since 1.6
*/
public void test_ToUnicode_LString() {
try {
IDN.toUnicode(null);
fail("should throw NullPointerException");
} catch (NullPointerException e) {
// expected
}
assertEquals("", IDN.toUnicode(""));
assertEquals("www.bcher.de", IDN.toUnicode("www.bcher.de"));
assertEquals("www.b\u00FCcher.de", IDN.toUnicode("www.b\u00FCcher.de"));
assertEquals("www.\u65E5\u672C\u5E73.jp", IDN
.toUnicode("www.\u65E5\u672C\u5E73.jp"));
assertEquals("www.\u65E5\u672C\u5E73.jp", IDN.toUnicode("www\uFF0Exn--gwtq9nb2a\uFF61jp"));
assertEquals("www.\u65E5\u672C\u5E73.jp", IDN.toUnicode("www.xn--gwtq9nb2a.jp"));
}
/**
* {@link java.net.IDN#toUnicode(String, int)}
* @since 1.6
*/
public void test_ToUnicode_LString_I() {
assertEquals("", IDN.toUnicode("", IDN.ALLOW_UNASSIGNED));
assertEquals("www.f\u00E4rgbolaget.nu", IDN.toUnicode(
"www.f\u00E4rgbolaget.nu", IDN.USE_STD3_ASCII_RULES));
assertEquals("www.r\u00E4ksm\u00F6rg\u00E5s.nu", IDN.toUnicode(
"www.r\u00E4ksm\u00F6rg\u00E5s\u3002nu",
IDN.USE_STD3_ASCII_RULES));
// RI bug. It cannot parse "www.xn--gwtq9nb2a.jp" when
// USE_STD3_ASCII_RULES is set.
assertEquals("www.\u65E5\u672C\u5E73.jp", IDN.toUnicode(
"www\uFF0Exn--gwtq9nb2a\uFF61jp", IDN.USE_STD3_ASCII_RULES));
}
}