Return-Path: Delivered-To: apmail-hc-commits-archive@www.apache.org Received: (qmail 4853 invoked from network); 24 Jul 2008 09:22:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 24 Jul 2008 09:22:22 -0000 Received: (qmail 86002 invoked by uid 500); 24 Jul 2008 09:22:22 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 85981 invoked by uid 500); 24 Jul 2008 09:22:22 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 85972 invoked by uid 99); 24 Jul 2008 09:22:22 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Jul 2008 02:22:22 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Jul 2008 09:21:26 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 23DBC2388987; Thu, 24 Jul 2008 02:21:52 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r679321 - in /httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils: TestAllUtils.java TestRfc3492Idn.java Date: Thu, 24 Jul 2008 09:21:51 -0000 To: commits@hc.apache.org From: oglueck@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080724092152.23DBC2388987@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: oglueck Date: Thu Jul 24 02:21:51 2008 New Revision: 679321 URL: http://svn.apache.org/viewvc?rev=679321&view=rev Log: added punycode infrastructure Added: httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestRfc3492Idn.java Modified: httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestAllUtils.java Modified: httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestAllUtils.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestAllUtils.java?rev=679321&r1=679320&r2=679321&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestAllUtils.java (original) +++ httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestAllUtils.java Thu Jul 24 02:21:51 2008 @@ -43,6 +43,7 @@ public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(TestURLEncodedUtils.suite()); + suite.addTest(TestRfc3492Idn.suite()); return suite; } Added: httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestRfc3492Idn.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestRfc3492Idn.java?rev=679321&view=auto ============================================================================== --- httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestRfc3492Idn.java (added) +++ httpcomponents/httpclient/trunk/module-client/src/test/java/org/apache/http/client/utils/TestRfc3492Idn.java Thu Jul 24 02:21:51 2008 @@ -0,0 +1,65 @@ +package org.apache.http.client.utils; + +import org.apache.http.client.utils.Rfc3492Idn; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class TestRfc3492Idn extends TestCase { + public TestRfc3492Idn(String testName) { + super(testName); + } + + public static void main(String args[]) { + String[] testCaseName = { TestRfc3492Idn.class.getName() }; + junit.textui.TestRunner.main(testCaseName); + } + + public static Test suite() { + return new TestSuite(TestRfc3492Idn.class); + } + + /** + * Some of the sample strings from RFC 3492 + */ + public void testDecode() throws Exception { + Rfc3492Idn idn = new Rfc3492Idn(); + // (A) Arabic + assertEquals("\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644" + + "\u0645\u0648\u0634\u0639\u0631\u0628\u064A\u061F", + idn.decode("egbpdaj6bu4bxfgehfvwxn")); + + // (B) Chinese (simplified) + assertEquals("\u4ED6\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8BF4\u4E2D\u6587", + idn.decode("ihqwcrb4cv8a8dqg056pqjye")); + + // (I) Russian (Cyrillic) + assertEquals("\u043F\u043E\u0447\u0435\u043C\u0443\u0436\u0435\u043E"+ + "\u043D\u0438\u043D\u0435\u0433\u043E\u0432\u043E\u0440"+ + "\u044F\u0442\u043F\u043E\u0440\u0443\u0441\u0441\u043A"+ + "\u0438", + idn.decode("b1abfaaepdrnnbgefbaDotcwatmq2g4l")); + + // (P) MajiKoi5 + assertEquals("\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059" + + "\u308B\u0035\u79D2\u524D", + idn.decode("MajiKoi5-783gue6qz075azm5e")); + + } + + public void testToUnicode() throws Exception { + Rfc3492Idn idn = new Rfc3492Idn(); + // (A) Arabic + assertEquals("\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644" + + "\u0645\u0648\u0634\u0639\u0631\u0628\u064A\u061F", + idn.toUnicode("xn--egbpdaj6bu4bxfgehfvwxn")); + + // some real-world domains + assertEquals("www.z\u00fcrich.ch", + idn.toUnicode("www.xn--zrich-kva.ch")); + + assertEquals("www.g\u00e4ggelig\u00e4\u00e4l.ch", + idn.toUnicode("www.xn--gggeligl-0zaga.ch")); + } +}