summaryrefslogtreecommitdiffstats
path: root/pki/base/util/test/com/netscape/security/util/PrintableStringTest.java
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2011-12-13 14:10:03 -0600
committerAdam Young <ayoung@redhat.com>2011-12-19 10:38:34 -0500
commit6e4b6268b40d5994eb43dd1b5702c5465c974ca1 (patch)
tree49cc61e2b8ff949bd61e98f4aead9d75e290efd4 /pki/base/util/test/com/netscape/security/util/PrintableStringTest.java
parent171aaece4f23709d33d180cf36eb3af5e454b0c9 (diff)
downloadpki-6e4b6268b40d5994eb43dd1b5702c5465c974ca1.tar.gz
pki-6e4b6268b40d5994eb43dd1b5702c5465c974ca1.tar.xz
pki-6e4b6268b40d5994eb43dd1b5702c5465c974ca1.zip
Added unit tests for pki-util.
New unit tests have been added to test string converters indirectly. This is to allow replacing the converters with charset encoder and decoder without changing the test cases. The TestRunner has been moved into a separate package such that it can be reused by other packages. Ticket #3
Diffstat (limited to 'pki/base/util/test/com/netscape/security/util/PrintableStringTest.java')
-rw-r--r--pki/base/util/test/com/netscape/security/util/PrintableStringTest.java201
1 files changed, 201 insertions, 0 deletions
diff --git a/pki/base/util/test/com/netscape/security/util/PrintableStringTest.java b/pki/base/util/test/com/netscape/security/util/PrintableStringTest.java
new file mode 100644
index 00000000..4d0bc2cb
--- /dev/null
+++ b/pki/base/util/test/com/netscape/security/util/PrintableStringTest.java
@@ -0,0 +1,201 @@
+package com.netscape.security.util;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.junit.Assert;
+
+import sun.security.util.DerValue;
+
+public class PrintableStringTest {
+
+ public byte tag = DerValue.tag_PrintableString;
+
+ @Test
+ public void testEncodingEmptyString() throws Exception {
+
+ String string = "";
+ System.out.println("Encoding: ["+string+"]");
+
+ byte[] expected = JSSUtil.encode(tag, string);
+ System.out.println(" - expected: "+StringTestUtil.toString(expected));
+
+ byte[] actual = StringTestUtil.encode(tag, string);
+ System.out.println(" - actual : "+StringTestUtil.toString(actual));
+
+ Assert.assertArrayEquals(expected, actual);
+ }
+
+ @Test
+ public void testDecodingEmptyString() throws Exception {
+
+ String input = "";
+ byte[] data = JSSUtil.encode(tag, input);
+
+ System.out.println("Decoding: ["+StringTestUtil.toString(data)+"]");
+
+ System.out.println(" - expected: ["+input+"]");
+
+ String output = StringTestUtil.decode(tag, data);
+ System.out.println(" - actual : ["+output+"]");
+
+ Assert.assertEquals(input, output);
+ }
+
+ @Test
+ public void testEncodingPrintableCharacters() throws Exception {
+
+ String string = StringTestUtil.PRINTABLE_CHARS;
+ System.out.println("Encoding: ["+string+"]");
+
+ byte[] expected = JSSUtil.encode(tag, string);
+ System.out.println(" - expected: "+StringTestUtil.toString(expected));
+
+ byte[] actual = StringTestUtil.encode(tag, string);
+ System.out.println(" - actual : "+StringTestUtil.toString(actual));
+
+ Assert.assertArrayEquals(expected, actual);
+ }
+
+ @Test
+ public void testDecodingPrintableCharacters() throws Exception {
+
+ String input = StringTestUtil.PRINTABLE_CHARS;
+ byte[] data = JSSUtil.encode(tag, input);
+
+ System.out.println("Decoding: ["+StringTestUtil.toString(data)+"]");
+
+ System.out.println(" - expected: ["+input+"]");
+
+ String output = StringTestUtil.decode(tag, data);
+ System.out.println(" - actual : ["+output+"]");
+
+ Assert.assertEquals(input, output);
+ }
+
+ @Test
+ public void testEncodingNonPrintableCharacters() throws Exception {
+
+ String string = StringTestUtil.NON_PRINTABLE_CHARS;
+ System.out.println("Encoding: ["+StringTestUtil.toString(string.getBytes())+"]");
+
+ System.out.println(" - expected: IOException");
+
+ try {
+ byte[] actual = StringTestUtil.encode(tag, string);
+ System.out.println(" - actual : "+StringTestUtil.toString(actual));
+
+ Assert.fail();
+
+ } catch (Exception e) {
+ System.out.println(" - actual : "+e.getClass().getSimpleName());
+ Assert.assertTrue(e instanceof IOException);
+ }
+ }
+
+ @Test
+ public void testDecodingNonPrintableCharacters() throws Exception {
+
+ String input = StringTestUtil.NON_PRINTABLE_CHARS;
+ byte[] data = JSSUtil.encode(DerValue.tag_UTF8String, input);
+
+ System.out.println("Decoding: ["+StringTestUtil.toString(data)+"]");
+
+ System.out.println(" - expected: IOException");
+
+ try {
+ String output = StringTestUtil.decode(tag, data);
+ System.out.println(" - actual : ["+StringTestUtil.toString(output.getBytes())+"]");
+
+ Assert.fail();
+
+ } catch (Exception e) {
+ System.out.println(" - actual : "+e.getClass().getSimpleName());
+ Assert.assertTrue(e instanceof IOException);
+ }
+ }
+
+ @Test
+ public void testEncodingControlCharacters() throws Exception {
+
+ String string = StringTestUtil.CONTROL_CHARS;
+ System.out.println("Encoding: ["+StringTestUtil.toString(string.getBytes())+"]");
+
+ System.out.println(" - expected: IOException");
+
+ try {
+ byte[] actual = StringTestUtil.encode(tag, string);
+ System.out.println(" - actual : "+StringTestUtil.toString(actual));
+
+ Assert.fail();
+
+ } catch (Exception e) {
+ System.out.println(" - actual : "+e.getClass().getSimpleName());
+ Assert.assertTrue(e instanceof IOException);
+ }
+ }
+
+ @Test
+ public void testDecodingControlCharacters() throws Exception {
+
+ String input = StringTestUtil.CONTROL_CHARS;
+ byte[] data = JSSUtil.encode(DerValue.tag_UTF8String, input);
+
+ System.out.println("Decoding: ["+StringTestUtil.toString(data)+"]");
+
+ System.out.println(" - expected: IOException");
+
+ try {
+ String output = StringTestUtil.decode(tag, data);
+ System.out.println(" - actual : ["+StringTestUtil.toString(output.getBytes())+"]");
+
+ Assert.fail();
+
+ } catch (Exception e) {
+ System.out.println(" - actual : "+e.getClass().getSimpleName());
+ Assert.assertTrue(e instanceof IOException);
+ }
+ }
+
+ @Test
+ public void testEncodingMultibyteCharacters() throws Exception {
+
+ String string = StringTestUtil.MULTIBYTE_CHARS;
+ System.out.println("Encoding: ["+string+"]");
+
+ System.out.println(" - expected: IOException");
+
+ try {
+ byte[] actual = StringTestUtil.encode(tag, StringTestUtil.MULTIBYTE_CHARS);
+ System.out.println(" - actual : "+StringTestUtil.toString(actual));
+
+ Assert.fail();
+
+ } catch (Exception e) {
+ System.out.println(" - actual : "+e.getClass().getSimpleName());
+ Assert.assertTrue(e instanceof IOException);
+ }
+ }
+
+ @Test
+ public void testDecodingMultibyteCharacters() throws Exception {
+
+ String input = StringTestUtil.MULTIBYTE_CHARS;
+ byte[] data = JSSUtil.encode(DerValue.tag_UTF8String, input);
+
+ System.out.println("Decoding: ["+StringTestUtil.toString(data)+"]");
+
+ System.out.println(" - expected: IOException");
+
+ try {
+ String output = StringTestUtil.decode(tag, data);
+ System.out.println(" - actual : ["+StringTestUtil.toString(output.getBytes())+"]");
+
+ Assert.fail();
+
+ } catch (Exception e) {
+ System.out.println(" - actual : "+e.getClass().getSimpleName());
+ Assert.assertTrue(e instanceof IOException);
+ }
+ }
+}