Author: tilman
Date: Wed Aug 20 08:48:57 2025
New Revision: 1927907
Log:
PDFBOX-5660: improve test coverage
Modified:
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
Modified:
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
Wed Aug 20 08:48:53 2025 (r1927906)
+++
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
Wed Aug 20 08:48:57 2025 (r1927907)
@@ -19,6 +19,7 @@ package org.apache.pdfbox.pdmodel.docume
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.pdfbox.cos.COSArray;
@@ -27,10 +28,12 @@ import org.apache.pdfbox.cos.COSDictiona
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.cos.COSObject;
import org.apache.pdfbox.pdmodel.PDDocument;
-import org.junit.Assert;
+import
org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedContent;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import org.junit.Test;
/**
@@ -57,7 +60,7 @@ public class PDStructureElementTest
doc.close();
// collect attributes and check their count.
- Assert.assertEquals(117, attributeSet.size());
+ assertEquals(117, attributeSet.size());
int cnt = 0;
for (Revisions<PDAttributeObject> attributes : attributeSet)
{
@@ -155,6 +158,15 @@ public class PDStructureElementTest
assertEquals(33, structureElement.getRevisionNumber());
structureElement.incrementRevisionNumber();
assertEquals(34, structureElement.getRevisionNumber());
+ try
+ {
+ structureElement.setRevisionNumber(-1);
+ fail("Should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException ex)
+ {
+ // ok
+ }
structureElement.setTitle("Title");
assertEquals("Title", structureElement.getTitle());
structureElement.setLanguage("Klingon");
@@ -165,5 +177,41 @@ public class PDStructureElementTest
assertEquals("Actual", structureElement.getActualText());
structureElement.setExpandedForm("ExpF");
assertEquals("ExpF", structureElement.getExpandedForm());
+ try
+ {
+ structureElement.appendKid(-1);
+ fail("Should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException ex)
+ {
+ // ok
+ }
+ structureElement.appendKid(0);
+ PDMarkedContentReference mcr1 = new PDMarkedContentReference();
+ mcr1.setMCID(1);
+ structureElement.appendKid(mcr1);
+ PDMarkedContentReference mcr2 = new PDMarkedContentReference();
+ mcr2.setMCID(2);
+ PDMarkedContent mc2 = PDMarkedContent.create(COSName.S,
mcr2.getCOSObject());
+ structureElement.appendKid(mc2);
+ PDMarkedContentReference mcrSubZero = new PDMarkedContentReference();
+ mcrSubZero.setMCID(-1); //TODO should fail
+ PDMarkedContent mcSubZero = PDMarkedContent.create(COSName.S,
mcrSubZero.getCOSObject());
+ try
+ {
+ structureElement.appendKid(mcSubZero);
+ fail("Should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException ex)
+ {
+ // ok
+ }
+ List<Object> kids = structureElement.getKids();
+ assertEquals(3, kids.size());
+ assertEquals(0, kids.get(0));
+ mcr1 = (PDMarkedContentReference) kids.get(1);
+ assertEquals(PDMarkedContentReference.TYPE,
mcr1.getCOSObject().getNameAsString(COSName.TYPE));
+ assertEquals(1, mcr1.getMCID());
+ assertEquals(2, kids.get(2));
}
}