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