You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/08/17 06:07:35 UTC

svn commit: r1880921 - in /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io: RandomAccessReadBufferTest.java RandomAccessReadViewTest.java SequenceRandomAccessReadTest.java

Author: lehmi
Date: Mon Aug 17 06:07:35 2020
New Revision: 1880921

URL: http://svn.apache.org/viewvc?rev=1880921&view=rev
Log:
PDFBOX-4836: add more tests

Modified:
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java?rev=1880921&r1=1880920&r2=1880921&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java Mon Aug 17 06:07:35 2020
@@ -17,6 +17,9 @@
 package org.apache.pdfbox.io;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -59,7 +62,48 @@ public class RandomAccessReadBufferTest
         assertEquals(2, randomAccessSource.read());
         assertEquals(3, randomAccessSource.getPosition());
 
+        assertFalse(randomAccessSource.isClosed());
         randomAccessSource.close();
+        assertTrue(randomAccessSource.isClosed());
+    }
+
+    @Test
+    public void testSeekEOF() throws IOException
+    {
+        byte[] inputValues = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        ByteArrayInputStream bais = new ByteArrayInputStream(inputValues);
+
+        RandomAccessReadBuffer randomAccessSource = new RandomAccessReadBuffer(bais);
+
+        randomAccessSource.seek(3);
+        assertEquals(3, randomAccessSource.getPosition());
+        
+        try
+        {
+            randomAccessSource.seek(-1);
+            fail("seek should have thrown an IOException");
+        }
+        catch (IOException e)
+        {
+            
+        }
+        
+        assertFalse(randomAccessSource.isEOF());
+        randomAccessSource.seek(20);
+        assertTrue(randomAccessSource.isEOF());
+        assertEquals(-1, randomAccessSource.read());
+        assertEquals(-1, randomAccessSource.read(new byte[1], 0, 1));
+
+        randomAccessSource.close();
+        try
+        {
+            randomAccessSource.read();
+            fail("checkClosed should have thrown an IOException");
+        }
+        catch (IOException e)
+        {
+
+        }
     }
 
     @Test

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java?rev=1880921&r1=1880920&r2=1880921&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java Mon Aug 17 06:07:35 2020
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.io;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
@@ -65,8 +67,53 @@ public class RandomAccessReadViewTest
         assertEquals(12, randomAccessReadView.read());
         assertEquals(3, randomAccessReadView.getPosition());
 
+        assertFalse(randomAccessReadView.isClosed());
+        randomAccessReadView.close();
+        assertTrue(randomAccessReadView.isClosed());
+
+        randomAccessSource.close();
+    }
+
+    @Test
+    public void testSeekEOF() throws IOException
+    {
+        byte[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+                20 };
+        RandomAccessReadBuffer randomAccessSource = new RandomAccessReadBuffer(
+                new ByteArrayInputStream(values));
+        RandomAccessReadView randomAccessReadView = new RandomAccessReadView(randomAccessSource, 10,
+                20);
+
+        randomAccessReadView.seek(3);
+        assertEquals(3, randomAccessReadView.getPosition());
+
+        try
+        {
+            randomAccessReadView.seek(-1);
+            fail("seek should have thrown an IOException");
+        }
+        catch (IOException e)
+        {
+
+        }
+
+        assertFalse(randomAccessReadView.isEOF());
+        randomAccessReadView.seek(20);
+        assertTrue(randomAccessReadView.isEOF());
+        assertEquals(-1, randomAccessReadView.read());
+        assertEquals(-1, randomAccessReadView.read(new byte[1], 0, 1));
+
         randomAccessReadView.close();
         randomAccessSource.close();
+        try
+        {
+            randomAccessReadView.read();
+            fail("checkClosed should have thrown an IOException");
+        }
+        catch (IOException e)
+        {
+
+        }
     }
 
     @Test

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java?rev=1880921&r1=1880920&r2=1880921&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java Mon Aug 17 06:07:35 2020
@@ -49,6 +49,15 @@ public class SequenceRandomAccessReadTes
                 randomAccessReadBuffer2);
         SequenceRandomAccessRead sequenceRandomAccessRead = new SequenceRandomAccessRead(inputList);
 
+        try
+        {
+            sequenceRandomAccessRead.createView(0, 10);
+            fail("createView should have thrown an IOException");
+        }
+        catch(IOException e)
+        {
+        }
+        
         int overallLength = input1.length() + input2.length();
         assertEquals(overallLength, sequenceRandomAccessRead.length());
         
@@ -121,6 +130,15 @@ public class SequenceRandomAccessReadTes
         assertEquals('f', sequenceRandomAccessRead.peek());
         assertEquals('f', sequenceRandomAccessRead.read());
 
+        try 
+        {
+            sequenceRandomAccessRead.seek(-1);
+            fail("seek should have thrown an IOException");
+        }
+        catch (IOException e)
+        {
+        }
+        
         sequenceRandomAccessRead.close();
     }
 
@@ -189,6 +207,8 @@ public class SequenceRandomAccessReadTes
         assertFalse(sequenceRandomAccessRead.isEOF());
         assertEquals('t', sequenceRandomAccessRead.read());
         assertTrue(sequenceRandomAccessRead.isEOF());
+        assertEquals(-1, sequenceRandomAccessRead.read());
+        assertEquals(-1, sequenceRandomAccessRead.read(new byte[1], 0, 1));
         // rewind
         sequenceRandomAccessRead.rewind(5);
         assertFalse(sequenceRandomAccessRead.isEOF());
@@ -202,7 +222,9 @@ public class SequenceRandomAccessReadTes
         assertTrue(sequenceRandomAccessRead.isEOF());
         assertEquals(overallLength + 10, sequenceRandomAccessRead.getPosition());
 
+        assertFalse(sequenceRandomAccessRead.isClosed());
         sequenceRandomAccessRead.close();
+        assertTrue(sequenceRandomAccessRead.isClosed());
         // closing a SequenceRandomAccessRead twice shouldn't be a problem
         sequenceRandomAccessRead.close();