You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2020/03/08 15:58:25 UTC

svn commit: r1874976 - in /pdfbox/trunk/pdfbox/src: main/java/org/apache/pdfbox/pdmodel/PDPageTree.java test/java/org/apache/pdfbox/pdmodel/TestPDPageTree.java

Author: msahyoun
Date: Sun Mar  8 15:58:25 2020
New Revision: 1874976

URL: http://svn.apache.org/viewvc?rev=1874976&view=rev
Log:
PDFBOX-4723: use == instead of equals to check for equality; add unit tests as suggested by Christian Appl

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTree.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java?rev=1874976&r1=1874975&r2=1874976&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java Sun Mar  8 15:58:25 2020
@@ -483,7 +483,7 @@ public class PDPageTree implements COSOb
         for (int i = 0; i < kids.size(); ++i)
         {
             COSDictionary pageDict = (COSDictionary) kids.getObject(i);
-            if (pageDict.equals(nextPage.getCOSObject()))
+            if (pageDict == nextPage.getCOSObject())
             {
                 kids.add(i, newPage.getCOSObject());
                 newPage.getCOSObject().setItem(COSName.PARENT, parentDict);
@@ -515,7 +515,7 @@ public class PDPageTree implements COSOb
         for (int i = 0; i < kids.size(); ++i)
         {
             COSDictionary pageDict = (COSDictionary) kids.getObject(i);
-            if (pageDict.equals(prevPage.getCOSObject()))
+            if (pageDict == prevPage.getCOSObject())
             {
                 kids.add(i + 1, newPage.getCOSObject());
                 newPage.getCOSObject().setItem(COSName.PARENT, parentDict);

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTree.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTree.java?rev=1874976&r1=1874975&r2=1874976&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTree.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTree.java Sun Mar  8 15:58:25 2020
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertEqu
 import java.io.IOException;
 
 import org.apache.pdfbox.Loader;
-import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
 import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
 
@@ -86,4 +85,38 @@ public class TestPDPageTree
         doc = Loader.loadPDF(TestPDPageTree.class.getResourceAsStream("with_outline.pdf"));
         assertEquals(-1, doc.getPages().indexOf(new PDPage()));
     }
+
+    @Test
+    public void testInsertBeforeBlankPage() throws Exception {
+        try (PDDocument document = new PDDocument()) {
+            PDPage pageOne = new PDPage();
+            PDPage pageTwo = new PDPage();
+            PDPage pageThree = new PDPage();
+
+            document.addPage(pageOne);
+            document.addPage(pageTwo);
+            document.getPages().insertBefore(pageThree, pageTwo);
+
+            assertEquals("Page one should be placed at index 0.", 0,(document.getPages().indexOf(pageOne)));
+            assertEquals("Page two should be placed at index 2.", 2,(document.getPages().indexOf(pageTwo)));
+            assertEquals("Page three should be placed at index 1.", 1,(document.getPages().indexOf(pageThree)));
+        }
+    }
+
+    @Test
+    public void testInsertAfterBlankPage() throws Exception {
+        try (PDDocument document = new PDDocument()) {
+            PDPage pageOne = new PDPage();
+            PDPage pageTwo = new PDPage();
+            PDPage pageThree = new PDPage();
+
+            document.addPage(pageOne);
+            document.addPage(pageTwo);
+            document.getPages().insertAfter(pageThree, pageTwo);
+
+            assertEquals("Page one should be placed at index 0.", 0,(document.getPages().indexOf(pageOne)));
+            assertEquals("Page two should be placed at index 1.", 1,(document.getPages().indexOf(pageTwo)));
+            assertEquals("Page three should be placed at index 2.", 2,(document.getPages().indexOf(pageThree)));
+        }
+    }
 }