summaryrefslogtreecommitdiffstats
path: root/test/com
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2015-06-27 08:59:57 (GMT)
committerKevin Smith <kevin.smith@isode.com>2015-07-06 14:14:14 (GMT)
commitc23c591f888f6cb1054bd110f7b6ffff9a1173a0 (patch)
treef52eda81dc8f1028ed51fef39c690571978ad45d /test/com
parentfcdff3f162995170469833a82f607903e660812d (diff)
downloadstroke-c23c591f888f6cb1054bd110f7b6ffff9a1173a0.zip
stroke-c23c591f888f6cb1054bd110f7b6ffff9a1173a0.tar.bz2
Add Internationalized Domain Name Features.
Adds IDNConverter interface, ICUConverter using ICU for Stringprep. Also updates Makefile and build.xml by adding path to icu4j to compile tests classpath, so that icu4j.jar can be used in the tests. IDNConverter tests need StringPrepParseException from icu4j jar. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added test for IDNConverter, which passes. Change-Id: I56aacf080a10216a2455cf561de567f5666cd0c9
Diffstat (limited to 'test/com')
-rw-r--r--test/com/isode/stroke/idn/IDNConverterTest.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/test/com/isode/stroke/idn/IDNConverterTest.java b/test/com/isode/stroke/idn/IDNConverterTest.java
new file mode 100644
index 0000000..a17affc
--- /dev/null
+++ b/test/com/isode/stroke/idn/IDNConverterTest.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.idn;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+import org.junit.Before;
+import com.isode.stroke.base.SafeByteArray;
+import com.isode.stroke.idn.IDNConverter;
+import com.isode.stroke.idn.IDNA;
+import com.isode.stroke.idn.ICUConverter;
+import com.ibm.icu.text.StringPrepParseException;
+
+public class IDNConverterTest {
+
+ private IDNConverter testling;
+
+ @Before
+ public void setUp() {
+ testling = new ICUConverter();
+ }
+
+ @Test
+ public void testStringPrep() {
+ try {
+ String result = testling.getStringPrepared("tronçon", IDNConverter.StringPrepProfile.NamePrep);
+ assertEquals("tronçon", result);
+ } catch (StringPrepParseException e) {
+ assertTrue("getStringPrep threw " + e, (e == null));
+ }
+ }
+
+ @Test
+ public void testStringPrep_Empty() {
+ try{
+ assertEquals("", testling.getStringPrepared("", IDNConverter.StringPrepProfile.NamePrep));
+ assertEquals("", testling.getStringPrepared("", IDNConverter.StringPrepProfile.XMPPNodePrep));
+ assertEquals("", testling.getStringPrepared("", IDNConverter.StringPrepProfile.XMPPResourcePrep));
+ } catch (StringPrepParseException e) {
+ assertTrue("getStringPrep threw " + e, (e == null));
+ }
+ }
+
+ @Test
+ public void testGetEncoded() {
+ String result = testling.getIDNAEncoded("www.swift.im");
+ assertNotNull(result);
+ assertEquals("www.swift.im", result);
+ }
+
+ @Test
+ public void testGetEncoded_International() {
+ String result = testling.getIDNAEncoded("www.tronçon.com");
+ assertNotNull(result);
+ assertEquals("www.xn--tronon-zua.com", result);
+ }
+
+ @Test
+ public void testGetEncoded_Invalid() {
+ String result = testling.getIDNAEncoded("www.foo,bar.com");
+ assertNull(result);
+ }
+} \ No newline at end of file