You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2012/03/18 22:45:43 UTC

svn commit: r1302231 - in /commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary: Base32InputStreamTest.java Base64InputStreamTest.java

Author: tn
Date: Sun Mar 18 21:45:43 2012
New Revision: 1302231

URL: http://svn.apache.org/viewvc?rev=1302231&view=rev
Log:
[CODEC-130] Added unit test for Base32InputStream, improved Base64 unit test.

Modified:
    commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base32InputStreamTest.java
    commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base64InputStreamTest.java

Modified: commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base32InputStreamTest.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base32InputStreamTest.java?rev=1302231&r1=1302230&r2=1302231&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base32InputStreamTest.java (original)
+++ commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base32InputStreamTest.java Sun Mar 18 21:45:43 2012
@@ -24,10 +24,12 @@ import static org.junit.Assert.assertTru
 import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
 
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class Base32InputStreamTest {
@@ -38,6 +40,31 @@ public class Base32InputStreamTest {
 
     private final static byte[] LF = { (byte) '\n' };
 
+    private static final String STRING_FIXTURE = "Hello World";
+
+    /**
+     * Tests the problem reported in CODEC-130. Missing / wrong implementation of skip.
+     */
+    @Test
+    @Ignore
+    public void testCodec130() throws IOException {
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        Base32OutputStream base32os = new Base32OutputStream(bos);
+
+        base32os.write(StringUtils.getBytesUtf8(STRING_FIXTURE));
+        base32os.close();
+
+        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+        Base32InputStream ins = new Base32InputStream(bis);
+
+        // we skip the first character read from the reader
+        ins.skip(1);
+        byte[] decodedBytes = Base32TestData.streamToBytes(ins, new byte[64]);
+        String str = StringUtils.newStringUtf8(decodedBytes);
+
+        assertEquals(STRING_FIXTURE.substring(1), str);
+    }
+
     /**
      * Tests the bug reported in CODEC-105. Bad interactions with InputStream when reading one byte at a time.
      */

Modified: commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base64InputStreamTest.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base64InputStreamTest.java?rev=1302231&r1=1302230&r2=1302231&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base64InputStreamTest.java (original)
+++ commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/binary/Base64InputStreamTest.java Sun Mar 18 21:45:43 2012
@@ -61,21 +61,16 @@ public class Base64InputStreamTest {
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         Base64OutputStream base64os = new Base64OutputStream(bos);
 
-        base64os.write(STRING_FIXTURE.getBytes());
+        base64os.write(StringUtils.getBytesUtf8(STRING_FIXTURE));
+        base64os.close();
 
         ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
         Base64InputStream ins = new Base64InputStream(bis);
 
         // we skip the first character read from the reader
         ins.skip(1);
-        StringBuffer sb = new StringBuffer();
-        int len = 0;
-        byte[] bytes = new byte[10];
-        while ((len = ins.read(bytes)) != -1) {
-            String s = new String(bytes, 0, len, "iso-8859-1");
-            sb.append(s);
-        }
-        String str = sb.toString();
+        byte[] decodedBytes = Base64TestData.streamToBytes(ins, new byte[64]);
+        String str = StringUtils.newStringUtf8(decodedBytes);
 
         assertEquals(STRING_FIXTURE.substring(1), str);
     }