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();
+ }
+
+ }
}