Author: ggregory
Date: Mon Jul 18 14:51:14 2011
New Revision: 1147907

URL: http://svn.apache.org/viewvc?rev=1147907&view=rev
Log:
Tests https://issues.apache.org/jira/browse/IO-277 (@Ignore'd). Port to JUnit 4.

Modified:
    
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java

Modified: 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java?rev=1147907&r1=1147906&r2=1147907&view=diff
==============================================================================
--- 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
 (original)
+++ 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
 Mon Jul 18 14:51:14 2011
@@ -16,13 +16,19 @@
  */
 package org.apache.commons.io.input;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.CharArrayReader;
 import java.io.IOException;
 import java.io.StringReader;
+import java.nio.charset.Charset;
 import java.util.Random;
 
-import junit.framework.TestCase;
+import org.junit.Ignore;
+import org.junit.Test;
 
-public class ReaderInputStreamTest extends TestCase {
+public class ReaderInputStreamTest {
     private static final String TEST_STRING = "\u00e0 peine arriv\u00e9s nous 
entr\u00e2mes dans sa chambre";
     private static final String LARGE_TEST_STRING;
     
@@ -73,29 +79,61 @@ public class ReaderInputStreamTest exten
         }
     }
     
+    @Test
     public void testUTF8WithSingleByteRead() throws IOException {
         testWithSingleByteRead(TEST_STRING, "UTF-8");
     }
     
+    @Test
     public void testLargeUTF8WithSingleByteRead() throws IOException {
         testWithSingleByteRead(LARGE_TEST_STRING, "UTF-8");
     }
     
+    @Test
     public void testUTF8WithBufferedRead() throws IOException {
         testWithBufferedRead(TEST_STRING, "UTF-8");
     }
     
+    @Test
     public void testLargeUTF8WithBufferedRead() throws IOException {
         testWithBufferedRead(LARGE_TEST_STRING, "UTF-8");
     }
     
+    @Test
     public void testUTF16WithSingleByteRead() throws IOException {
         testWithSingleByteRead(TEST_STRING, "UTF-16");
     }
     
+    @Test
     public void testReadZero() throws Exception {
         ReaderInputStream r = new ReaderInputStream(new StringReader("test"));
         byte[] bytes = new byte[30];
         assertEquals(0, r.read(bytes, 0, 0));
     }
+    
+    /**
+     * Tests https://issues.apache.org/jira/browse/IO-277
+     * 
+     * @throws IOException
+     */
+    @Test
+    @Ignore
+    public void testCharsetMismatchInfiniteLoop() throws IOException {
+        // Input is UTF-8 bytes: 0xE0 0xB2 0xA0
+        byte[] input = new byte[] { (byte) 0xE0, (byte) 0xB2, (byte) 0xA0 };
+        char[] inputChars = new char[] { (char) 0xE0, (char) 0xB2, (char) 0xA0 
};
+        System.out.println("Input: " + new String(input, 
Charset.forName("UTF-8")));
+
+        // Charset charset = Charset.forName("UTF-8"); // works
+        Charset charset = Charset.forName("ASCII"); // infinite loop
+
+        ReaderInputStream stream = new ReaderInputStream(new 
CharArrayReader(inputChars), charset);
+        try {
+            while (stream.read() != -1) {
+            }
+        } finally {
+            stream.close();
+        }
+
+    }
 }


Reply via email to