You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/05/31 18:25:56 UTC

svn commit: r1832641 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java

Author: tilman
Date: Thu May 31 18:25:56 2018
New Revision: 1832641

URL: http://svn.apache.org/viewvc?rev=1832641&view=rev
Log:
PDFBOX-4235: test to check that IllegalArgumentException is thrown and no NPE

Modified:
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java?rev=1832641&r1=1832640&r2=1832641&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java Thu May 31 18:25:56 2018
@@ -20,6 +20,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -245,8 +246,51 @@ public class PDAcroFormTest
             return;
         }
     }
-    
-    
+
+    /**
+     * PDFBOX-4235: a bad /DA string should not result in an NPE.
+     * 
+     * @throws IOException 
+     */
+    @Test
+    public void testBadDA() throws IOException
+    {
+        try (PDDocument doc = new PDDocument())
+        {
+            PDPage page = new PDPage();
+            doc.addPage(page);
+
+            PDAcroForm acroForm = new PDAcroForm(document);
+            doc.getDocumentCatalog().setAcroForm(acroForm);
+            acroForm.setDefaultResources(new PDResources());
+
+            PDTextField textBox = new PDTextField(acroForm);
+            textBox.setPartialName("SampleField");
+
+            // https://stackoverflow.com/questions/50609478/
+            // "tf" is a typo, should have been "Tf" and this results that no font is chosen
+            textBox.setDefaultAppearance("/Helv 0 tf 0 g");
+            acroForm.getFields().add(textBox);
+
+            PDAnnotationWidget widget = textBox.getWidgets().get(0);
+            PDRectangle rect = new PDRectangle(50, 750, 200, 20);
+            widget.setRectangle(rect);
+            widget.setPage(page);
+
+            page.getAnnotations().add(widget);
+
+            try
+            {
+                textBox.setValue("huhu");
+            }
+            catch (IllegalArgumentException ex)
+            {
+                return;
+            }
+            fail("IllegalArgumentException should have been thrown");
+        }
+    }
+
     @After
     public void tearDown() throws IOException
     {